.claude/skills/disease-reversal-prediction/SKILL.md
Predict a molecule's ability to reverse disease states using DLEPS (Disease-Ligand Embedding Projection Score) for drug repositioning and discovery.
npx skillsauth add SpectrAI-Initiative/InnoClaw disease-reversal-predictionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the same DrugSDAClient class as defined in the drug-screening-docking skill.
This workflow validates SMILES strings and predicts their ability to reverse disease states, useful for drug repositioning and therapeutic discovery.
Workflow Steps:
Implementation:
tool_client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool")
model_client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model")
if not await tool_client.connect() or not await model_client.connect():
print("connection failed")
return
## Input: List of candidate SMILES strings
smiles_list = [
'Nc1nnc(S(=O)(=O)NCCc2ccc(O)cc2)s1',
'COc1ccc2c(=O)cc(C(=O)N3CCN(c4ccc(F)cc4)CC3)oc2c1',
'ABCCOOO' # Invalid SMILES for demonstration
]
## Step 1: Validate SMILES strings
result = await tool_client.session.call_tool(
"is_valid_smiles",
arguments={"smiles_list": smiles_list}
)
result_data = tool_client.parse_result(result)
valid_smiles_list = [x['smiles'] for x in result_data['valid_res'] if x['is_valid'] is True]
print(f"Valid SMILES: {len(valid_smiles_list)}/{len(smiles_list)}")
## Step 2: Calculate DLEPS scores for disease state reversal
disease_name = "Aging" # Can be: Aging, Alzheimer's, Parkinson's, etc.
result = await model_client.session.call_tool(
"calculate_dleps_score",
arguments={
"smiles_list": valid_smiles_list,
"disease_name": disease_name
}
)
result_data = model_client.parse_result(result)
## Display results sorted by score
pred_scores = sorted(result_data['pred_scores'], key=lambda x: x['cs_score'], reverse=True)
for item in pred_scores:
print(f"SMILES: {item['smiles']}")
print(f"Disease Reversal Score: {item['cs_score']:.4f}\n")
await tool_client.disconnect()
await model_client.disconnect()
DrugSDA-Tool Server:
is_valid_smiles: Validate SMILES strings for chemical correctness
smiles_list (List[str])valid_res with is_valid boolean for each SMILESDrugSDA-Model Server:
calculate_dleps_score: Predict disease state reversal scores
smiles_list (List[str]), disease_name (str)pred_scores with cs_score (float, 0-1) for each moleculeInput:
smiles_list: List of SMILES strings to evaluatedisease_name: Target disease (e.g., "Aging", "Alzheimer's", "Parkinson's")Output:
pred_scores: List of dictionaries containing:
smiles: Input SMILES stringcs_score: Disease reversal score (0-1, higher is better)Molecules with higher scores are more likely to reverse the disease-associated transcriptional signature.
The model supports various diseases including but not limited to:
Consult the MCP server documentation for the complete list of supported diseases.
tools
Use the local InnoClaw CLI to run app workflows and Deep Research sessions from the terminal. Trigger when the user wants command-line control over this repository instead of only using the web UI.
tools
SNP Functional Impact Analysis - Analyze SNP function: VEP prediction, variation details, phenotype association, and literature evidence. Use this skill for functional genomics tasks involving get vep id get variation get phenotype accession pubmed search. Combines 4 tools from 2 SCP server(s).
tools
SMILES Comprehensive Analysis - Comprehensive SMILES analysis: validate, convert name, compute all molecular descriptors, and predict ADMET. Use this skill for cheminformatics tasks involving is valid smiles ChemicalStructureAnalyzer calculate mol basic info pred molecule admet. Combines 4 tools from 3 SCP server(s).
tools
Convert SMILES strings to CAS registry numbers using material informatics tools to identify chemical substances.