ID: 207
Category: Bioinformatics / Genomics / AI-Driven Drug Discovery
Status: ✅ Production Ready
Version: 1.0.0
⚠️ Note: This tool provides a framework for in silico perturbation analysis. Actual predictions require integration with biological foundation models (Geneformer, scGPT, etc.) and wet lab validation data.
In Silico Perturbation Oracle is a computational biology tool based on biological foundation models (Geneformer, scGPT, etc.) for performing "virtual gene knockout (Virtual KO)" in silico to predict changes in cellular transcriptome states after specific gene deletions.
This tool provides AI-driven decision support for target screening before wet lab experiments, significantly reducing drug development time and costs.
Function ModuleDescriptionStatus🧬 Gene Knockout SimulationIn silico KO prediction based on pre-trained models✅📊 Differential Expression AnalysisPredict DEGs (Differentially Expressed Genes) after knockout✅🔄 Pathway Enrichment AnalysisGO/KEGG pathway change prediction✅🎯 Target ScoringMulti-dimensional target scoring and ranking✅📈 Visualization ReportGenerate interpretable charts and reports✅🔗 Wet Lab InterfaceExport wet lab validation recommendations✅
ModelDescriptionApplicable ScenariosGeneformerTransformer-based gene expression foundation modelGeneral gene regulatory network inferencescGPTSingle-cell multi-omics foundation modelSingle-cell level perturbation predictionscFoundationLarge-scale single-cell foundation modelCross-cell type generalization predictionCustomUser-defined modelsSpecific disease/tissue customization
bash
# Basic dependencies
pip install torch transformers scanpy scvi-tools
# Bioinformatics tools
pip install gseapy enrichrpy
# Model-specific dependencies
pip install geneformer scgpt
bash
# Single gene knockout prediction
python scripts/main.py \
--model geneformer \
--genes TP53,BRCA1,EGFR \
--cell-type "lung_adenocarcinoma" \
--output ./results/
# Batch target screening
python scripts/main.py \
--model scgpt \
--genes-file ./target_genes.txt \
--cell-type "hepatocyte" \
--top-k 20 \
--pathways KEGG,GO_BP \
--output ./results/
python
from in_silico_perturbation_oracle import PerturbationOracle
# Initialize Oracle
oracle = PerturbationOracle(
model_name="geneformer",
cell_type="cardiomyocyte"
)
# Execute virtual knockout
results = oracle.predict_knockout(
genes=["MYC", "KRAS", "BCL2"],
perturbation_type="complete_ko", # Complete knockout
n_permutations=100
)
# Get differentially expressed genes
degs = results.get_differential_expression(
pval_threshold=0.05,
logfc_threshold=1.0
)
# Pathway enrichment analysis
pathways = results.enrich_pathways(
database=["KEGG", "GO_BP"],
top_n=10
)
# Target scoring
target_scores = results.score_targets()
print(target_scores.head(10))
ParameterTypeDescriptionExamplegeneslist/strList of genes to knockout["TP53", "BRCA1"]``cell_typestrTarget cell type"fibroblast"``modelstrFoundation model to use"geneformer"
ParameterTypeDefaultDescriptionperturbation_typestr"complete_ko"Knockout type: complete_ko/kd/crisprn_permutationsint100Number of permutation testspathwayslist["KEGG"]Enrichment analysis databasetop_kint50Output Top K targetscontrol_geneslist[]Control gene listbatch_sizeint32Inference batch size
yaml
# Recommended naming format
epithelial_cells:
- lung_epithelial
- intestinal_epithelial
- mammary_epithelial
immune_cells:
- t_cell_cd4
- t_cell_cd8
- b_cell
- macrophage
- dendritic_cell
specialized_cells:
- cardiomyocyte
- hepatocyte
- neuron_excitatory
- fibroblast
- endothelial_cell
deg_results.csv)#Column NameDescriptiongene_symbolGene symbollog2_fold_changeLog2 fold change in expressionp_valueStatistical significanceadjusted_p_valueAdjusted p-valueperturbed_geneGene that was knocked outcell_typeCell type
pathway_enrichment.json)#json
{
"KEGG": {
"pathways": [
{
"name": "p53_signaling_pathway",
"p_value": 0.001,
"enrichment_ratio": 3.5,
"genes": ["CDKN1A", "GADD45A", "MDM2"]
}
]
}
}
target_scores.csv)#Column NameDescriptiontarget_geneTarget geneefficacy_scoreKnockout effect score (0-1)safety_scoreSafety score (0-1)druggability_scoreDruggability scorenovelty_scoreNovelty scoreoverall_scoreOverall scorerecommendationWet lab recommendation
volcano_plot.png - Volcano plot showing differentially expressed genesheatmap_degs.png - Heatmap of differentially expressed genespathway_network.png - Pathway network diagramtarget_ranking.png - Target ranking plottext
in-silico-perturbation-oracle/
├── configs/
│ ├── geneformer_config.yaml # Geneformer model configuration
│ ├── scgpt_config.yaml # scGPT model configuration
│ └── cell_type_mapping.yaml # Cell type mapping
├── data/
│ ├── reference_expression/ # Reference expression profiles
│ └── gene_annotations/ # Gene annotation files
├── models/
│ ├── geneformer_adapter.py # Geneformer interface
│ ├── scgpt_adapter.py # scGPT interface
│ └── base_model.py # Base model abstract class
├── scripts/
│ └── main.py # Main entry script
├── utils/
│ ├── differential_expression.py # Differential expression analysis
│ ├── pathway_enrichment.py # Pathway enrichment
│ ├── target_scoring.py # Target scoring
│ └── visualization.py # Visualization tools
└── examples/
├── single_knockout_example.py
├── batch_screening_example.py
└── cancer_targets_example.py
Target scoring uses a multi-dimensional weighted scoring system:
text
Overall_Score = w₁ × Efficacy + w₂ × Safety + w₃ × Druggability + w₄ × Novelty
Where:
- Efficacy: Based on number of DEGs and pathway change magnitude
- Safety: Based on essential gene database and toxicity prediction
- Druggability: Based on druggability and structural accessibility
- Novelty: Based on literature and patent novelty
- Weights: w₁=0.35, w₂=0.25, w₃=0.25, w₄=0.15 (configurable)
DatasetDescriptionConsistencyDepMap CRISPRCancer cell line knockout screening0.72 (Pearson)Perturb-seqSingle-cell perturbation sequencing0.68 (AUPRC)L1000 CMapDrug perturbation expression profiles0.65 (Spearman)
python
# Recommended: Combinatorial knockout screening
results = oracle.predict_combinatorial_ko(
gene_pairs=[
("BCL2", "MCL1"),
("PIK3CA", "PTEN")
],
synergy_threshold=0.3
)
# Recommended: Dose-response simulation
results = oracle.predict_dose_response(
gene="MTOR",
doses=[0.25, 0.5, 0.75, 0.9], # Partial knockout ratios
)
python
# Export wet lab validation recommendations
oracle.export_validation_guide(
top_targets=10,
include_controls=True,
format="lab_protocol"
)
bibtex
@software{in_silico_perturbation_oracle_2024,
title={In Silico Perturbation Oracle: Virtual Gene Knockout Prediction},
author={OpenClaw Bioinformatics Team},
year={2024},
url={https://github.com/openclaw/bio-skills}
}
MIT License - See LICENSE file in project root directory
Risk IndicatorAssessmentLevelCode ExecutionPython scripts with toolsHighNetwork AccessExternal API callsHighFile System AccessRead/write dataMediumInstruction TamperingStandard prompt guidelinesLowData ExposureData handled securelyMedium
bash
# Python dependencies
pip install -r requirements.txt
Current Stage: Draft
Next Review Date: 2026-03-06
Known Issues: None
Planned Improvements: