@bgicli/bgicli 2.1.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/skills/aav-vector-design-agent/SKILL.md +198 -0
- package/data/skills/adaptyv/SKILL.md +112 -0
- package/data/skills/adhd-daily-planner/SKILL.md +271 -0
- package/data/skills/aeon/SKILL.md +372 -0
- package/data/skills/agent-browser/SKILL.md +159 -0
- package/data/skills/agentd-drug-discovery/SKILL.md +52 -0
- package/data/skills/ai-analyzer/SKILL.md +218 -0
- package/data/skills/alphafold/SKILL.md +183 -0
- package/data/skills/alphafold-database/SKILL.md +500 -0
- package/data/skills/anndata/SKILL.md +394 -0
- package/data/skills/antibody-design-agent/SKILL.md +64 -0
- package/data/skills/arboreto/SKILL.md +237 -0
- package/data/skills/armored-cart-design-agent/SKILL.md +225 -0
- package/data/skills/arxiv-search/SKILL.md +224 -0
- package/data/skills/autonomous-oncology-agent/SKILL.md +77 -0
- package/data/skills/bayesian-optimizer/SKILL.md +60 -0
- package/data/skills/benchling-integration/SKILL.md +473 -0
- package/data/skills/bgpt-paper-search/SKILL.md +81 -0
- package/data/skills/bindcraft/SKILL.md +198 -0
- package/data/skills/binder-design/SKILL.md +182 -0
- package/data/skills/binding-characterization/SKILL.md +234 -0
- package/data/skills/bindingdb-database/SKILL.md +332 -0
- package/data/skills/bio-admet-prediction/SKILL.md +224 -0
- package/data/skills/bio-alignment-files-bam-statistics/SKILL.md +340 -0
- package/data/skills/bio-alignment-filtering/SKILL.md +322 -0
- package/data/skills/bio-alignment-indexing/SKILL.md +249 -0
- package/data/skills/bio-alignment-io/SKILL.md +301 -0
- package/data/skills/bio-alignment-msa-parsing/SKILL.md +366 -0
- package/data/skills/bio-alignment-msa-statistics/SKILL.md +375 -0
- package/data/skills/bio-alignment-pairwise/SKILL.md +277 -0
- package/data/skills/bio-alignment-sorting/SKILL.md +296 -0
- package/data/skills/bio-alignment-validation/SKILL.md +374 -0
- package/data/skills/bio-atac-seq-atac-peak-calling/SKILL.md +221 -0
- package/data/skills/bio-atac-seq-atac-qc/SKILL.md +292 -0
- package/data/skills/bio-atac-seq-differential-accessibility/SKILL.md +268 -0
- package/data/skills/bio-atac-seq-footprinting/SKILL.md +256 -0
- package/data/skills/bio-atac-seq-motif-deviation/SKILL.md +319 -0
- package/data/skills/bio-atac-seq-nucleosome-positioning/SKILL.md +321 -0
- package/data/skills/bio-basecalling/SKILL.md +368 -0
- package/data/skills/bio-batch-downloads/SKILL.md +384 -0
- package/data/skills/bio-batch-processing/SKILL.md +303 -0
- package/data/skills/bio-bedgraph-handling/SKILL.md +336 -0
- package/data/skills/bio-blast-searches/SKILL.md +354 -0
- package/data/skills/bio-causal-genomics-colocalization-analysis/SKILL.md +264 -0
- package/data/skills/bio-causal-genomics-fine-mapping/SKILL.md +267 -0
- package/data/skills/bio-causal-genomics-mediation-analysis/SKILL.md +264 -0
- package/data/skills/bio-causal-genomics-mendelian-randomization/SKILL.md +221 -0
- package/data/skills/bio-causal-genomics-pleiotropy-detection/SKILL.md +292 -0
- package/data/skills/bio-cfdna-preprocessing/SKILL.md +200 -0
- package/data/skills/bio-chipseq-differential-binding/SKILL.md +262 -0
- package/data/skills/bio-chipseq-motif-analysis/SKILL.md +387 -0
- package/data/skills/bio-chipseq-peak-annotation/SKILL.md +239 -0
- package/data/skills/bio-chipseq-peak-calling/SKILL.md +277 -0
- package/data/skills/bio-chipseq-qc/SKILL.md +391 -0
- package/data/skills/bio-chipseq-super-enhancers/SKILL.md +288 -0
- package/data/skills/bio-chipseq-visualization/SKILL.md +289 -0
- package/data/skills/bio-clinical-databases-clinvar-lookup/SKILL.md +188 -0
- package/data/skills/bio-clinical-databases-dbsnp-queries/SKILL.md +171 -0
- package/data/skills/bio-clinical-databases-gnomad-frequencies/SKILL.md +205 -0
- package/data/skills/bio-clinical-databases-hla-typing/SKILL.md +248 -0
- package/data/skills/bio-clinical-databases-myvariant-queries/SKILL.md +174 -0
- package/data/skills/bio-clinical-databases-pharmacogenomics/SKILL.md +232 -0
- package/data/skills/bio-clinical-databases-polygenic-risk/SKILL.md +276 -0
- package/data/skills/bio-clinical-databases-somatic-signatures/SKILL.md +261 -0
- package/data/skills/bio-clinical-databases-tumor-mutational-burden/SKILL.md +301 -0
- package/data/skills/bio-clinical-databases-variant-prioritization/SKILL.md +225 -0
- package/data/skills/bio-clip-seq-binding-site-annotation/SKILL.md +66 -0
- package/data/skills/bio-clip-seq-clip-alignment/SKILL.md +70 -0
- package/data/skills/bio-clip-seq-clip-motif-analysis/SKILL.md +62 -0
- package/data/skills/bio-clip-seq-clip-peak-calling/SKILL.md +282 -0
- package/data/skills/bio-clip-seq-clip-preprocessing/SKILL.md +142 -0
- package/data/skills/bio-codon-usage/SKILL.md +353 -0
- package/data/skills/bio-comparative-genomics-ancestral-reconstruction/SKILL.md +312 -0
- package/data/skills/bio-comparative-genomics-hgt-detection/SKILL.md +341 -0
- package/data/skills/bio-comparative-genomics-ortholog-inference/SKILL.md +308 -0
- package/data/skills/bio-comparative-genomics-positive-selection/SKILL.md +354 -0
- package/data/skills/bio-comparative-genomics-synteny-analysis/SKILL.md +315 -0
- package/data/skills/bio-compressed-files/SKILL.md +263 -0
- package/data/skills/bio-consensus-sequences/SKILL.md +340 -0
- package/data/skills/bio-copy-number-cnv-annotation/SKILL.md +307 -0
- package/data/skills/bio-copy-number-cnv-visualization/SKILL.md +294 -0
- package/data/skills/bio-copy-number-cnvkit-analysis/SKILL.md +290 -0
- package/data/skills/bio-copy-number-gatk-cnv/SKILL.md +270 -0
- package/data/skills/bio-crispr-screens-base-editing-analysis/SKILL.md +110 -0
- package/data/skills/bio-crispr-screens-batch-correction/SKILL.md +316 -0
- package/data/skills/bio-crispr-screens-crispresso-editing/SKILL.md +205 -0
- package/data/skills/bio-crispr-screens-hit-calling/SKILL.md +264 -0
- package/data/skills/bio-crispr-screens-jacks-analysis/SKILL.md +313 -0
- package/data/skills/bio-crispr-screens-library-design/SKILL.md +417 -0
- package/data/skills/bio-crispr-screens-mageck-analysis/SKILL.md +222 -0
- package/data/skills/bio-crispr-screens-screen-qc/SKILL.md +243 -0
- package/data/skills/bio-ctdna-mutation-detection/SKILL.md +234 -0
- package/data/skills/bio-data-visualization-circos-plots/SKILL.md +405 -0
- package/data/skills/bio-data-visualization-color-palettes/SKILL.md +244 -0
- package/data/skills/bio-data-visualization-genome-browser-tracks/SKILL.md +328 -0
- package/data/skills/bio-data-visualization-genome-tracks/SKILL.md +249 -0
- package/data/skills/bio-data-visualization-ggplot2-fundamentals/SKILL.md +313 -0
- package/data/skills/bio-data-visualization-heatmaps-clustering/SKILL.md +227 -0
- package/data/skills/bio-data-visualization-interactive-visualization/SKILL.md +210 -0
- package/data/skills/bio-data-visualization-multipanel-figures/SKILL.md +274 -0
- package/data/skills/bio-data-visualization-specialized-omics-plots/SKILL.md +251 -0
- package/data/skills/bio-data-visualization-upset-plots/SKILL.md +228 -0
- package/data/skills/bio-data-visualization-volcano-customization/SKILL.md +233 -0
- package/data/skills/bio-de-deseq2-basics/SKILL.md +376 -0
- package/data/skills/bio-de-edger-basics/SKILL.md +418 -0
- package/data/skills/bio-de-results/SKILL.md +378 -0
- package/data/skills/bio-de-visualization/SKILL.md +408 -0
- package/data/skills/bio-differential-expression-batch-correction/SKILL.md +253 -0
- package/data/skills/bio-differential-expression-timeseries-de/SKILL.md +370 -0
- package/data/skills/bio-differential-splicing/SKILL.md +177 -0
- package/data/skills/bio-duplicate-handling/SKILL.md +292 -0
- package/data/skills/bio-entrez-fetch/SKILL.md +334 -0
- package/data/skills/bio-entrez-link/SKILL.md +325 -0
- package/data/skills/bio-entrez-search/SKILL.md +311 -0
- package/data/skills/bio-epidemiological-genomics-amr-surveillance/SKILL.md +233 -0
- package/data/skills/bio-epidemiological-genomics-pathogen-typing/SKILL.md +202 -0
- package/data/skills/bio-epidemiological-genomics-phylodynamics/SKILL.md +207 -0
- package/data/skills/bio-epidemiological-genomics-transmission-inference/SKILL.md +237 -0
- package/data/skills/bio-epidemiological-genomics-variant-surveillance/SKILL.md +237 -0
- package/data/skills/bio-epitranscriptomics-m6a-differential/SKILL.md +88 -0
- package/data/skills/bio-epitranscriptomics-m6a-peak-calling/SKILL.md +89 -0
- package/data/skills/bio-epitranscriptomics-m6anet-analysis/SKILL.md +101 -0
- package/data/skills/bio-epitranscriptomics-merip-preprocessing/SKILL.md +81 -0
- package/data/skills/bio-epitranscriptomics-modification-visualization/SKILL.md +98 -0
- package/data/skills/bio-experimental-design-batch-design/SKILL.md +110 -0
- package/data/skills/bio-experimental-design-multiple-testing/SKILL.md +98 -0
- package/data/skills/bio-experimental-design-power-analysis/SKILL.md +84 -0
- package/data/skills/bio-experimental-design-sample-size/SKILL.md +93 -0
- package/data/skills/bio-expression-matrix-counts-ingest/SKILL.md +220 -0
- package/data/skills/bio-expression-matrix-gene-id-mapping/SKILL.md +256 -0
- package/data/skills/bio-expression-matrix-metadata-joins/SKILL.md +271 -0
- package/data/skills/bio-expression-matrix-sparse-handling/SKILL.md +247 -0
- package/data/skills/bio-fastq-quality/SKILL.md +279 -0
- package/data/skills/bio-filter-sequences/SKILL.md +265 -0
- package/data/skills/bio-flow-cytometry-bead-normalization/SKILL.md +315 -0
- package/data/skills/bio-flow-cytometry-clustering-phenotyping/SKILL.md +237 -0
- package/data/skills/bio-flow-cytometry-compensation-transformation/SKILL.md +196 -0
- package/data/skills/bio-flow-cytometry-cytometry-qc/SKILL.md +382 -0
- package/data/skills/bio-flow-cytometry-differential-analysis/SKILL.md +217 -0
- package/data/skills/bio-flow-cytometry-doublet-detection/SKILL.md +288 -0
- package/data/skills/bio-flow-cytometry-fcs-handling/SKILL.md +221 -0
- package/data/skills/bio-flow-cytometry-gating-analysis/SKILL.md +193 -0
- package/data/skills/bio-format-conversion/SKILL.md +193 -0
- package/data/skills/bio-fragment-analysis/SKILL.md +214 -0
- package/data/skills/bio-gatk-variant-calling/SKILL.md +422 -0
- package/data/skills/bio-genome-assembly-assembly-polishing/SKILL.md +333 -0
- package/data/skills/bio-genome-assembly-assembly-qc/SKILL.md +344 -0
- package/data/skills/bio-genome-assembly-contamination-detection/SKILL.md +235 -0
- package/data/skills/bio-genome-assembly-hifi-assembly/SKILL.md +178 -0
- package/data/skills/bio-genome-assembly-long-read-assembly/SKILL.md +307 -0
- package/data/skills/bio-genome-assembly-metagenome-assembly/SKILL.md +227 -0
- package/data/skills/bio-genome-assembly-scaffolding/SKILL.md +204 -0
- package/data/skills/bio-genome-assembly-short-read-assembly/SKILL.md +319 -0
- package/data/skills/bio-genome-engineering-base-editing-design/SKILL.md +277 -0
- package/data/skills/bio-genome-engineering-grna-design/SKILL.md +221 -0
- package/data/skills/bio-genome-engineering-hdr-template-design/SKILL.md +264 -0
- package/data/skills/bio-genome-engineering-off-target-prediction/SKILL.md +232 -0
- package/data/skills/bio-genome-engineering-prime-editing-design/SKILL.md +275 -0
- package/data/skills/bio-genome-intervals-bed-file-basics/SKILL.md +357 -0
- package/data/skills/bio-genome-intervals-bigwig-tracks/SKILL.md +351 -0
- package/data/skills/bio-genome-intervals-coverage-analysis/SKILL.md +300 -0
- package/data/skills/bio-genome-intervals-gtf-gff-handling/SKILL.md +345 -0
- package/data/skills/bio-genome-intervals-interval-arithmetic/SKILL.md +485 -0
- package/data/skills/bio-genome-intervals-proximity-operations/SKILL.md +337 -0
- package/data/skills/bio-geo-data/SKILL.md +380 -0
- package/data/skills/bio-hi-c-analysis-compartment-analysis/SKILL.md +261 -0
- package/data/skills/bio-hi-c-analysis-contact-pairs/SKILL.md +278 -0
- package/data/skills/bio-hi-c-analysis-hic-data-io/SKILL.md +260 -0
- package/data/skills/bio-hi-c-analysis-hic-differential/SKILL.md +328 -0
- package/data/skills/bio-hi-c-analysis-hic-visualization/SKILL.md +297 -0
- package/data/skills/bio-hi-c-analysis-loop-calling/SKILL.md +284 -0
- package/data/skills/bio-hi-c-analysis-matrix-operations/SKILL.md +274 -0
- package/data/skills/bio-hi-c-analysis-tad-detection/SKILL.md +239 -0
- package/data/skills/bio-imaging-mass-cytometry-cell-segmentation/SKILL.md +241 -0
- package/data/skills/bio-imaging-mass-cytometry-data-preprocessing/SKILL.md +279 -0
- package/data/skills/bio-imaging-mass-cytometry-interactive-annotation/SKILL.md +304 -0
- package/data/skills/bio-imaging-mass-cytometry-phenotyping/SKILL.md +231 -0
- package/data/skills/bio-imaging-mass-cytometry-quality-metrics/SKILL.md +316 -0
- package/data/skills/bio-imaging-mass-cytometry-spatial-analysis/SKILL.md +246 -0
- package/data/skills/bio-immunoinformatics-epitope-prediction/SKILL.md +259 -0
- package/data/skills/bio-immunoinformatics-immunogenicity-scoring/SKILL.md +275 -0
- package/data/skills/bio-immunoinformatics-mhc-binding-prediction/SKILL.md +260 -0
- package/data/skills/bio-immunoinformatics-neoantigen-prediction/SKILL.md +277 -0
- package/data/skills/bio-immunoinformatics-tcr-epitope-binding/SKILL.md +257 -0
- package/data/skills/bio-isoform-switching/SKILL.md +192 -0
- package/data/skills/bio-liquid-biopsy-pipeline/SKILL.md +311 -0
- package/data/skills/bio-local-blast/SKILL.md +350 -0
- package/data/skills/bio-long-read-sequencing-clair3-variants/SKILL.md +252 -0
- package/data/skills/bio-long-read-sequencing-isoseq-analysis/SKILL.md +334 -0
- package/data/skills/bio-long-read-sequencing-nanopore-methylation/SKILL.md +110 -0
- package/data/skills/bio-longitudinal-monitoring/SKILL.md +271 -0
- package/data/skills/bio-longread-alignment/SKILL.md +193 -0
- package/data/skills/bio-longread-medaka/SKILL.md +176 -0
- package/data/skills/bio-longread-qc/SKILL.md +224 -0
- package/data/skills/bio-longread-structural-variants/SKILL.md +201 -0
- package/data/skills/bio-machine-learning-atlas-mapping/SKILL.md +139 -0
- package/data/skills/bio-machine-learning-biomarker-discovery/SKILL.md +157 -0
- package/data/skills/bio-machine-learning-model-validation/SKILL.md +148 -0
- package/data/skills/bio-machine-learning-omics-classifiers/SKILL.md +146 -0
- package/data/skills/bio-machine-learning-prediction-explanation/SKILL.md +162 -0
- package/data/skills/bio-machine-learning-survival-analysis/SKILL.md +176 -0
- package/data/skills/bio-metabolomics-lipidomics/SKILL.md +265 -0
- package/data/skills/bio-metabolomics-metabolite-annotation/SKILL.md +241 -0
- package/data/skills/bio-metabolomics-msdial-preprocessing/SKILL.md +308 -0
- package/data/skills/bio-metabolomics-normalization-qc/SKILL.md +283 -0
- package/data/skills/bio-metabolomics-pathway-mapping/SKILL.md +237 -0
- package/data/skills/bio-metabolomics-statistical-analysis/SKILL.md +276 -0
- package/data/skills/bio-metabolomics-targeted-analysis/SKILL.md +314 -0
- package/data/skills/bio-metabolomics-xcms-preprocessing/SKILL.md +268 -0
- package/data/skills/bio-metagenomics-abundance/SKILL.md +203 -0
- package/data/skills/bio-metagenomics-amr-detection/SKILL.md +293 -0
- package/data/skills/bio-metagenomics-functional-profiling/SKILL.md +252 -0
- package/data/skills/bio-metagenomics-kraken/SKILL.md +204 -0
- package/data/skills/bio-metagenomics-metaphlan/SKILL.md +214 -0
- package/data/skills/bio-metagenomics-strain-tracking/SKILL.md +292 -0
- package/data/skills/bio-metagenomics-visualization/SKILL.md +240 -0
- package/data/skills/bio-methylation-based-detection/SKILL.md +223 -0
- package/data/skills/bio-methylation-bismark-alignment/SKILL.md +195 -0
- package/data/skills/bio-methylation-calling/SKILL.md +200 -0
- package/data/skills/bio-methylation-dmr-detection/SKILL.md +211 -0
- package/data/skills/bio-methylation-methylkit/SKILL.md +219 -0
- package/data/skills/bio-microbiome-amplicon-processing/SKILL.md +137 -0
- package/data/skills/bio-microbiome-differential-abundance/SKILL.md +147 -0
- package/data/skills/bio-microbiome-diversity-analysis/SKILL.md +188 -0
- package/data/skills/bio-microbiome-functional-prediction/SKILL.md +153 -0
- package/data/skills/bio-microbiome-qiime2-workflow/SKILL.md +219 -0
- package/data/skills/bio-microbiome-taxonomy-assignment/SKILL.md +168 -0
- package/data/skills/bio-molecular-descriptors/SKILL.md +200 -0
- package/data/skills/bio-molecular-io/SKILL.md +188 -0
- package/data/skills/bio-motif-search/SKILL.md +354 -0
- package/data/skills/bio-multi-omics-data-harmonization/SKILL.md +228 -0
- package/data/skills/bio-multi-omics-mixomics-analysis/SKILL.md +221 -0
- package/data/skills/bio-multi-omics-mofa-integration/SKILL.md +225 -0
- package/data/skills/bio-multi-omics-similarity-network/SKILL.md +235 -0
- package/data/skills/bio-orchestrator/SKILL.md +133 -0
- package/data/skills/bio-paired-end-fastq/SKILL.md +334 -0
- package/data/skills/bio-pathway-enrichment-visualization/SKILL.md +278 -0
- package/data/skills/bio-pathway-go-enrichment/SKILL.md +218 -0
- package/data/skills/bio-pathway-gsea/SKILL.md +227 -0
- package/data/skills/bio-pathway-kegg-pathways/SKILL.md +234 -0
- package/data/skills/bio-pathway-reactome/SKILL.md +215 -0
- package/data/skills/bio-pathway-wikipathways/SKILL.md +255 -0
- package/data/skills/bio-pdb-geometric-analysis/SKILL.md +475 -0
- package/data/skills/bio-pdb-structure-io/SKILL.md +296 -0
- package/data/skills/bio-pdb-structure-modification/SKILL.md +448 -0
- package/data/skills/bio-pdb-structure-navigation/SKILL.md +335 -0
- package/data/skills/bio-phasing-imputation-genotype-imputation/SKILL.md +201 -0
- package/data/skills/bio-phasing-imputation-haplotype-phasing/SKILL.md +190 -0
- package/data/skills/bio-phasing-imputation-imputation-qc/SKILL.md +265 -0
- package/data/skills/bio-phasing-imputation-reference-panels/SKILL.md +203 -0
- package/data/skills/bio-phylo-distance-calculations/SKILL.md +307 -0
- package/data/skills/bio-phylo-modern-tree-inference/SKILL.md +274 -0
- package/data/skills/bio-phylo-tree-io/SKILL.md +252 -0
- package/data/skills/bio-phylo-tree-manipulation/SKILL.md +375 -0
- package/data/skills/bio-phylo-tree-visualization/SKILL.md +275 -0
- package/data/skills/bio-pileup-generation/SKILL.md +314 -0
- package/data/skills/bio-population-genetics-association-testing/SKILL.md +293 -0
- package/data/skills/bio-population-genetics-linkage-disequilibrium/SKILL.md +260 -0
- package/data/skills/bio-population-genetics-plink-basics/SKILL.md +338 -0
- package/data/skills/bio-population-genetics-population-structure/SKILL.md +352 -0
- package/data/skills/bio-population-genetics-scikit-allel-analysis/SKILL.md +306 -0
- package/data/skills/bio-population-genetics-selection-statistics/SKILL.md +251 -0
- package/data/skills/bio-primer-design-primer-basics/SKILL.md +289 -0
- package/data/skills/bio-primer-design-primer-validation/SKILL.md +344 -0
- package/data/skills/bio-primer-design-qpcr-primers/SKILL.md +273 -0
- package/data/skills/bio-proteomics-data-import/SKILL.md +122 -0
- package/data/skills/bio-proteomics-dia-analysis/SKILL.md +246 -0
- package/data/skills/bio-proteomics-differential-abundance/SKILL.md +129 -0
- package/data/skills/bio-proteomics-peptide-identification/SKILL.md +122 -0
- package/data/skills/bio-proteomics-protein-inference/SKILL.md +174 -0
- package/data/skills/bio-proteomics-proteomics-qc/SKILL.md +208 -0
- package/data/skills/bio-proteomics-ptm-analysis/SKILL.md +139 -0
- package/data/skills/bio-proteomics-quantification/SKILL.md +141 -0
- package/data/skills/bio-proteomics-spectral-libraries/SKILL.md +270 -0
- package/data/skills/bio-reaction-enumeration/SKILL.md +251 -0
- package/data/skills/bio-read-alignment-bowtie2-alignment/SKILL.md +189 -0
- package/data/skills/bio-read-alignment-bwa-alignment/SKILL.md +166 -0
- package/data/skills/bio-read-alignment-hisat2-alignment/SKILL.md +205 -0
- package/data/skills/bio-read-alignment-star-alignment/SKILL.md +204 -0
- package/data/skills/bio-read-qc-adapter-trimming/SKILL.md +222 -0
- package/data/skills/bio-read-qc-contamination-screening/SKILL.md +252 -0
- package/data/skills/bio-read-qc-fastp-workflow/SKILL.md +278 -0
- package/data/skills/bio-read-qc-quality-filtering/SKILL.md +231 -0
- package/data/skills/bio-read-qc-quality-reports/SKILL.md +204 -0
- package/data/skills/bio-read-qc-umi-processing/SKILL.md +391 -0
- package/data/skills/bio-read-sequences/SKILL.md +319 -0
- package/data/skills/bio-reference-operations/SKILL.md +302 -0
- package/data/skills/bio-reporting-automated-qc-reports/SKILL.md +103 -0
- package/data/skills/bio-reporting-figure-export/SKILL.md +112 -0
- package/data/skills/bio-reporting-jupyter-reports/SKILL.md +98 -0
- package/data/skills/bio-reporting-quarto-reports/SKILL.md +295 -0
- package/data/skills/bio-reporting-rmarkdown-reports/SKILL.md +276 -0
- package/data/skills/bio-research-tools-biomarker-signature-studio/SKILL.md +99 -0
- package/data/skills/bio-restriction-enzyme-selection/SKILL.md +342 -0
- package/data/skills/bio-restriction-fragment-analysis/SKILL.md +259 -0
- package/data/skills/bio-restriction-mapping/SKILL.md +239 -0
- package/data/skills/bio-restriction-sites/SKILL.md +222 -0
- package/data/skills/bio-reverse-complement/SKILL.md +250 -0
- package/data/skills/bio-ribo-seq-orf-detection/SKILL.md +303 -0
- package/data/skills/bio-ribo-seq-riboseq-preprocessing/SKILL.md +176 -0
- package/data/skills/bio-ribo-seq-ribosome-periodicity/SKILL.md +182 -0
- package/data/skills/bio-ribo-seq-ribosome-stalling/SKILL.md +217 -0
- package/data/skills/bio-ribo-seq-translation-efficiency/SKILL.md +183 -0
- package/data/skills/bio-rna-quantification-alignment-free-quant/SKILL.md +226 -0
- package/data/skills/bio-rna-quantification-count-matrix-qc/SKILL.md +310 -0
- package/data/skills/bio-rna-quantification-featurecounts-counting/SKILL.md +190 -0
- package/data/skills/bio-rna-quantification-tximport-workflow/SKILL.md +240 -0
- package/data/skills/bio-rnaseq-qc/SKILL.md +320 -0
- package/data/skills/bio-sam-bam-basics/SKILL.md +248 -0
- package/data/skills/bio-sashimi-plots/SKILL.md +175 -0
- package/data/skills/bio-seq-objects/SKILL.md +240 -0
- package/data/skills/bio-sequence-properties/SKILL.md +397 -0
- package/data/skills/bio-sequence-similarity/SKILL.md +335 -0
- package/data/skills/bio-sequence-slicing/SKILL.md +232 -0
- package/data/skills/bio-sequence-statistics/SKILL.md +318 -0
- package/data/skills/bio-similarity-searching/SKILL.md +200 -0
- package/data/skills/bio-single-cell-batch-integration/SKILL.md +317 -0
- package/data/skills/bio-single-cell-cell-annotation/SKILL.md +259 -0
- package/data/skills/bio-single-cell-cell-communication/SKILL.md +257 -0
- package/data/skills/bio-single-cell-clustering/SKILL.md +330 -0
- package/data/skills/bio-single-cell-data-io/SKILL.md +315 -0
- package/data/skills/bio-single-cell-doublet-detection/SKILL.md +362 -0
- package/data/skills/bio-single-cell-lineage-tracing/SKILL.md +319 -0
- package/data/skills/bio-single-cell-markers-annotation/SKILL.md +317 -0
- package/data/skills/bio-single-cell-metabolite-communication/SKILL.md +258 -0
- package/data/skills/bio-single-cell-multimodal-integration/SKILL.md +242 -0
- package/data/skills/bio-single-cell-perturb-seq/SKILL.md +258 -0
- package/data/skills/bio-single-cell-preprocessing/SKILL.md +338 -0
- package/data/skills/bio-single-cell-scatac-analysis/SKILL.md +326 -0
- package/data/skills/bio-single-cell-splicing/SKILL.md +199 -0
- package/data/skills/bio-single-cell-trajectory-inference/SKILL.md +225 -0
- package/data/skills/bio-small-rna-seq-differential-mirna/SKILL.md +194 -0
- package/data/skills/bio-small-rna-seq-mirdeep2-analysis/SKILL.md +180 -0
- package/data/skills/bio-small-rna-seq-mirge3-analysis/SKILL.md +178 -0
- package/data/skills/bio-small-rna-seq-smrna-preprocessing/SKILL.md +174 -0
- package/data/skills/bio-small-rna-seq-target-prediction/SKILL.md +202 -0
- package/data/skills/bio-spatial-transcriptomics-image-analysis/SKILL.md +283 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-communication/SKILL.md +299 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-data-io/SKILL.md +272 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-deconvolution/SKILL.md +314 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-domains/SKILL.md +254 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-multiomics/SKILL.md +181 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-neighbors/SKILL.md +198 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-preprocessing/SKILL.md +269 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-proteomics/SKILL.md +124 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-statistics/SKILL.md +237 -0
- package/data/skills/bio-spatial-transcriptomics-spatial-visualization/SKILL.md +287 -0
- package/data/skills/bio-splicing-pipeline/SKILL.md +253 -0
- package/data/skills/bio-splicing-qc/SKILL.md +190 -0
- package/data/skills/bio-splicing-quantification/SKILL.md +145 -0
- package/data/skills/bio-sra-data/SKILL.md +363 -0
- package/data/skills/bio-structural-biology-alphafold-predictions/SKILL.md +258 -0
- package/data/skills/bio-structural-biology-modern-structure-prediction/SKILL.md +346 -0
- package/data/skills/bio-substructure-search/SKILL.md +206 -0
- package/data/skills/bio-systems-biology-context-specific-models/SKILL.md +241 -0
- package/data/skills/bio-systems-biology-flux-balance-analysis/SKILL.md +206 -0
- package/data/skills/bio-systems-biology-gene-essentiality/SKILL.md +235 -0
- package/data/skills/bio-systems-biology-metabolic-reconstruction/SKILL.md +215 -0
- package/data/skills/bio-systems-biology-model-curation/SKILL.md +243 -0
- package/data/skills/bio-tcr-bcr-analysis-immcantation-analysis/SKILL.md +195 -0
- package/data/skills/bio-tcr-bcr-analysis-mixcr-analysis/SKILL.md +167 -0
- package/data/skills/bio-tcr-bcr-analysis-repertoire-visualization/SKILL.md +224 -0
- package/data/skills/bio-tcr-bcr-analysis-scirpy-analysis/SKILL.md +168 -0
- package/data/skills/bio-tcr-bcr-analysis-vdjtools-analysis/SKILL.md +188 -0
- package/data/skills/bio-transcription-translation/SKILL.md +237 -0
- package/data/skills/bio-tumor-fraction-estimation/SKILL.md +211 -0
- package/data/skills/bio-uniprot-access/SKILL.md +239 -0
- package/data/skills/bio-variant-annotation/SKILL.md +410 -0
- package/data/skills/bio-variant-calling/SKILL.md +266 -0
- package/data/skills/bio-variant-calling-clinical-interpretation/SKILL.md +355 -0
- package/data/skills/bio-variant-calling-deepvariant/SKILL.md +315 -0
- package/data/skills/bio-variant-calling-filtering-best-practices/SKILL.md +403 -0
- package/data/skills/bio-variant-calling-joint-calling/SKILL.md +338 -0
- package/data/skills/bio-variant-calling-structural-variant-calling/SKILL.md +253 -0
- package/data/skills/bio-variant-normalization/SKILL.md +325 -0
- package/data/skills/bio-vcf-basics/SKILL.md +342 -0
- package/data/skills/bio-vcf-manipulation/SKILL.md +429 -0
- package/data/skills/bio-vcf-statistics/SKILL.md +445 -0
- package/data/skills/bio-virtual-screening/SKILL.md +263 -0
- package/data/skills/bio-workflow-management-cwl-workflows/SKILL.md +433 -0
- package/data/skills/bio-workflow-management-nextflow-pipelines/SKILL.md +386 -0
- package/data/skills/bio-workflow-management-snakemake-workflows/SKILL.md +383 -0
- package/data/skills/bio-workflow-management-wdl-workflows/SKILL.md +500 -0
- package/data/skills/bio-workflows-atacseq-pipeline/SKILL.md +362 -0
- package/data/skills/bio-workflows-biomarker-pipeline/SKILL.md +272 -0
- package/data/skills/bio-workflows-chipseq-pipeline/SKILL.md +282 -0
- package/data/skills/bio-workflows-clip-pipeline/SKILL.md +268 -0
- package/data/skills/bio-workflows-cnv-pipeline/SKILL.md +324 -0
- package/data/skills/bio-workflows-crispr-editing-pipeline/SKILL.md +455 -0
- package/data/skills/bio-workflows-crispr-screen-pipeline/SKILL.md +278 -0
- package/data/skills/bio-workflows-cytometry-pipeline/SKILL.md +328 -0
- package/data/skills/bio-workflows-expression-to-pathways/SKILL.md +329 -0
- package/data/skills/bio-workflows-fastq-to-variants/SKILL.md +374 -0
- package/data/skills/bio-workflows-genome-assembly-pipeline/SKILL.md +290 -0
- package/data/skills/bio-workflows-gwas-pipeline/SKILL.md +323 -0
- package/data/skills/bio-workflows-hic-pipeline/SKILL.md +304 -0
- package/data/skills/bio-workflows-imc-pipeline/SKILL.md +304 -0
- package/data/skills/bio-workflows-longread-sv-pipeline/SKILL.md +281 -0
- package/data/skills/bio-workflows-merip-pipeline/SKILL.md +222 -0
- package/data/skills/bio-workflows-metabolic-modeling-pipeline/SKILL.md +408 -0
- package/data/skills/bio-workflows-metabolomics-pipeline/SKILL.md +297 -0
- package/data/skills/bio-workflows-metagenomics-pipeline/SKILL.md +283 -0
- package/data/skills/bio-workflows-methylation-pipeline/SKILL.md +274 -0
- package/data/skills/bio-workflows-microbiome-pipeline/SKILL.md +221 -0
- package/data/skills/bio-workflows-multi-omics-pipeline/SKILL.md +362 -0
- package/data/skills/bio-workflows-multiome-pipeline/SKILL.md +298 -0
- package/data/skills/bio-workflows-neoantigen-pipeline/SKILL.md +325 -0
- package/data/skills/bio-workflows-outbreak-pipeline/SKILL.md +341 -0
- package/data/skills/bio-workflows-proteomics-pipeline/SKILL.md +226 -0
- package/data/skills/bio-workflows-riboseq-pipeline/SKILL.md +94 -0
- package/data/skills/bio-workflows-rnaseq-to-de/SKILL.md +345 -0
- package/data/skills/bio-workflows-scrnaseq-pipeline/SKILL.md +354 -0
- package/data/skills/bio-workflows-smrna-pipeline/SKILL.md +86 -0
- package/data/skills/bio-workflows-somatic-variant-pipeline/SKILL.md +313 -0
- package/data/skills/bio-workflows-spatial-pipeline/SKILL.md +267 -0
- package/data/skills/bio-workflows-tcr-pipeline/SKILL.md +84 -0
- package/data/skills/bio-write-sequences/SKILL.md +205 -0
- package/data/skills/bioinformatics-singlecell/SKILL.md +143 -0
- package/data/skills/biokernel/SKILL.md +61 -0
- package/data/skills/biologist-analyst/SKILL.md +799 -0
- package/data/skills/biomaster-workflows/SKILL.md +55 -0
- package/data/skills/biomcp-server/SKILL.md +65 -0
- package/data/skills/biomedical-data-analysis/SKILL.md +56 -0
- package/data/skills/biomedical-search/SKILL.md +214 -0
- package/data/skills/biomni/SKILL.md +309 -0
- package/data/skills/biomni-general-agent/SKILL.md +43 -0
- package/data/skills/biomni-research-agent/SKILL.md +76 -0
- package/data/skills/biopython/SKILL.md +437 -0
- package/data/skills/biorxiv-database/SKILL.md +477 -0
- package/data/skills/bioservices/SKILL.md +355 -0
- package/data/skills/boltz/SKILL.md +188 -0
- package/data/skills/boltzgen/SKILL.md +287 -0
- package/data/skills/bone-marrow-ai-agent/SKILL.md +163 -0
- package/data/skills/brainstorming/SKILL.md +96 -0
- package/data/skills/brenda-database/SKILL.md +714 -0
- package/data/skills/bulk-combat-correction/SKILL.md +54 -0
- package/data/skills/bulk-deg-analysis/SKILL.md +61 -0
- package/data/skills/bulk-deseq2-analysis/SKILL.md +50 -0
- package/data/skills/bulk-stringdb-ppi/SKILL.md +49 -0
- package/data/skills/bulk-to-single-deconvolution/SKILL.md +50 -0
- package/data/skills/bulk-trajblend-interpolation/SKILL.md +52 -0
- package/data/skills/bulk-wgcna-analysis/SKILL.md +56 -0
- package/data/skills/cancer-metabolism-agent/SKILL.md +180 -0
- package/data/skills/care-coordination/SKILL.md +35 -0
- package/data/skills/cart-design-optimizer-agent/SKILL.md +162 -0
- package/data/skills/cbioportal-database/SKILL.md +367 -0
- package/data/skills/cell-free-expression/SKILL.md +291 -0
- package/data/skills/cellagent-annotation/SKILL.md +69 -0
- package/data/skills/cellfree-rna-agent/SKILL.md +182 -0
- package/data/skills/cellular-senescence-agent/SKILL.md +183 -0
- package/data/skills/cellxgene-census/SKILL.md +505 -0
- package/data/skills/chai/SKILL.md +272 -0
- package/data/skills/chatehr-clinician-assistant/SKILL.md +67 -0
- package/data/skills/chematagent-drug-discovery/SKILL.md +68 -0
- package/data/skills/chembl-database/SKILL.md +383 -0
- package/data/skills/chembl-search/SKILL.md +211 -0
- package/data/skills/chemcrow-drug-discovery/SKILL.md +61 -0
- package/data/skills/chemical-property-lookup/SKILL.md +42 -0
- package/data/skills/chemist-analyst/SKILL.md +1603 -0
- package/data/skills/chemistry-agent/SKILL.md +62 -0
- package/data/skills/chip-clonal-hematopoiesis-agent/SKILL.md +224 -0
- package/data/skills/chromosomal-instability-agent/SKILL.md +187 -0
- package/data/skills/citation-management/SKILL.md +1081 -0
- package/data/skills/claims-appeals/SKILL.md +35 -0
- package/data/skills/claw-ancestry-pca/SKILL.md +145 -0
- package/data/skills/claw-metagenomics/SKILL.md +238 -0
- package/data/skills/claw-semantic-sim/SKILL.md +151 -0
- package/data/skills/clinical-decision-support/SKILL.md +504 -0
- package/data/skills/clinical-diagnostic-reasoning/SKILL.md +222 -0
- package/data/skills/clinical-nlp-extractor/SKILL.md +59 -0
- package/data/skills/clinical-note-summarization/SKILL.md +52 -0
- package/data/skills/clinical-reports/SKILL.md +1127 -0
- package/data/skills/clinical-trial-protocol-skill/SKILL.md +508 -0
- package/data/skills/clinical-trials-search/SKILL.md +211 -0
- package/data/skills/clinicaltrials-database/SKILL.md +501 -0
- package/data/skills/clinpgx/SKILL.md +96 -0
- package/data/skills/clinpgx-database/SKILL.md +632 -0
- package/data/skills/clinvar-database/SKILL.md +356 -0
- package/data/skills/cnv-caller-agent/SKILL.md +171 -0
- package/data/skills/coagulation-thrombosis-agent/SKILL.md +141 -0
- package/data/skills/cobrapy/SKILL.md +457 -0
- package/data/skills/compbioagent-explorer/SKILL.md +67 -0
- package/data/skills/computational-pathology-agent/SKILL.md +72 -0
- package/data/skills/convergence-study/SKILL.md +98 -0
- package/data/skills/cosmic-database/SKILL.md +330 -0
- package/data/skills/crisis-detection-intervention-ai/SKILL.md +569 -0
- package/data/skills/crisis-response-protocol/SKILL.md +456 -0
- package/data/skills/crispr-guide-design/SKILL.md +72 -0
- package/data/skills/crispr-offtarget-predictor/SKILL.md +56 -0
- package/data/skills/cryoem-ai-drug-design-agent/SKILL.md +216 -0
- package/data/skills/ctdna-dynamics-mrd-agent/SKILL.md +206 -0
- package/data/skills/cytokine-storm-analysis-agent/SKILL.md +180 -0
- package/data/skills/dask/SKILL.md +454 -0
- package/data/skills/data-stats-analysis/SKILL.md +477 -0
- package/data/skills/data-transform/SKILL.md +576 -0
- package/data/skills/data-visualization-biomedical/SKILL.md +252 -0
- package/data/skills/data-visualization-expert/SKILL.md +72 -0
- package/data/skills/data-viz-plots/SKILL.md +461 -0
- package/data/skills/datacommons-client/SKILL.md +253 -0
- package/data/skills/datamol/SKILL.md +700 -0
- package/data/skills/deep-research/SKILL.md +111 -0
- package/data/skills/deep-research-swarm/SKILL.md +62 -0
- package/data/skills/deep-visual-proteomics-agent/SKILL.md +149 -0
- package/data/skills/deepchem/SKILL.md +591 -0
- package/data/skills/deeptools/SKILL.md +525 -0
- package/data/skills/depmap/SKILL.md +300 -0
- package/data/skills/diffdock/SKILL.md +477 -0
- package/data/skills/differentiation-schemes/SKILL.md +159 -0
- package/data/skills/digital-twin-clinical-agent/SKILL.md +228 -0
- package/data/skills/dispatching-parallel-agents/SKILL.md +180 -0
- package/data/skills/dnanexus-integration/SKILL.md +376 -0
- package/data/skills/doc-coauthoring/SKILL.md +375 -0
- package/data/skills/docx/SKILL.md +590 -0
- package/data/skills/docx-official/SKILL.md +197 -0
- package/data/skills/drug-discovery-search/SKILL.md +214 -0
- package/data/skills/drug-interaction-checker/SKILL.md +56 -0
- package/data/skills/drug-labels-search/SKILL.md +211 -0
- package/data/skills/drug-photo/SKILL.md +149 -0
- package/data/skills/drugbank-database/SKILL.md +184 -0
- package/data/skills/drugbank-search/SKILL.md +211 -0
- package/data/skills/ehr-fhir-integration/SKILL.md +60 -0
- package/data/skills/emergency-card/SKILL.md +426 -0
- package/data/skills/ena-database/SKILL.md +198 -0
- package/data/skills/ensembl-database/SKILL.md +305 -0
- package/data/skills/epidemiologist-analyst/SKILL.md +1844 -0
- package/data/skills/epigenomics-methylgpt-agent/SKILL.md +111 -0
- package/data/skills/equity-scorer/SKILL.md +182 -0
- package/data/skills/esm/SKILL.md +300 -0
- package/data/skills/etetoolkit/SKILL.md +617 -0
- package/data/skills/executing-plans/SKILL.md +84 -0
- package/data/skills/exosome-ev-analysis-agent/SKILL.md +171 -0
- package/data/skills/exploratory-data-analysis/SKILL.md +440 -0
- package/data/skills/family-health-analyzer/SKILL.md +137 -0
- package/data/skills/fastq-analysis/SKILL.md +191 -0
- package/data/skills/fda-database/SKILL.md +512 -0
- package/data/skills/fhir-developer-skill/SKILL.md +294 -0
- package/data/skills/fhir-development/SKILL.md +35 -0
- package/data/skills/find-skills/SKILL.md +133 -0
- package/data/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/data/skills/fitness-analyzer/SKILL.md +431 -0
- package/data/skills/flowio/SKILL.md +602 -0
- package/data/skills/foldseek/SKILL.md +179 -0
- package/data/skills/galaxy-bridge/SKILL.md +215 -0
- package/data/skills/gene-database/SKILL.md +173 -0
- package/data/skills/gene-panel-design-agent/SKILL.md +192 -0
- package/data/skills/geniml/SKILL.md +312 -0
- package/data/skills/genome-compare/SKILL.md +127 -0
- package/data/skills/geo-database/SKILL.md +809 -0
- package/data/skills/geopandas/SKILL.md +245 -0
- package/data/skills/gget/SKILL.md +865 -0
- package/data/skills/ginkgo-cloud-lab/SKILL.md +56 -0
- package/data/skills/glycoengineering/SKILL.md +338 -0
- package/data/skills/gnomad-database/SKILL.md +395 -0
- package/data/skills/goal-analyzer/SKILL.md +605 -0
- package/data/skills/grief-companion/SKILL.md +250 -0
- package/data/skills/gsea-enrichment/SKILL.md +151 -0
- package/data/skills/gtars/SKILL.md +279 -0
- package/data/skills/gtex-database/SKILL.md +315 -0
- package/data/skills/gwas-database/SKILL.md +602 -0
- package/data/skills/gwas-lookup/SKILL.md +122 -0
- package/data/skills/gwas-prs/SKILL.md +178 -0
- package/data/skills/health-trend-analyzer/SKILL.md +451 -0
- package/data/skills/hemoglobinopathy-analysis-agent/SKILL.md +167 -0
- package/data/skills/hipaa-compliance/SKILL.md +230 -0
- package/data/skills/histolab/SKILL.md +672 -0
- package/data/skills/hmdb-database/SKILL.md +190 -0
- package/data/skills/hrd-analysis-agent/SKILL.md +184 -0
- package/data/skills/hrv-alexithymia-expert/SKILL.md +151 -0
- package/data/skills/hypogenic/SKILL.md +649 -0
- package/data/skills/hypothesis-generation/SKILL.md +286 -0
- package/data/skills/imaging-data-commons/SKILL.md +843 -0
- package/data/skills/immune-checkpoint-combination-agent/SKILL.md +170 -0
- package/data/skills/infographics/SKILL.md +563 -0
- package/data/skills/instrument-data-to-allotrope/SKILL.md +280 -0
- package/data/skills/interpro-database/SKILL.md +305 -0
- package/data/skills/ipsae/SKILL.md +190 -0
- package/data/skills/iso-13485-certification/SKILL.md +678 -0
- package/data/skills/jaspar-database/SKILL.md +351 -0
- package/data/skills/jungian-psychologist/SKILL.md +191 -0
- package/data/skills/kegg-database/SKILL.md +371 -0
- package/data/skills/knowledge-synthesis/SKILL.md +283 -0
- package/data/skills/kragen-knowledge-graph/SKILL.md +68 -0
- package/data/skills/lab-results/SKILL.md +35 -0
- package/data/skills/labarchive-integration/SKILL.md +262 -0
- package/data/skills/labstep/SKILL.md +208 -0
- package/data/skills/lamindb/SKILL.md +384 -0
- package/data/skills/latchbio-integration/SKILL.md +347 -0
- package/data/skills/latex-posters/SKILL.md +1602 -0
- package/data/skills/leads-literature-mining/SKILL.md +68 -0
- package/data/skills/ligandmpnn/SKILL.md +170 -0
- package/data/skills/linear-solvers/SKILL.md +165 -0
- package/data/skills/liquid-biopsy-analytics-agent/SKILL.md +171 -0
- package/data/skills/lit-synthesizer/SKILL.md +53 -0
- package/data/skills/literature-review/SKILL.md +584 -0
- package/data/skills/literature-search/SKILL.md +214 -0
- package/data/skills/lobster-bioinformatics/SKILL.md +305 -0
- package/data/skills/long-read-sequencing-agent/SKILL.md +181 -0
- package/data/skills/mage-antibody-generator/SKILL.md +54 -0
- package/data/skills/markdown-mermaid-writing/SKILL.md +327 -0
- package/data/skills/markitdown/SKILL.md +486 -0
- package/data/skills/matchms/SKILL.md +197 -0
- package/data/skills/matplotlib/SKILL.md +359 -0
- package/data/skills/mcpmed-bioinformatics-server/SKILL.md +42 -0
- package/data/skills/medchem/SKILL.md +400 -0
- package/data/skills/medea-therapeutic-discovery/SKILL.md +45 -0
- package/data/skills/medical-entity-extractor/SKILL.md +144 -0
- package/data/skills/medical-imaging-review/SKILL.md +170 -0
- package/data/skills/medical-research-toolkit/SKILL.md +273 -0
- package/data/skills/medrxiv-search/SKILL.md +211 -0
- package/data/skills/mental-health-analyzer/SKILL.md +981 -0
- package/data/skills/mesh-generation/SKILL.md +149 -0
- package/data/skills/metabolomics-workbench-database/SKILL.md +253 -0
- package/data/skills/microbiome-cancer-agent/SKILL.md +180 -0
- package/data/skills/modern-drug-rehab-computer/SKILL.md +392 -0
- package/data/skills/molecular-dynamics/SKILL.md +457 -0
- package/data/skills/molecular-glue-discovery-agent/SKILL.md +224 -0
- package/data/skills/molecule-evolution-agent/SKILL.md +62 -0
- package/data/skills/molfeat/SKILL.md +505 -0
- package/data/skills/monarch-database/SKILL.md +372 -0
- package/data/skills/mpn-progression-monitor-agent/SKILL.md +228 -0
- package/data/skills/mpn-research-assistant/SKILL.md +197 -0
- package/data/skills/mrd-edge-detection-agent/SKILL.md +213 -0
- package/data/skills/multi-ancestry-prs-agent/SKILL.md +224 -0
- package/data/skills/multi-search-engine/SKILL.md +110 -0
- package/data/skills/multimodal-medical-imaging/SKILL.md +59 -0
- package/data/skills/multimodal-radpath-fusion-agent/SKILL.md +213 -0
- package/data/skills/myeloma-mrd-agent/SKILL.md +184 -0
- package/data/skills/networkx/SKILL.md +435 -0
- package/data/skills/neurokit2/SKILL.md +350 -0
- package/data/skills/neuropixels-analysis/SKILL.md +344 -0
- package/data/skills/nextflow-development/SKILL.md +290 -0
- package/data/skills/ngs-analysis/SKILL.md +183 -0
- package/data/skills/nicheformer-spatial-agent/SKILL.md +197 -0
- package/data/skills/nk-cell-therapy-agent/SKILL.md +186 -0
- package/data/skills/nonlinear-solvers/SKILL.md +180 -0
- package/data/skills/numerical-integration/SKILL.md +166 -0
- package/data/skills/numerical-stability/SKILL.md +149 -0
- package/data/skills/nutrition-analyzer/SKILL.md +775 -0
- package/data/skills/occupational-health-analyzer/SKILL.md +386 -0
- package/data/skills/omero-integration/SKILL.md +245 -0
- package/data/skills/ontology-explorer/SKILL.md +168 -0
- package/data/skills/ontology-mapper/SKILL.md +171 -0
- package/data/skills/ontology-validator/SKILL.md +136 -0
- package/data/skills/open-notebook/SKILL.md +289 -0
- package/data/skills/open-targets-search/SKILL.md +211 -0
- package/data/skills/openalex-database/SKILL.md +488 -0
- package/data/skills/opentargets-database/SKILL.md +367 -0
- package/data/skills/opentrons-integration/SKILL.md +567 -0
- package/data/skills/opentrons-protocol-agent/SKILL.md +58 -0
- package/data/skills/organoid-drug-response-agent/SKILL.md +189 -0
- package/data/skills/pan-cancer-multiomics-agent/SKILL.md +159 -0
- package/data/skills/paper-2-web/SKILL.md +495 -0
- package/data/skills/parameter-optimization/SKILL.md +141 -0
- package/data/skills/patents-search/SKILL.md +211 -0
- package/data/skills/pathml/SKILL.md +160 -0
- package/data/skills/patiently-ai/SKILL.md +103 -0
- package/data/skills/pdb/SKILL.md +217 -0
- package/data/skills/pdb-database/SKILL.md +303 -0
- package/data/skills/pdf/SKILL.md +314 -0
- package/data/skills/pdf-anthropic/SKILL.md +294 -0
- package/data/skills/pdf-processing/SKILL.md +149 -0
- package/data/skills/pdf-processing-pro/SKILL.md +296 -0
- package/data/skills/pdx-model-analysis-agent/SKILL.md +169 -0
- package/data/skills/peer-review/SKILL.md +565 -0
- package/data/skills/performance-profiling/SKILL.md +255 -0
- package/data/skills/perplexity-search/SKILL.md +441 -0
- package/data/skills/pharmacogenomics-agent/SKILL.md +143 -0
- package/data/skills/pharmgx-reporter/SKILL.md +134 -0
- package/data/skills/phylogenetics/SKILL.md +404 -0
- package/data/skills/plotly/SKILL.md +265 -0
- package/data/skills/polars/SKILL.md +385 -0
- package/data/skills/popeve-variant-predictor-agent/SKILL.md +213 -0
- package/data/skills/post-processing/SKILL.md +338 -0
- package/data/skills/pptx/SKILL.md +232 -0
- package/data/skills/pptx-official/SKILL.md +484 -0
- package/data/skills/pptx-posters/SKILL.md +414 -0
- package/data/skills/precision-oncology-agent/SKILL.md +53 -0
- package/data/skills/prior-auth-coworker/SKILL.md +60 -0
- package/data/skills/prior-auth-review-skill/SKILL.md +360 -0
- package/data/skills/profile-report/SKILL.md +120 -0
- package/data/skills/protac-design-agent/SKILL.md +220 -0
- package/data/skills/protein-design-workflow/SKILL.md +199 -0
- package/data/skills/protein-qc/SKILL.md +300 -0
- package/data/skills/protein-structure-prediction/SKILL.md +59 -0
- package/data/skills/proteinmpnn/SKILL.md +279 -0
- package/data/skills/protocolsio-integration/SKILL.md +415 -0
- package/data/skills/prs-net-deep-learning-agent/SKILL.md +232 -0
- package/data/skills/psychologist-analyst/SKILL.md +1888 -0
- package/data/skills/pubchem-database/SKILL.md +568 -0
- package/data/skills/pubmed-database/SKILL.md +454 -0
- package/data/skills/pubmed-search/SKILL.md +103 -0
- package/data/skills/pydeseq2/SKILL.md +553 -0
- package/data/skills/pydicom/SKILL.md +428 -0
- package/data/skills/pyhealth/SKILL.md +485 -0
- package/data/skills/pylabrobot/SKILL.md +179 -0
- package/data/skills/pymc/SKILL.md +566 -0
- package/data/skills/pymoo/SKILL.md +565 -0
- package/data/skills/pyopenms/SKILL.md +211 -0
- package/data/skills/pysam/SKILL.md +259 -0
- package/data/skills/pytdc/SKILL.md +454 -0
- package/data/skills/pytorch-lightning/SKILL.md +172 -0
- package/data/skills/pyzotero/SKILL.md +111 -0
- package/data/skills/radgpt-radiology-reporter/SKILL.md +67 -0
- package/data/skills/radiomics-pathomics-fusion-agent/SKILL.md +221 -0
- package/data/skills/rdkit/SKILL.md +763 -0
- package/data/skills/reactome-database/SKILL.md +272 -0
- package/data/skills/receiving-code-review/SKILL.md +213 -0
- package/data/skills/recovery-community-moderator/SKILL.md +175 -0
- package/data/skills/regulatory-drafter/SKILL.md +56 -0
- package/data/skills/regulatory-drafting/SKILL.md +35 -0
- package/data/skills/rehabilitation-analyzer/SKILL.md +636 -0
- package/data/skills/repro-enforcer/SKILL.md +50 -0
- package/data/skills/requesting-code-review/SKILL.md +105 -0
- package/data/skills/research-grants/SKILL.md +935 -0
- package/data/skills/research-literature/SKILL.md +35 -0
- package/data/skills/research-lookup/SKILL.md +502 -0
- package/data/skills/rfdiffusion/SKILL.md +306 -0
- package/data/skills/rna-velocity-agent/SKILL.md +174 -0
- package/data/skills/scanpy/SKILL.md +380 -0
- package/data/skills/scfoundation-model-agent/SKILL.md +210 -0
- package/data/skills/scientific-brainstorming/SKILL.md +185 -0
- package/data/skills/scientific-critical-thinking/SKILL.md +566 -0
- package/data/skills/scientific-manuscript/SKILL.md +181 -0
- package/data/skills/scientific-problem-selection/SKILL.md +269 -0
- package/data/skills/scientific-schematics/SKILL.md +619 -0
- package/data/skills/scientific-slides/SKILL.md +1154 -0
- package/data/skills/scientific-visualization/SKILL.md +773 -0
- package/data/skills/scientific-writing/SKILL.md +483 -0
- package/data/skills/scikit-bio/SKILL.md +431 -0
- package/data/skills/scikit-learn/SKILL.md +515 -0
- package/data/skills/scikit-survival/SKILL.md +393 -0
- package/data/skills/scrna-orchestrator/SKILL.md +204 -0
- package/data/skills/scrna-qc/SKILL.md +43 -0
- package/data/skills/scvelo/SKILL.md +321 -0
- package/data/skills/scvi-tools/SKILL.md +184 -0
- package/data/skills/seaborn/SKILL.md +671 -0
- package/data/skills/search-strategy/SKILL.md +247 -0
- package/data/skills/seq-wrangler/SKILL.md +58 -0
- package/data/skills/shap/SKILL.md +560 -0
- package/data/skills/simo-multiomics-integration-agent/SKILL.md +178 -0
- package/data/skills/simpy/SKILL.md +423 -0
- package/data/skills/simulation-orchestrator/SKILL.md +230 -0
- package/data/skills/simulation-validator/SKILL.md +195 -0
- package/data/skills/single-annotation/SKILL.md +129 -0
- package/data/skills/single-cell-rna-qc/SKILL.md +175 -0
- package/data/skills/single-cellphone-db/SKILL.md +68 -0
- package/data/skills/single-clustering/SKILL.md +75 -0
- package/data/skills/single-downstream-analysis/SKILL.md +150 -0
- package/data/skills/single-multiomics/SKILL.md +44 -0
- package/data/skills/single-preprocessing/SKILL.md +184 -0
- package/data/skills/single-to-spatial-mapping/SKILL.md +48 -0
- package/data/skills/single-trajectory/SKILL.md +62 -0
- package/data/skills/sleep-analyzer/SKILL.md +773 -0
- package/data/skills/slurm-job-script-generator/SKILL.md +135 -0
- package/data/skills/solublempnn/SKILL.md +165 -0
- package/data/skills/spatial-agent/SKILL.md +56 -0
- package/data/skills/spatial-epigenomics-agent/SKILL.md +163 -0
- package/data/skills/spatial-transcriptomics-agent/SKILL.md +75 -0
- package/data/skills/spatial-transcriptomics-analysis/SKILL.md +72 -0
- package/data/skills/spatial-transcriptomics-analysis/STAgent/SKILL.md +75 -0
- package/data/skills/spatial-transcriptomics-analysis/SpatialAgent/SKILL.md +56 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/image-analysis/SKILL.md +266 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-communication/SKILL.md +287 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-data-io/SKILL.md +243 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-deconvolution/SKILL.md +298 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-domains/SKILL.md +229 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-multiomics/SKILL.md +172 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-neighbors/SKILL.md +189 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-preprocessing/SKILL.md +232 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-proteomics/SKILL.md +127 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-statistics/SKILL.md +225 -0
- package/data/skills/spatial-transcriptomics-analysis/bioSkills/spatial-visualization/SKILL.md +270 -0
- package/data/skills/spatial-tutorials/SKILL.md +87 -0
- package/data/skills/speech-pathology-ai/SKILL.md +184 -0
- package/data/skills/statistical-analysis/SKILL.md +626 -0
- package/data/skills/statsmodels/SKILL.md +608 -0
- package/data/skills/string-database/SKILL.md +528 -0
- package/data/skills/struct-predictor/SKILL.md +52 -0
- package/data/skills/subagent-driven-development/SKILL.md +242 -0
- package/data/skills/systematic-debugging/SKILL.md +296 -0
- package/data/skills/tcell-exhaustion-analysis-agent/SKILL.md +139 -0
- package/data/skills/tcga-preprocessing/SKILL.md +49 -0
- package/data/skills/tcm-constitution-analyzer/SKILL.md +664 -0
- package/data/skills/tcr-pmhc-prediction-agent/SKILL.md +226 -0
- package/data/skills/tcr-repertoire-analysis-agent/SKILL.md +218 -0
- package/data/skills/test-driven-development/SKILL.md +371 -0
- package/data/skills/tiledbvcf/SKILL.md +459 -0
- package/data/skills/time-resolved-cryoem-agent/SKILL.md +223 -0
- package/data/skills/time-stepping/SKILL.md +140 -0
- package/data/skills/timesfm-forecasting/SKILL.md +785 -0
- package/data/skills/tme-immune-profiling-agent/SKILL.md +220 -0
- package/data/skills/tooluniverse-adverse-event-detection/SKILL.md +1115 -0
- package/data/skills/tooluniverse-antibody-engineering/SKILL.md +1581 -0
- package/data/skills/tooluniverse-binder-discovery/SKILL.md +1459 -0
- package/data/skills/tooluniverse-cancer-variant-interpretation/SKILL.md +971 -0
- package/data/skills/tooluniverse-chemical-compound-retrieval/SKILL.md +322 -0
- package/data/skills/tooluniverse-chemical-safety/SKILL.md +733 -0
- package/data/skills/tooluniverse-clinical-guidelines/SKILL.md +399 -0
- package/data/skills/tooluniverse-clinical-trial-design/SKILL.md +1195 -0
- package/data/skills/tooluniverse-clinical-trial-matching/SKILL.md +1333 -0
- package/data/skills/tooluniverse-crispr-screen-analysis/SKILL.md +900 -0
- package/data/skills/tooluniverse-disease-research/SKILL.md +630 -0
- package/data/skills/tooluniverse-drug-drug-interaction/SKILL.md +73 -0
- package/data/skills/tooluniverse-drug-repurposing/SKILL.md +595 -0
- package/data/skills/tooluniverse-drug-research/SKILL.md +1642 -0
- package/data/skills/tooluniverse-drug-target-validation/SKILL.md +1206 -0
- package/data/skills/tooluniverse-epigenomics/SKILL.md +1489 -0
- package/data/skills/tooluniverse-expression-data-retrieval/SKILL.md +389 -0
- package/data/skills/tooluniverse-gene-enrichment/SKILL.md +402 -0
- package/data/skills/tooluniverse-gwas-drug-discovery/SKILL.md +576 -0
- package/data/skills/tooluniverse-gwas-finemapping/SKILL.md +309 -0
- package/data/skills/tooluniverse-gwas-snp-interpretation/SKILL.md +223 -0
- package/data/skills/tooluniverse-gwas-study-explorer/SKILL.md +342 -0
- package/data/skills/tooluniverse-gwas-trait-to-gene/SKILL.md +236 -0
- package/data/skills/tooluniverse-image-analysis/SKILL.md +439 -0
- package/data/skills/tooluniverse-immune-repertoire-analysis/SKILL.md +949 -0
- package/data/skills/tooluniverse-immunotherapy-response-prediction/SKILL.md +865 -0
- package/data/skills/tooluniverse-infectious-disease/SKILL.md +749 -0
- package/data/skills/tooluniverse-literature-deep-research/SKILL.md +1050 -0
- package/data/skills/tooluniverse-metabolomics/SKILL.md +298 -0
- package/data/skills/tooluniverse-metabolomics-analysis/SKILL.md +764 -0
- package/data/skills/tooluniverse-multi-omics-integration/SKILL.md +703 -0
- package/data/skills/tooluniverse-multiomic-disease-characterization/SKILL.md +1138 -0
- package/data/skills/tooluniverse-network-pharmacology/SKILL.md +1312 -0
- package/data/skills/tooluniverse-pharmacovigilance/SKILL.md +807 -0
- package/data/skills/tooluniverse-phylogenetics/SKILL.md +461 -0
- package/data/skills/tooluniverse-polygenic-risk-score/SKILL.md +397 -0
- package/data/skills/tooluniverse-precision-medicine-stratification/SKILL.md +1143 -0
- package/data/skills/tooluniverse-precision-oncology/SKILL.md +1091 -0
- package/data/skills/tooluniverse-protein-interactions/SKILL.md +446 -0
- package/data/skills/tooluniverse-protein-structure-retrieval/SKILL.md +416 -0
- package/data/skills/tooluniverse-protein-therapeutic-design/SKILL.md +637 -0
- package/data/skills/tooluniverse-proteomics-analysis/SKILL.md +843 -0
- package/data/skills/tooluniverse-rare-disease-diagnosis/SKILL.md +1257 -0
- package/data/skills/tooluniverse-rnaseq-deseq2/SKILL.md +536 -0
- package/data/skills/tooluniverse-sequence-retrieval/SKILL.md +419 -0
- package/data/skills/tooluniverse-single-cell/SKILL.md +719 -0
- package/data/skills/tooluniverse-spatial-omics-analysis/SKILL.md +1102 -0
- package/data/skills/tooluniverse-spatial-transcriptomics/SKILL.md +788 -0
- package/data/skills/tooluniverse-statistical-modeling/SKILL.md +557 -0
- package/data/skills/tooluniverse-structural-variant-analysis/SKILL.md +1356 -0
- package/data/skills/tooluniverse-systems-biology/SKILL.md +374 -0
- package/data/skills/tooluniverse-target-research/SKILL.md +1510 -0
- package/data/skills/tooluniverse-variant-analysis/SKILL.md +448 -0
- package/data/skills/tooluniverse-variant-interpretation/SKILL.md +1118 -0
- package/data/skills/torch-geometric/SKILL.md +674 -0
- package/data/skills/torch_geometric/SKILL.md +670 -0
- package/data/skills/torchdrug/SKILL.md +444 -0
- package/data/skills/tpd-ternary-complex-agent/SKILL.md +226 -0
- package/data/skills/transformers/SKILL.md +157 -0
- package/data/skills/travel-health-analyzer/SKILL.md +421 -0
- package/data/skills/treatment-plans/SKILL.md +1576 -0
- package/data/skills/trial-eligibility-agent/SKILL.md +54 -0
- package/data/skills/trialgpt-matching/SKILL.md +66 -0
- package/data/skills/tumor-clonal-evolution-agent/SKILL.md +134 -0
- package/data/skills/tumor-heterogeneity-agent/SKILL.md +216 -0
- package/data/skills/tumor-mutational-burden-agent/SKILL.md +188 -0
- package/data/skills/ukb-navigator/SKILL.md +113 -0
- package/data/skills/umap-learn/SKILL.md +473 -0
- package/data/skills/uniprot-database/SKILL.md +189 -0
- package/data/skills/universal-single-cell-annotator/SKILL.md +72 -0
- package/data/skills/using-git-worktrees/SKILL.md +218 -0
- package/data/skills/using-superpowers/SKILL.md +95 -0
- package/data/skills/usmle/SKILL.md +62 -0
- package/data/skills/uspto-database/SKILL.md +597 -0
- package/data/skills/vaex/SKILL.md +180 -0
- package/data/skills/varcadd-pathogenicity/SKILL.md +68 -0
- package/data/skills/variant-interpretation-acmg/SKILL.md +58 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/clinical-interpretation/SKILL.md +334 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/consensus-sequences/SKILL.md +343 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/deepvariant/SKILL.md +279 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/filtering-best-practices/SKILL.md +362 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/gatk-variant-calling/SKILL.md +398 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/joint-calling/SKILL.md +343 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/structural-variant-calling/SKILL.md +256 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/variant-annotation/SKILL.md +387 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/variant-calling/SKILL.md +258 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/variant-normalization/SKILL.md +304 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/vcf-basics/SKILL.md +329 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/vcf-manipulation/SKILL.md +398 -0
- package/data/skills/variant-interpretation-acmg/bioSkills/vcf-statistics/SKILL.md +424 -0
- package/data/skills/variant-interpretation-acmg/varCADD/SKILL.md +68 -0
- package/data/skills/vcf-annotator/SKILL.md +55 -0
- package/data/skills/verification-before-completion/SKILL.md +139 -0
- package/data/skills/virtual-lab-agent/SKILL.md +240 -0
- package/data/skills/wearable-analysis-agent/SKILL.md +70 -0
- package/data/skills/weightloss-analyzer/SKILL.md +320 -0
- package/data/skills/wellally-tech/SKILL.md +685 -0
- package/data/skills/wikipedia-search/SKILL.md +481 -0
- package/data/skills/writing-plans/SKILL.md +116 -0
- package/data/skills/writing-skills/SKILL.md +655 -0
- package/data/skills/xlsx/SKILL.md +292 -0
- package/data/skills/xlsx-official/SKILL.md +289 -0
- package/data/skills/zarr-python/SKILL.md +777 -0
- package/data/skills/zinc-database/SKILL.md +398 -0
- package/data/tools/__init__.py +8 -0
- package/data/tools/hpc.py +71 -0
- package/data/tools/hpc_client/__init__.py +8 -0
- package/data/tools/hpc_client/builders/__init__.py +12 -0
- package/data/tools/hpc_client/builders/alphafold.py +36 -0
- package/data/tools/hpc_client/builders/boltz.py +33 -0
- package/data/tools/hpc_client/builders/chai.py +30 -0
- package/data/tools/hpc_client/builders/immunebuilder.py +31 -0
- package/data/tools/hpc_client/builders/rfantibody.py +58 -0
- package/data/tools/hpc_client/builders/thermompnn.py +16 -0
- package/data/tools/hpc_client/hpc_api.py +41 -0
- package/data/tools/hpc_client/hpc_tools.py +218 -0
- package/data/tools/hpc_dynamic.py +71 -0
- package/data/tools/integrations/__init__.py +14 -0
- package/data/tools/integrations/adaptyv.py +107 -0
- package/data/tools/integrations/addgene.py +52 -0
- package/data/tools/integrations/api_internal.py +33 -0
- package/data/tools/molecular_biology.py +688 -0
- package/data/tools/pharmacology.py +67 -0
- package/data/workflows/bulk-omics-clustering/SKILL.md +501 -0
- package/data/workflows/bulk-omics-clustering/references/best_practices.md +395 -0
- package/data/workflows/bulk-omics-clustering/references/clustering_methods_comparison.md +288 -0
- package/data/workflows/bulk-omics-clustering/references/common-patterns.md +1136 -0
- package/data/workflows/bulk-omics-clustering/references/decision-guide.md +819 -0
- package/data/workflows/bulk-omics-clustering/references/distance_metrics_guide.md +388 -0
- package/data/workflows/bulk-omics-clustering/references/parameter_guide.md +396 -0
- package/data/workflows/bulk-omics-clustering/references/r-quick-start.md +105 -0
- package/data/workflows/bulk-omics-clustering/references/validation_metrics_guide.md +315 -0
- package/data/workflows/bulk-omics-clustering/scripts/characterize_clusters.py +255 -0
- package/data/workflows/bulk-omics-clustering/scripts/cluster_validation.py +449 -0
- package/data/workflows/bulk-omics-clustering/scripts/density_clustering.py +321 -0
- package/data/workflows/bulk-omics-clustering/scripts/dimensionality_reduction.py +328 -0
- package/data/workflows/bulk-omics-clustering/scripts/distance_metrics.py +251 -0
- package/data/workflows/bulk-omics-clustering/scripts/export_results.py +456 -0
- package/data/workflows/bulk-omics-clustering/scripts/hierarchical_clustering.R +229 -0
- package/data/workflows/bulk-omics-clustering/scripts/hierarchical_clustering.py +269 -0
- package/data/workflows/bulk-omics-clustering/scripts/kmeans_clustering.py +346 -0
- package/data/workflows/bulk-omics-clustering/scripts/load_example_data.R +171 -0
- package/data/workflows/bulk-omics-clustering/scripts/load_example_data.py +171 -0
- package/data/workflows/bulk-omics-clustering/scripts/model_based_clustering.py +370 -0
- package/data/workflows/bulk-omics-clustering/scripts/optimal_clusters.py +381 -0
- package/data/workflows/bulk-omics-clustering/scripts/plot_cluster_heatmap.R +141 -0
- package/data/workflows/bulk-omics-clustering/scripts/plot_clustering_results.py +452 -0
- package/data/workflows/bulk-omics-clustering/scripts/prepare_data.py +250 -0
- package/data/workflows/bulk-omics-clustering/scripts/stability_analysis.py +434 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/SKILL.md +505 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/references/comprehensive-reference.md +440 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/references/decision-guide.md +327 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/references/troubleshooting.md +456 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/references/usage-guide.md +75 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/basic_workflow.R +149 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/batch_correction.R +44 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/export_results.R +190 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/extract_results.R +242 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/load_example_data.R +250 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/multi_condition.R +50 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/qc_plots.R +410 -0
- package/data/workflows/bulk-rnaseq-counts-to-de-deseq2/scripts/transformations.R +218 -0
- package/data/workflows/chip-atlas-diff-analysis/SKILL.md +222 -0
- package/data/workflows/chip-atlas-diff-analysis/references/chipatlas_diff_api_format.md +106 -0
- package/data/workflows/chip-atlas-diff-analysis/references/diff_analysis_methods.md +89 -0
- package/data/workflows/chip-atlas-diff-analysis/references/output_format.md +78 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/__init__.py +1 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/annotate_genes.py +144 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/export_all.py +498 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/filter_regions.py +176 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/generate_all_plots.py +321 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/load_example_data.py +149 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/load_user_data.py +211 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/parse_bed_results.py +240 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/qc_checks.py +621 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/query_chipatlas_api.py +329 -0
- package/data/workflows/chip-atlas-diff-analysis/scripts/run_diff_workflow.py +256 -0
- package/data/workflows/chip-atlas-peak-enrichment/SKILL.md +212 -0
- package/data/workflows/chip-atlas-peak-enrichment/references/chipatlas_metadata_format.md +115 -0
- package/data/workflows/chip-atlas-peak-enrichment/references/enrichment_statistics.md +145 -0
- package/data/workflows/chip-atlas-peak-enrichment/references/peak_thresholds.md +63 -0
- package/data/workflows/chip-atlas-peak-enrichment/references/promoter_definitions.md +69 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/__init__.py +1 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/convert_genes_to_regions.py +271 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/export_all.py +456 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/filter_experiments.py +116 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/generate_all_plots.py +280 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/load_example_data.py +96 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/load_user_data.py +183 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/query_chipatlas_api.py +349 -0
- package/data/workflows/chip-atlas-peak-enrichment/scripts/run_enrichment_workflow.py +271 -0
- package/data/workflows/chip-atlas-target-genes/SKILL.md +230 -0
- package/data/workflows/chip-atlas-target-genes/references/macs2_binding_scores.md +89 -0
- package/data/workflows/chip-atlas-target-genes/references/string_scores.md +58 -0
- package/data/workflows/chip-atlas-target-genes/references/target_genes_data_format.md +73 -0
- package/data/workflows/chip-atlas-target-genes/scripts/__init__.py +0 -0
- package/data/workflows/chip-atlas-target-genes/scripts/download_target_genes.py +200 -0
- package/data/workflows/chip-atlas-target-genes/scripts/export_all.py +340 -0
- package/data/workflows/chip-atlas-target-genes/scripts/filter_targets.py +205 -0
- package/data/workflows/chip-atlas-target-genes/scripts/generate_all_plots.py +330 -0
- package/data/workflows/chip-atlas-target-genes/scripts/load_example_query.py +61 -0
- package/data/workflows/chip-atlas-target-genes/scripts/load_user_query.py +47 -0
- package/data/workflows/chip-atlas-target-genes/scripts/run_target_genes_workflow.py +141 -0
- package/data/workflows/clinicaltrials-landscape/SKILL.md +257 -0
- package/data/workflows/clinicaltrials-landscape/references/api-parameters.md +181 -0
- package/data/workflows/clinicaltrials-landscape/references/mechanisms.md +141 -0
- package/data/workflows/clinicaltrials-landscape/references/output-schema.md +184 -0
- package/data/workflows/clinicaltrials-landscape/scripts/__init__.py +1 -0
- package/data/workflows/clinicaltrials-landscape/scripts/classify_mechanisms.py +359 -0
- package/data/workflows/clinicaltrials-landscape/scripts/compile_trials.py +579 -0
- package/data/workflows/clinicaltrials-landscape/scripts/disease_config.py +161 -0
- package/data/workflows/clinicaltrials-landscape/scripts/export_all.py +242 -0
- package/data/workflows/clinicaltrials-landscape/scripts/generate_landscape_plots.py +761 -0
- package/data/workflows/clinicaltrials-landscape/scripts/generate_pdf_report.py +1465 -0
- package/data/workflows/clinicaltrials-landscape/scripts/generate_report.py +1813 -0
- package/data/workflows/clinicaltrials-landscape/scripts/query_clinicaltrials.py +307 -0
- package/data/workflows/coexpression-network/SKILL.md +344 -0
- package/data/workflows/coexpression-network/references/parameter-tuning-guide.md +591 -0
- package/data/workflows/coexpression-network/references/troubleshooting.md +483 -0
- package/data/workflows/coexpression-network/references/wgcna-best-practices.md +563 -0
- package/data/workflows/coexpression-network/references/wgcna-reference.md +538 -0
- package/data/workflows/coexpression-network/scripts/build_network.R +43 -0
- package/data/workflows/coexpression-network/scripts/correlate_modules_traits.R +92 -0
- package/data/workflows/coexpression-network/scripts/export_wgcna_results.R +117 -0
- package/data/workflows/coexpression-network/scripts/identify_hub_genes.R +63 -0
- package/data/workflows/coexpression-network/scripts/load_example_data.R +214 -0
- package/data/workflows/coexpression-network/scripts/module_enrichment.R +159 -0
- package/data/workflows/coexpression-network/scripts/pick_soft_power.R +70 -0
- package/data/workflows/coexpression-network/scripts/plot_all_wgcna.R +104 -0
- package/data/workflows/coexpression-network/scripts/plot_eigengene_heatmap.R +65 -0
- package/data/workflows/coexpression-network/scripts/plot_hub_genes.R +70 -0
- package/data/workflows/coexpression-network/scripts/plot_module_dendrogram.R +50 -0
- package/data/workflows/coexpression-network/scripts/plotting_helpers.R +87 -0
- package/data/workflows/coexpression-network/scripts/prepare_wgcna_data.R +73 -0
- package/data/workflows/coexpression-network/scripts/wgcna_workflow.R +93 -0
- package/data/workflows/experimental-design-statistics/SKILL.md +408 -0
- package/data/workflows/experimental-design-statistics/references/batch_effect_mitigation.md +756 -0
- package/data/workflows/experimental-design-statistics/references/cv_tissue_database.csv +30 -0
- package/data/workflows/experimental-design-statistics/references/experimental_design_best_practices.md +515 -0
- package/data/workflows/experimental-design-statistics/references/multiple_testing_guide.md +730 -0
- package/data/workflows/experimental-design-statistics/references/power_analysis_guidelines.md +635 -0
- package/data/workflows/experimental-design-statistics/references/qc_guidelines.md +310 -0
- package/data/workflows/experimental-design-statistics/references/software_requirements.md +328 -0
- package/data/workflows/experimental-design-statistics/references/troubleshooting_guide.md +510 -0
- package/data/workflows/experimental-design-statistics/scripts/batch_assignment.R +302 -0
- package/data/workflows/experimental-design-statistics/scripts/batch_validation.R +342 -0
- package/data/workflows/experimental-design-statistics/scripts/export_design.R +352 -0
- package/data/workflows/experimental-design-statistics/scripts/load_example_data.R +204 -0
- package/data/workflows/experimental-design-statistics/scripts/multiple_testing.R +417 -0
- package/data/workflows/experimental-design-statistics/scripts/plot_power_curves.R +317 -0
- package/data/workflows/experimental-design-statistics/scripts/power_atacseq.R +229 -0
- package/data/workflows/experimental-design-statistics/scripts/power_pilot_based.R +289 -0
- package/data/workflows/experimental-design-statistics/scripts/power_rnaseq.R +247 -0
- package/data/workflows/experimental-design-statistics/scripts/sample_size_de.R +327 -0
- package/data/workflows/experimental-design-statistics/scripts/sample_size_scrna.R +304 -0
- package/data/workflows/functional-enrichment-from-degs/SKILL.md +387 -0
- package/data/workflows/functional-enrichment-from-degs/references/database_guide.md +354 -0
- package/data/workflows/functional-enrichment-from-degs/references/decision-guide.md +546 -0
- package/data/workflows/functional-enrichment-from-degs/references/gsea_ora_comparison.md +213 -0
- package/data/workflows/functional-enrichment-from-degs/references/gsea_ora_validation_framework.md +483 -0
- package/data/workflows/functional-enrichment-from-degs/references/interpretation_guidelines.md +374 -0
- package/data/workflows/functional-enrichment-from-degs/references/method-reference.md +742 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/export_results.R +190 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/generate_plots.R +240 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/get_msigdb_genesets.R +75 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/load_de_results.R +60 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/load_example_data.R +212 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/prepare_gene_lists.R +92 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/run_gsea.R +44 -0
- package/data/workflows/functional-enrichment-from-degs/scripts/run_ora.R +53 -0
- package/data/workflows/genetic-variant-annotation/SKILL.md +440 -0
- package/data/workflows/genetic-variant-annotation/references/auto_installation_implementation.md +274 -0
- package/data/workflows/genetic-variant-annotation/references/consequence_terms.md +392 -0
- package/data/workflows/genetic-variant-annotation/references/filtering_strategies.md +808 -0
- package/data/workflows/genetic-variant-annotation/references/installation_guide.md +557 -0
- package/data/workflows/genetic-variant-annotation/references/pathogenicity_interpretation.md +473 -0
- package/data/workflows/genetic-variant-annotation/references/qc_guidelines.md +524 -0
- package/data/workflows/genetic-variant-annotation/references/snpeff_best_practices.md +481 -0
- package/data/workflows/genetic-variant-annotation/references/tool_selection_guide.md +433 -0
- package/data/workflows/genetic-variant-annotation/references/troubleshooting_guide.md +678 -0
- package/data/workflows/genetic-variant-annotation/references/vep_best_practices.md +450 -0
- package/data/workflows/genetic-variant-annotation/scripts/annotate_genes.py +243 -0
- package/data/workflows/genetic-variant-annotation/scripts/export_results.py +450 -0
- package/data/workflows/genetic-variant-annotation/scripts/filter_variants.py +365 -0
- package/data/workflows/genetic-variant-annotation/scripts/install_tools.py +246 -0
- package/data/workflows/genetic-variant-annotation/scripts/load_example_data.py +166 -0
- package/data/workflows/genetic-variant-annotation/scripts/parse_snpeff_output.py +283 -0
- package/data/workflows/genetic-variant-annotation/scripts/parse_vep_output.py +257 -0
- package/data/workflows/genetic-variant-annotation/scripts/plot_variant_distribution.py +372 -0
- package/data/workflows/genetic-variant-annotation/scripts/prioritize_variants.py +287 -0
- package/data/workflows/genetic-variant-annotation/scripts/run_snpeff.py +418 -0
- package/data/workflows/genetic-variant-annotation/scripts/run_vep.py +358 -0
- package/data/workflows/genetic-variant-annotation/scripts/select_tool.py +203 -0
- package/data/workflows/genetic-variant-annotation/scripts/test_complete_workflow.py +312 -0
- package/data/workflows/genetic-variant-annotation/scripts/test_pickle_load.py +118 -0
- package/data/workflows/genetic-variant-annotation/scripts/validate_vcf.py +351 -0
- package/data/workflows/genetic-variant-annotation/scripts/verify_changes.py +212 -0
- package/data/workflows/grn-pyscenic/SKILL.md +331 -0
- package/data/workflows/grn-pyscenic/references/cli_interface.md +222 -0
- package/data/workflows/grn-pyscenic/references/database_downloads.md +245 -0
- package/data/workflows/grn-pyscenic/scripts/export_all.py +192 -0
- package/data/workflows/grn-pyscenic/scripts/generate_report.py +512 -0
- package/data/workflows/grn-pyscenic/scripts/integrate_with_adata.py +54 -0
- package/data/workflows/grn-pyscenic/scripts/load_example_data.py +200 -0
- package/data/workflows/grn-pyscenic/scripts/load_expression_data.py +61 -0
- package/data/workflows/grn-pyscenic/scripts/plot_regulon_visualizations.py +263 -0
- package/data/workflows/grn-pyscenic/scripts/run_grn_workflow.py +184 -0
- package/data/workflows/gwas-to-function-twas/SKILL.md +394 -0
- package/data/workflows/gwas-to-function-twas/references/fusion_best_practices.md +120 -0
- package/data/workflows/gwas-to-function-twas/references/installation-guide.md +414 -0
- package/data/workflows/gwas-to-function-twas/references/ldsc_qc_guidelines.md +287 -0
- package/data/workflows/gwas-to-function-twas/references/spredixxcan_best_practices.md +166 -0
- package/data/workflows/gwas-to-function-twas/references/therapeutic_interpretation_guide.md +717 -0
- package/data/workflows/gwas-to-function-twas/references/tissue_reference_guide.md +182 -0
- package/data/workflows/gwas-to-function-twas/references/troubleshooting_guide.md +317 -0
- package/data/workflows/gwas-to-function-twas/references/twas_hub_validation_guide.md +88 -0
- package/data/workflows/gwas-to-function-twas/scripts/colocalization_analysis.py +187 -0
- package/data/workflows/gwas-to-function-twas/scripts/druggability_scoring.py +199 -0
- package/data/workflows/gwas-to-function-twas/scripts/export_results.py +220 -0
- package/data/workflows/gwas-to-function-twas/scripts/integrate_variant_annotation.py +194 -0
- package/data/workflows/gwas-to-function-twas/scripts/interpret_therapeutic_direction.py +418 -0
- package/data/workflows/gwas-to-function-twas/scripts/mendelian_randomization.py +749 -0
- package/data/workflows/gwas-to-function-twas/scripts/multilayer_direction_analysis.py +471 -0
- package/data/workflows/gwas-to-function-twas/scripts/plot_twas_results.py +252 -0
- package/data/workflows/gwas-to-function-twas/scripts/run_fusion.py +155 -0
- package/data/workflows/gwas-to-function-twas/scripts/run_smultixcan.py +102 -0
- package/data/workflows/gwas-to-function-twas/scripts/run_spredixxcan.py +138 -0
- package/data/workflows/gwas-to-function-twas/scripts/select_reference_panel.py +253 -0
- package/data/workflows/gwas-to-function-twas/scripts/validate_gwas_sumstats.py +214 -0
- package/data/workflows/gwas-to-function-twas/scripts/validate_with_twas_hub.py +439 -0
- package/data/workflows/lasso-biomarker-panel/SKILL.md +322 -0
- package/data/workflows/lasso-biomarker-panel/references/decision-guide.md +64 -0
- package/data/workflows/lasso-biomarker-panel/references/lasso-reference.md +110 -0
- package/data/workflows/lasso-biomarker-panel/references/validation-guide.md +105 -0
- package/data/workflows/lasso-biomarker-panel/scripts/biological_interpretation.R +1560 -0
- package/data/workflows/lasso-biomarker-panel/scripts/biomarker_plots.R +350 -0
- package/data/workflows/lasso-biomarker-panel/scripts/export_results.R +1492 -0
- package/data/workflows/lasso-biomarker-panel/scripts/lasso_workflow.R +328 -0
- package/data/workflows/lasso-biomarker-panel/scripts/load_example_data.R +1903 -0
- package/data/workflows/lasso-biomarker-panel/scripts/plotting_helpers.R +78 -0
- package/data/workflows/lasso-biomarker-panel/scripts/prepare_features.R +225 -0
- package/data/workflows/lasso-biomarker-panel/scripts/query_cellxgene.py +107 -0
- package/data/workflows/lasso-biomarker-panel/scripts/validate_external.R +174 -0
- package/data/workflows/literature-preclinical/SKILL.md +276 -0
- package/data/workflows/literature-preclinical/assets/eval/simple_test.py +386 -0
- package/data/workflows/literature-preclinical/references/experiment-extraction-guide.md +147 -0
- package/data/workflows/literature-preclinical/references/full-text-enrichment-guide.md +121 -0
- package/data/workflows/literature-preclinical/references/preclinical-search-guide.md +117 -0
- package/data/workflows/literature-preclinical/scripts/extract_experiments.py +401 -0
- package/data/workflows/literature-preclinical/scripts/generate_plots.R +303 -0
- package/data/workflows/literature-preclinical/scripts/narrative_synthesis.py +653 -0
- package/data/workflows/literature-preclinical/scripts/preclinical_search.py +332 -0
- package/data/workflows/literature-preclinical/scripts/preclinical_synthesis.py +237 -0
- package/data/workflows/literature-preclinical/scripts/report_generation.py +326 -0
- package/data/workflows/mendelian-randomization-twosamplemr/SKILL.md +210 -0
- package/data/workflows/mendelian-randomization-twosamplemr/references/interpretation-guide.md +239 -0
- package/data/workflows/mendelian-randomization-twosamplemr/references/method-reference.md +190 -0
- package/data/workflows/mendelian-randomization-twosamplemr/scripts/export_results.R +123 -0
- package/data/workflows/mendelian-randomization-twosamplemr/scripts/generate_report.R +411 -0
- package/data/workflows/mendelian-randomization-twosamplemr/scripts/load_data.R +281 -0
- package/data/workflows/mendelian-randomization-twosamplemr/scripts/mr_plots.R +163 -0
- package/data/workflows/mendelian-randomization-twosamplemr/scripts/run_mr_analysis.R +322 -0
- package/data/workflows/pcr-primer-design/SKILL.md +397 -0
- package/data/workflows/pcr-primer-design/references/code_examples.md +594 -0
- package/data/workflows/pcr-primer-design/references/miqe_guidelines.md +453 -0
- package/data/workflows/pcr-primer-design/references/parameter_ranges.md +356 -0
- package/data/workflows/pcr-primer-design/references/primer_design_best_practices.md +451 -0
- package/data/workflows/pcr-primer-design/references/troubleshooting_guide.md +477 -0
- package/data/workflows/pcr-primer-design/scripts/__init__.py +2 -0
- package/data/workflows/pcr-primer-design/scripts/calculate_tm.py +306 -0
- package/data/workflows/pcr-primer-design/scripts/check_dimers.py +298 -0
- package/data/workflows/pcr-primer-design/scripts/check_secondary_structures.py +343 -0
- package/data/workflows/pcr-primer-design/scripts/design_qpcr_primers.py +233 -0
- package/data/workflows/pcr-primer-design/scripts/design_standard_primers.py +197 -0
- package/data/workflows/pcr-primer-design/scripts/design_taqman_probes.py +226 -0
- package/data/workflows/pcr-primer-design/scripts/export_results.py +382 -0
- package/data/workflows/pcr-primer-design/scripts/generate_reports.py +379 -0
- package/data/workflows/pcr-primer-design/scripts/validate_specificity.py +311 -0
- package/data/workflows/pcr-primer-design/scripts/visualize_primers.py +379 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/SKILL.md +195 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/references/interpretation-guide.md +80 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/references/pgs-catalog-guide.md +109 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/scripts/export_results.R +186 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/scripts/generate_plots.R +283 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/scripts/load_pgs_weights.R +228 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/scripts/load_reference_data.R +191 -0
- package/data/workflows/polygenic-risk-score-prs-catalog/scripts/score_traits.R +216 -0
- package/data/workflows/pooled-crispr-screens/SKILL.md +362 -0
- package/data/workflows/pooled-crispr-screens/references/crispr_screen_best_practices.md +349 -0
- package/data/workflows/pooled-crispr-screens/references/qc_guidelines.md +722 -0
- package/data/workflows/pooled-crispr-screens/references/statistical_methods.md +644 -0
- package/data/workflows/pooled-crispr-screens/references/troubleshooting_guide.md +684 -0
- package/data/workflows/pooled-crispr-screens/references/umi_optimization.md +297 -0
- package/data/workflows/pooled-crispr-screens/scripts/concatenate_libraries.py +132 -0
- package/data/workflows/pooled-crispr-screens/scripts/detect_perturbed_cells.py +255 -0
- package/data/workflows/pooled-crispr-screens/scripts/differential_expression.py +202 -0
- package/data/workflows/pooled-crispr-screens/scripts/differential_expression_glmgampoi.py +320 -0
- package/data/workflows/pooled-crispr-screens/scripts/export_results.py +261 -0
- package/data/workflows/pooled-crispr-screens/scripts/expression_filtering.py +159 -0
- package/data/workflows/pooled-crispr-screens/scripts/gene_name_corrections.py +188 -0
- package/data/workflows/pooled-crispr-screens/scripts/generate_report.py +485 -0
- package/data/workflows/pooled-crispr-screens/scripts/load_10x_libraries.py +69 -0
- package/data/workflows/pooled-crispr-screens/scripts/load_example_data.py +257 -0
- package/data/workflows/pooled-crispr-screens/scripts/map_sgrna_to_cells.py +119 -0
- package/data/workflows/pooled-crispr-screens/scripts/normalize_and_scale.py +140 -0
- package/data/workflows/pooled-crispr-screens/scripts/qc_filtering.py +185 -0
- package/data/workflows/pooled-crispr-screens/scripts/run_glmgampoi.R +181 -0
- package/data/workflows/pooled-crispr-screens/scripts/screen_all_perturbations.py +306 -0
- package/data/workflows/pooled-crispr-screens/scripts/validate_perturbations.py +314 -0
- package/data/workflows/pooled-crispr-screens/scripts/visualize_perturbations.py +314 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/SKILL.md +425 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/ambient_rna_correction.md +422 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/common-patterns.md +533 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/integration_methods.md +820 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/marker_gene_database.md +471 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/pseudobulk_de_guide.md +408 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/qc_guidelines.md +535 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/scanpy_best_practices.md +496 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/troubleshooting_guide.md +668 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/references/workflow-details.md +727 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/annotate_celltypes.py +431 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/cluster_cells.py +293 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/export_results.py +423 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/filter_cells.py +531 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/find_markers.py +391 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/find_variable_genes.py +222 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/integrate_scvi.py +665 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/integration_diagnostics.py +678 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/load_example_data.py +68 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/normalize_data.py +325 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/plot_dimreduction.py +389 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/plot_qc.py +320 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/pseudobulk_de.py +553 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/qc_metrics.py +477 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/remove_ambient_rna.py +347 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/run_umap.py +188 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/scale_and_pca.py +365 -0
- package/data/workflows/scrnaseq-scanpy-core-analysis/scripts/setup_and_import.py +334 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/SKILL.md +585 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/ambient_rna_correction.md +422 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/common-patterns.md +667 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/decision-guide.md +456 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/integration_methods.md +864 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/marker_gene_database.md +471 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/pseudobulk_de_guide.md +408 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/qc_guidelines.md +452 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/seurat_best_practices.md +417 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/troubleshooting_guide.md +566 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/references/workflow-details.md +801 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/annotate_celltypes.R +306 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/cluster_cells.R +223 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/export_results.R +292 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/filter_cells.R +576 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/find_markers.R +325 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/find_variable_features.R +106 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/integrate_batches.R +504 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/integration_diagnostics.R +596 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/load_example_data.R +89 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/normalize_data.R +184 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/plot_dimreduction.R +273 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/plot_qc.R +250 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/pseudobulk_de.R +324 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/qc_metrics.R +358 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/remove_ambient_rna.R +281 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/run_umap.R +116 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/scale_and_pca.R +243 -0
- package/data/workflows/scrnaseq-seurat-core-analysis/scripts/setup_and_import.R +193 -0
- package/data/workflows/spatial-transcriptomics/SKILL.md +256 -0
- package/data/workflows/spatial-transcriptomics/references/spatial-analysis-guide.md +216 -0
- package/data/workflows/spatial-transcriptomics/scripts/export_results.py +214 -0
- package/data/workflows/spatial-transcriptomics/scripts/generate_all_plots.py +397 -0
- package/data/workflows/spatial-transcriptomics/scripts/load_example_data.py +175 -0
- package/data/workflows/spatial-transcriptomics/scripts/spatial_workflow.py +206 -0
- package/dist/bgi.js +28 -1
- package/package.json +2 -1
|
@@ -0,0 +1,1510 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tooluniverse-target-research
|
|
3
|
+
description: Gather comprehensive biological target intelligence from 9 parallel research paths covering protein info, structure, interactions, pathways, expression, variants, drug interactions, and literature. Features collision-aware searches, evidence grading (T1-T4), explicit Open Targets coverage, and mandatory completeness auditing. Use when users ask about drug targets, proteins, genes, or need target validation, druggability assessment, or comprehensive target profiling.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comprehensive Target Intelligence Gatherer
|
|
7
|
+
|
|
8
|
+
Gather complete target intelligence by exploring 9 parallel research paths. Supports targets identified by gene symbol, UniProt accession, Ensembl ID, or gene name.
|
|
9
|
+
|
|
10
|
+
**KEY PRINCIPLES**:
|
|
11
|
+
1. **Report-first approach** - Create report file FIRST, then populate progressively
|
|
12
|
+
2. **Tool parameter verification** - Verify params via `get_tool_info` before calling unfamiliar tools
|
|
13
|
+
3. **Evidence grading** - Grade all claims by evidence strength (T1-T4)
|
|
14
|
+
4. **Citation requirements** - Every fact must have inline source attribution
|
|
15
|
+
5. **Mandatory completeness** - All sections must exist with data minimums or explicit "No data" notes
|
|
16
|
+
6. **Disambiguation first** - Resolve all identifiers before research
|
|
17
|
+
7. **Negative results documented** - "No drugs found" is data; empty sections are failures
|
|
18
|
+
8. **Collision-aware literature search** - Detect and filter naming collisions
|
|
19
|
+
9. **English-first queries** - Always use English terms in tool calls, even if the user writes in another language. Translate gene names, disease names, and search terms to English. Only try original-language terms as a fallback if English returns no results. Respond in the user's language
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Phase 0: Tool Parameter Verification (CRITICAL)
|
|
24
|
+
|
|
25
|
+
**BEFORE calling ANY tool for the first time**, verify its parameters:
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
# Always check tool params to prevent silent failures
|
|
29
|
+
tool_info = tu.tools.get_tool_info(tool_name="Reactome_map_uniprot_to_pathways")
|
|
30
|
+
# Reveals: takes `id` not `uniprot_id`
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Known Parameter Corrections (Updated)
|
|
34
|
+
|
|
35
|
+
| Tool | WRONG Parameter | CORRECT Parameter |
|
|
36
|
+
|------|-----------------|-------------------|
|
|
37
|
+
| `Reactome_map_uniprot_to_pathways` | `uniprot_id` | `id` |
|
|
38
|
+
| `ensembl_get_xrefs` | `gene_id` | `id` |
|
|
39
|
+
| `GTEx_get_median_gene_expression` | `gencode_id` only | `gencode_id` + `operation="median"` |
|
|
40
|
+
| `OpenTargets_*` | `ensemblID` | `ensemblId` (camelCase) |
|
|
41
|
+
|
|
42
|
+
### GTEx Versioned ID Fallback (CRITICAL)
|
|
43
|
+
|
|
44
|
+
GTEx often requires versioned Ensembl IDs. If `ENSG00000123456` returns empty:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
# Step 1: Get gene info with version
|
|
48
|
+
gene_info = tu.tools.ensembl_lookup_gene(id=ensembl_id, species="human")
|
|
49
|
+
version = gene_info.get('version', 1)
|
|
50
|
+
|
|
51
|
+
# Step 2: Try versioned ID
|
|
52
|
+
versioned_id = f"{ensembl_id}.{version}" # e.g., "ENSG00000123456.12"
|
|
53
|
+
result = tu.tools.GTEx_get_median_gene_expression(
|
|
54
|
+
gencode_id=versioned_id,
|
|
55
|
+
operation="median"
|
|
56
|
+
)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## When to Use This Skill
|
|
62
|
+
|
|
63
|
+
Apply when users:
|
|
64
|
+
- Ask about a drug target, protein, or gene
|
|
65
|
+
- Need target validation or assessment
|
|
66
|
+
- Request druggability analysis
|
|
67
|
+
- Want comprehensive target profiling
|
|
68
|
+
- Ask "what do we know about [target]?"
|
|
69
|
+
- Need target-disease associations
|
|
70
|
+
- Request safety profile for a target
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Critical Workflow Requirements
|
|
75
|
+
|
|
76
|
+
### 1. Report-First Approach (MANDATORY)
|
|
77
|
+
|
|
78
|
+
**DO NOT** show the search process or tool outputs to the user. Instead:
|
|
79
|
+
|
|
80
|
+
1. **Create the report file FIRST** - Before any data collection:
|
|
81
|
+
- File name: `[TARGET]_target_report.md`
|
|
82
|
+
- Initialize with all 14 section headers
|
|
83
|
+
- Add placeholder: `[Researching...]` in each section
|
|
84
|
+
|
|
85
|
+
2. **Progressively update the report** - As you gather data:
|
|
86
|
+
- Update each section immediately after retrieving data
|
|
87
|
+
- Replace `[Researching...]` with actual content
|
|
88
|
+
- Include "No data returned" when tools return empty results
|
|
89
|
+
|
|
90
|
+
3. **Methodology in appendix only** - If user requests methodology details, create separate `[TARGET]_methods_appendix.md`
|
|
91
|
+
|
|
92
|
+
### 2. Evidence Grading System (MANDATORY)
|
|
93
|
+
|
|
94
|
+
**CRITICAL**: Grade every claim by evidence strength.
|
|
95
|
+
|
|
96
|
+
#### Evidence Tiers
|
|
97
|
+
|
|
98
|
+
| Tier | Symbol | Criteria | Examples |
|
|
99
|
+
|------|--------|----------|----------|
|
|
100
|
+
| **T1** | ★★★ | Direct mechanistic evidence, human genetic proof | CRISPR KO, patient mutations, crystal structure with mechanism |
|
|
101
|
+
| **T2** | ★★☆ | Functional studies, model organism validation | siRNA phenotype, mouse KO, biochemical assay |
|
|
102
|
+
| **T3** | ★☆☆ | Association, screen hits, computational | GWAS hit, DepMap essentiality, expression correlation |
|
|
103
|
+
| **T4** | ☆☆☆ | Mention, review, text-mined, predicted | Review article, database annotation, computational prediction |
|
|
104
|
+
|
|
105
|
+
#### Required Evidence Grading Locations
|
|
106
|
+
|
|
107
|
+
Evidence grades MUST appear in:
|
|
108
|
+
1. **Executive Summary** - Key disease claims graded
|
|
109
|
+
2. **Section 8.2 Disease Associations** - Every disease link graded with source type
|
|
110
|
+
3. **Section 11 Literature** - Key papers table with evidence tier
|
|
111
|
+
4. **Section 13 Recommendations** - Scorecard items reference evidence quality
|
|
112
|
+
|
|
113
|
+
#### Per-Section Evidence Summary
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
---
|
|
117
|
+
**Evidence Quality for this Section**: Strong
|
|
118
|
+
- Mechanistic (T1): 12 papers
|
|
119
|
+
- Functional (T2): 8 papers
|
|
120
|
+
- Association (T3): 15 papers
|
|
121
|
+
- Mention (T4): 23 papers
|
|
122
|
+
**Data Gaps**: No CRISPR data; mouse KO phenotypes limited
|
|
123
|
+
---
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 3. Citation Requirements (MANDATORY)
|
|
127
|
+
|
|
128
|
+
Every piece of information MUST include its source:
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
EGFR mutations cause lung adenocarcinoma [★★★: PMID:15118125, activating mutations
|
|
132
|
+
in patients]. *Source: ClinVar, CIViC*
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Core Strategy: 9 Research Paths
|
|
138
|
+
|
|
139
|
+
Execute 9 research paths (Path 0 is always first):
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Target Query (e.g., "EGFR" or "P00533")
|
|
143
|
+
│
|
|
144
|
+
├─ IDENTIFIER RESOLUTION (always first)
|
|
145
|
+
│ └─ Check if GPCR → GPCRdb_get_protein
|
|
146
|
+
│
|
|
147
|
+
├─ PATH 0: Open Targets Foundation (ALWAYS FIRST - fills gaps in all other paths)
|
|
148
|
+
│
|
|
149
|
+
├─ PATH 1: Core Identity (names, IDs, sequence, organism)
|
|
150
|
+
│ └─ InterProScan_scan_sequence for novel domain prediction (NEW)
|
|
151
|
+
├─ PATH 2: Structure & Domains (3D structure, domains, binding sites)
|
|
152
|
+
│ └─ If GPCR: GPCRdb_get_structures (active/inactive states)
|
|
153
|
+
├─ PATH 3: Function & Pathways (GO terms, pathways, biological role)
|
|
154
|
+
├─ PATH 4: Protein Interactions (PPI network, complexes)
|
|
155
|
+
├─ PATH 5: Expression Profile (tissue expression, single-cell)
|
|
156
|
+
├─ PATH 6: Variants & Disease (mutations, clinical significance)
|
|
157
|
+
│ └─ DisGeNET_search_gene for curated gene-disease associations
|
|
158
|
+
├─ PATH 7: Drug Interactions (known drugs, druggability, safety)
|
|
159
|
+
│ ├─ Pharos_get_target for TDL classification (Tclin/Tchem/Tbio/Tdark)
|
|
160
|
+
│ ├─ BindingDB_get_ligands_by_uniprot for known ligands (NEW)
|
|
161
|
+
│ ├─ PubChem_search_assays_by_target_gene for HTS data (NEW)
|
|
162
|
+
│ ├─ If GPCR: GPCRdb_get_ligands (curated agonists/antagonists)
|
|
163
|
+
│ └─ DepMap_get_gene_dependencies for target essentiality
|
|
164
|
+
└─ PATH 8: Literature & Research (publications, trends)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Identifier Resolution (Phase 1)
|
|
170
|
+
|
|
171
|
+
**CRITICAL**: Resolve ALL identifiers before any research path.
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
def resolve_target_ids(tu, query):
|
|
175
|
+
"""
|
|
176
|
+
Resolve target query to ALL needed identifiers.
|
|
177
|
+
Returns dict with: query, uniprot, ensembl, ensembl_version, symbol,
|
|
178
|
+
entrez, chembl_target, hgnc
|
|
179
|
+
"""
|
|
180
|
+
ids = {
|
|
181
|
+
'query': query,
|
|
182
|
+
'uniprot': None,
|
|
183
|
+
'ensembl': None,
|
|
184
|
+
'ensembl_versioned': None, # For GTEx
|
|
185
|
+
'symbol': None,
|
|
186
|
+
'entrez': None,
|
|
187
|
+
'chembl_target': None,
|
|
188
|
+
'hgnc': None,
|
|
189
|
+
'full_name': None,
|
|
190
|
+
'synonyms': []
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
# [Resolution logic based on input type]
|
|
194
|
+
# ... (see current implementation)
|
|
195
|
+
|
|
196
|
+
# CRITICAL: Get versioned Ensembl ID for GTEx
|
|
197
|
+
if ids['ensembl']:
|
|
198
|
+
gene_info = tu.tools.ensembl_lookup_gene(id=ids['ensembl'], species="human")
|
|
199
|
+
if gene_info and gene_info.get('version'):
|
|
200
|
+
ids['ensembl_versioned'] = f"{ids['ensembl']}.{gene_info['version']}"
|
|
201
|
+
|
|
202
|
+
# Also get synonyms for literature collision detection
|
|
203
|
+
ids['full_name'] = gene_info.get('description', '').split(' [')[0]
|
|
204
|
+
|
|
205
|
+
# Get UniProt alternative names for synonyms
|
|
206
|
+
if ids['uniprot']:
|
|
207
|
+
alt_names = tu.tools.UniProt_get_alternative_names_by_accession(accession=ids['uniprot'])
|
|
208
|
+
if alt_names:
|
|
209
|
+
ids['synonyms'].extend(alt_names)
|
|
210
|
+
|
|
211
|
+
return ids
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### GPCR Target Detection (NEW)
|
|
215
|
+
|
|
216
|
+
~35% of approved drugs target GPCRs. After identifier resolution, check if target is a GPCR:
|
|
217
|
+
|
|
218
|
+
```python
|
|
219
|
+
def check_gpcr_target(tu, ids):
|
|
220
|
+
"""
|
|
221
|
+
Check if target is a GPCR and retrieve specialized data.
|
|
222
|
+
Call after identifier resolution.
|
|
223
|
+
"""
|
|
224
|
+
symbol = ids.get('symbol', '')
|
|
225
|
+
|
|
226
|
+
# Build GPCRdb entry name
|
|
227
|
+
entry_name = f"{symbol.lower()}_human"
|
|
228
|
+
|
|
229
|
+
gpcr_info = tu.tools.GPCRdb_get_protein(
|
|
230
|
+
operation="get_protein",
|
|
231
|
+
protein=entry_name
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
if gpcr_info.get('status') == 'success':
|
|
235
|
+
# Target is a GPCR - get specialized data
|
|
236
|
+
|
|
237
|
+
# Get structures with receptor state
|
|
238
|
+
structures = tu.tools.GPCRdb_get_structures(
|
|
239
|
+
operation="get_structures",
|
|
240
|
+
protein=entry_name
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
# Get known ligands (critical for binder projects)
|
|
244
|
+
ligands = tu.tools.GPCRdb_get_ligands(
|
|
245
|
+
operation="get_ligands",
|
|
246
|
+
protein=entry_name
|
|
247
|
+
)
|
|
248
|
+
|
|
249
|
+
# Get mutation data
|
|
250
|
+
mutations = tu.tools.GPCRdb_get_mutations(
|
|
251
|
+
operation="get_mutations",
|
|
252
|
+
protein=entry_name
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
return {
|
|
256
|
+
'is_gpcr': True,
|
|
257
|
+
'gpcr_family': gpcr_info['data'].get('family'),
|
|
258
|
+
'gpcr_class': gpcr_info['data'].get('receptor_class'),
|
|
259
|
+
'structures': structures.get('data', {}).get('structures', []),
|
|
260
|
+
'ligands': ligands.get('data', {}).get('ligands', []),
|
|
261
|
+
'mutations': mutations.get('data', {}).get('mutations', []),
|
|
262
|
+
'ballesteros_numbering': True # GPCRdb provides this
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return {'is_gpcr': False}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**GPCRdb Report Section** (add to Section 2 for GPCR targets):
|
|
269
|
+
|
|
270
|
+
```markdown
|
|
271
|
+
### 2.x GPCR-Specific Data (GPCRdb)
|
|
272
|
+
|
|
273
|
+
**Receptor Class**: Class A (Rhodopsin-like)
|
|
274
|
+
**GPCR Family**: Adrenoceptors
|
|
275
|
+
|
|
276
|
+
**Structures by State**:
|
|
277
|
+
| PDB ID | State | Resolution | Ligand | Year |
|
|
278
|
+
|--------|-------|------------|--------|------|
|
|
279
|
+
| 3SN6 | Active | 3.2Å | Agonist (BI-167107) | 2011 |
|
|
280
|
+
| 2RH1 | Inactive | 2.4Å | Antagonist (carazolol) | 2007 |
|
|
281
|
+
|
|
282
|
+
**Known Ligands**: 45 agonists, 32 antagonists, 8 allosteric modulators
|
|
283
|
+
**Key Binding Site Residues** (Ballesteros-Weinstein): 3.32, 5.42, 6.48, 7.39
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Collision Detection for Literature Search
|
|
287
|
+
|
|
288
|
+
Before literature search, detect naming collisions:
|
|
289
|
+
|
|
290
|
+
```python
|
|
291
|
+
def detect_collisions(tu, symbol, full_name):
|
|
292
|
+
"""
|
|
293
|
+
Detect if gene symbol has naming collisions in literature.
|
|
294
|
+
Returns negative filter terms if collisions found.
|
|
295
|
+
"""
|
|
296
|
+
# Search by symbol in title
|
|
297
|
+
results = tu.tools.PubMed_search_articles(
|
|
298
|
+
query=f'"{symbol}"[Title]',
|
|
299
|
+
limit=20
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
# Check if >20% are off-topic
|
|
303
|
+
off_topic_terms = []
|
|
304
|
+
for paper in results.get('articles', []):
|
|
305
|
+
title = paper.get('title', '').lower()
|
|
306
|
+
# Check if title mentions biology/protein/gene context
|
|
307
|
+
bio_terms = ['protein', 'gene', 'cell', 'expression', 'mutation', 'kinase', 'receptor']
|
|
308
|
+
if not any(term in title for term in bio_terms):
|
|
309
|
+
# Extract potential collision terms
|
|
310
|
+
# e.g., "JAK" might collide with "Just Another Kinase" jokes
|
|
311
|
+
# e.g., "WDR7" might collide with other WDR family members in certain contexts
|
|
312
|
+
pass
|
|
313
|
+
|
|
314
|
+
# Build negative filter
|
|
315
|
+
collision_filter = ""
|
|
316
|
+
if off_topic_terms:
|
|
317
|
+
collision_filter = " NOT " + " NOT ".join(off_topic_terms)
|
|
318
|
+
|
|
319
|
+
return collision_filter
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## PATH 0: Open Targets Foundation (ALWAYS FIRST)
|
|
325
|
+
|
|
326
|
+
**Objective**: Populate baseline data for Sections 5, 8, 9, 10, 11 before specialized queries.
|
|
327
|
+
|
|
328
|
+
**CRITICAL**: Open Targets provides the most comprehensive aggregated data. Query ALL these endpoints:
|
|
329
|
+
|
|
330
|
+
| Endpoint | Section | Data Type |
|
|
331
|
+
|----------|---------|-----------|
|
|
332
|
+
| `OpenTargets_get_diseases_phenotypes_by_target_ensemblId` | 8 | Diseases/phenotypes |
|
|
333
|
+
| `OpenTargets_get_target_tractability_by_ensemblId` | 9 | Druggability assessment |
|
|
334
|
+
| `OpenTargets_get_target_safety_profile_by_ensemblId` | 10 | Safety liabilities |
|
|
335
|
+
| `OpenTargets_get_target_interactions_by_ensemblId` | 6 | PPI network |
|
|
336
|
+
| `OpenTargets_get_target_gene_ontology_by_ensemblId` | 5 | GO annotations |
|
|
337
|
+
| `OpenTargets_get_publications_by_target_ensemblId` | 11 | Literature |
|
|
338
|
+
| `OpenTargets_get_biological_mouse_models_by_ensemblId` | 8/10 | Mouse KO phenotypes |
|
|
339
|
+
| `OpenTargets_get_chemical_probes_by_target_ensemblId` | 9 | Chemical probes |
|
|
340
|
+
| `OpenTargets_get_associated_drugs_by_target_ensemblId` | 9 | Known drugs |
|
|
341
|
+
|
|
342
|
+
### Path 0 Implementation
|
|
343
|
+
|
|
344
|
+
```python
|
|
345
|
+
def path_0_open_targets(tu, ids):
|
|
346
|
+
"""
|
|
347
|
+
Open Targets foundation data - fills gaps for sections 5, 6, 8, 9, 10, 11.
|
|
348
|
+
ALWAYS run this first.
|
|
349
|
+
"""
|
|
350
|
+
ensembl_id = ids['ensembl']
|
|
351
|
+
if not ensembl_id:
|
|
352
|
+
return {'status': 'skipped', 'reason': 'No Ensembl ID'}
|
|
353
|
+
|
|
354
|
+
results = {}
|
|
355
|
+
|
|
356
|
+
# 1. Diseases & Phenotypes (Section 8)
|
|
357
|
+
diseases = tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensemblId(
|
|
358
|
+
ensemblId=ensembl_id
|
|
359
|
+
)
|
|
360
|
+
results['diseases'] = diseases if diseases else {'note': 'No disease associations returned'}
|
|
361
|
+
|
|
362
|
+
# 2. Tractability (Section 9)
|
|
363
|
+
tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblId(
|
|
364
|
+
ensemblId=ensembl_id
|
|
365
|
+
)
|
|
366
|
+
results['tractability'] = tractability if tractability else {'note': 'No tractability data returned'}
|
|
367
|
+
|
|
368
|
+
# 3. Safety Profile (Section 10)
|
|
369
|
+
safety = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblId(
|
|
370
|
+
ensemblId=ensembl_id
|
|
371
|
+
)
|
|
372
|
+
results['safety'] = safety if safety else {'note': 'No safety liabilities identified'}
|
|
373
|
+
|
|
374
|
+
# 4. Interactions (Section 6)
|
|
375
|
+
interactions = tu.tools.OpenTargets_get_target_interactions_by_ensemblId(
|
|
376
|
+
ensemblId=ensembl_id
|
|
377
|
+
)
|
|
378
|
+
results['interactions'] = interactions if interactions else {'note': 'No interactions returned'}
|
|
379
|
+
|
|
380
|
+
# 5. GO Annotations (Section 5)
|
|
381
|
+
go_terms = tu.tools.OpenTargets_get_target_gene_ontology_by_ensemblId(
|
|
382
|
+
ensemblId=ensembl_id
|
|
383
|
+
)
|
|
384
|
+
results['go_terms'] = go_terms if go_terms else {'note': 'No GO annotations returned'}
|
|
385
|
+
|
|
386
|
+
# 6. Publications (Section 11)
|
|
387
|
+
publications = tu.tools.OpenTargets_get_publications_by_target_ensemblId(
|
|
388
|
+
ensemblId=ensembl_id
|
|
389
|
+
)
|
|
390
|
+
results['publications'] = publications if publications else {'note': 'No publications returned'}
|
|
391
|
+
|
|
392
|
+
# 7. Mouse Models (Section 8/10)
|
|
393
|
+
mouse_models = tu.tools.OpenTargets_get_biological_mouse_models_by_ensemblId(
|
|
394
|
+
ensemblId=ensembl_id
|
|
395
|
+
)
|
|
396
|
+
results['mouse_models'] = mouse_models if mouse_models else {'note': 'No mouse model data returned'}
|
|
397
|
+
|
|
398
|
+
# 8. Chemical Probes (Section 9)
|
|
399
|
+
probes = tu.tools.OpenTargets_get_chemical_probes_by_target_ensemblId(
|
|
400
|
+
ensemblId=ensembl_id
|
|
401
|
+
)
|
|
402
|
+
results['chemical_probes'] = probes if probes else {'note': 'No chemical probes available'}
|
|
403
|
+
|
|
404
|
+
# 9. Associated Drugs (Section 9)
|
|
405
|
+
drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblId(
|
|
406
|
+
ensemblId=ensembl_id
|
|
407
|
+
)
|
|
408
|
+
results['drugs'] = drugs if drugs else {'note': 'No approved/trial drugs found'}
|
|
409
|
+
|
|
410
|
+
return results
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Negative Results Are Data
|
|
414
|
+
|
|
415
|
+
**CRITICAL**: Always document when a query returns empty:
|
|
416
|
+
|
|
417
|
+
```markdown
|
|
418
|
+
### 9.3 Chemical Probes
|
|
419
|
+
|
|
420
|
+
**Status**: No validated chemical probes available for this target.
|
|
421
|
+
*Source: OpenTargets_get_chemical_probes_by_target_ensemblId returned empty*
|
|
422
|
+
|
|
423
|
+
**Implication**: Tool compound development would be needed for chemical biology studies.
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## PATH 2: Structure & Domains (Enhanced)
|
|
429
|
+
|
|
430
|
+
**Objective**: Robust structure coverage using 3-step chain.
|
|
431
|
+
|
|
432
|
+
### 3-Step Structure Search Chain
|
|
433
|
+
|
|
434
|
+
**Do NOT rely solely on PDB text search.** Use this chain:
|
|
435
|
+
|
|
436
|
+
```python
|
|
437
|
+
def path_structure_robust(tu, ids):
|
|
438
|
+
"""
|
|
439
|
+
Robust structure search using 3-step chain.
|
|
440
|
+
"""
|
|
441
|
+
structures = {'pdb': [], 'alphafold': None, 'domains': [], 'method_notes': []}
|
|
442
|
+
|
|
443
|
+
# STEP 1: UniProt PDB Cross-References (most reliable)
|
|
444
|
+
if ids['uniprot']:
|
|
445
|
+
entry = tu.tools.UniProt_get_entry_by_accession(accession=ids['uniprot'])
|
|
446
|
+
pdb_xrefs = [x for x in entry.get('uniProtKBCrossReferences', [])
|
|
447
|
+
if x.get('database') == 'PDB']
|
|
448
|
+
for xref in pdb_xrefs:
|
|
449
|
+
pdb_id = xref.get('id')
|
|
450
|
+
# Get details for each PDB
|
|
451
|
+
pdb_info = tu.tools.get_protein_metadata_by_pdb_id(pdb_id=pdb_id)
|
|
452
|
+
if pdb_info:
|
|
453
|
+
structures['pdb'].append(pdb_info)
|
|
454
|
+
structures['method_notes'].append(f"Step 1: {len(pdb_xrefs)} PDB cross-refs from UniProt")
|
|
455
|
+
|
|
456
|
+
# STEP 2: Sequence-based PDB Search (catches missing annotations)
|
|
457
|
+
if ids['uniprot'] and len(structures['pdb']) < 5:
|
|
458
|
+
sequence = tu.tools.UniProt_get_sequence_by_accession(accession=ids['uniprot'])
|
|
459
|
+
if sequence and len(sequence) < 1000: # Reasonable length for search
|
|
460
|
+
similar = tu.tools.PDB_search_similar_structures(
|
|
461
|
+
sequence=sequence[:500], # Use first 500 AA if long
|
|
462
|
+
identity_cutoff=0.7
|
|
463
|
+
)
|
|
464
|
+
if similar:
|
|
465
|
+
for hit in similar[:10]: # Top 10 similar
|
|
466
|
+
if hit['pdb_id'] not in [s.get('pdb_id') for s in structures['pdb']]:
|
|
467
|
+
structures['pdb'].append(hit)
|
|
468
|
+
structures['method_notes'].append(f"Step 2: Sequence search (identity ≥70%)")
|
|
469
|
+
|
|
470
|
+
# STEP 3: Domain-based Search (for multi-domain proteins)
|
|
471
|
+
if ids['uniprot']:
|
|
472
|
+
domains = tu.tools.InterPro_get_protein_domains(uniprot_accession=ids['uniprot'])
|
|
473
|
+
structures['domains'] = domains if domains else []
|
|
474
|
+
|
|
475
|
+
# For large proteins with domains, search by domain sequence windows
|
|
476
|
+
if len(structures['pdb']) < 3 and domains:
|
|
477
|
+
for domain in domains[:3]: # Top 3 domains
|
|
478
|
+
domain_name = domain.get('name', '')
|
|
479
|
+
# Could search PDB by domain name
|
|
480
|
+
domain_hits = tu.tools.PDB_search_by_keyword(query=domain_name, limit=5)
|
|
481
|
+
if domain_hits:
|
|
482
|
+
structures['method_notes'].append(f"Step 3: Domain '{domain_name}' search")
|
|
483
|
+
|
|
484
|
+
# AlphaFold (always check)
|
|
485
|
+
alphafold = tu.tools.alphafold_get_prediction(uniprot_accession=ids['uniprot'])
|
|
486
|
+
structures['alphafold'] = alphafold if alphafold else {'note': 'No AlphaFold prediction'}
|
|
487
|
+
|
|
488
|
+
# IMPORTANT: Document limitations
|
|
489
|
+
if not structures['pdb']:
|
|
490
|
+
structures['limitation'] = "No direct PDB hit does NOT mean no structure exists. Check: (1) structures under different UniProt entries, (2) homolog structures, (3) domain-only structures."
|
|
491
|
+
|
|
492
|
+
return structures
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### Structure Section Output Format
|
|
496
|
+
|
|
497
|
+
```markdown
|
|
498
|
+
### 4.1 Experimental Structures (PDB)
|
|
499
|
+
|
|
500
|
+
**Total PDB Entries**: 23 structures *(Source: UniProt cross-references)*
|
|
501
|
+
**Search Method**: 3-step chain (UniProt xrefs → sequence search → domain search)
|
|
502
|
+
|
|
503
|
+
| PDB ID | Resolution | Method | Ligand | Coverage | Year |
|
|
504
|
+
|--------|------------|--------|--------|----------|------|
|
|
505
|
+
| 1M17 | 2.6Å | X-ray | Erlotinib | 672-998 | 2002 |
|
|
506
|
+
| 3POZ | 2.8Å | X-ray | Gefitinib | 696-1022 | 2010 |
|
|
507
|
+
|
|
508
|
+
**Note**: "No direct PDB hit" ≠ "no structure exists". Check homologs and domain structures.
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## PATH 5: Expression Profile (Enhanced)
|
|
514
|
+
|
|
515
|
+
### GTEx with Versioned ID Fallback
|
|
516
|
+
|
|
517
|
+
```python
|
|
518
|
+
def path_expression(tu, ids):
|
|
519
|
+
"""
|
|
520
|
+
Expression data with GTEx versioned ID fallback.
|
|
521
|
+
"""
|
|
522
|
+
results = {'gtex': None, 'hpa': None, 'failed_tools': []}
|
|
523
|
+
|
|
524
|
+
# GTEx with fallback
|
|
525
|
+
ensembl_id = ids['ensembl']
|
|
526
|
+
versioned_id = ids.get('ensembl_versioned')
|
|
527
|
+
|
|
528
|
+
# Try unversioned first
|
|
529
|
+
gtex_result = tu.tools.GTEx_get_median_gene_expression(
|
|
530
|
+
gencode_id=ensembl_id,
|
|
531
|
+
operation="median"
|
|
532
|
+
)
|
|
533
|
+
|
|
534
|
+
# Fallback to versioned if empty
|
|
535
|
+
if not gtex_result or gtex_result.get('data') == []:
|
|
536
|
+
if versioned_id:
|
|
537
|
+
gtex_result = tu.tools.GTEx_get_median_gene_expression(
|
|
538
|
+
gencode_id=versioned_id,
|
|
539
|
+
operation="median"
|
|
540
|
+
)
|
|
541
|
+
if gtex_result and gtex_result.get('data'):
|
|
542
|
+
results['gtex'] = gtex_result
|
|
543
|
+
results['gtex_note'] = f"Used versioned ID: {versioned_id}"
|
|
544
|
+
|
|
545
|
+
if not results.get('gtex'):
|
|
546
|
+
results['failed_tools'].append({
|
|
547
|
+
'tool': 'GTEx_get_median_gene_expression',
|
|
548
|
+
'tried': [ensembl_id, versioned_id],
|
|
549
|
+
'fallback': 'See HPA data below'
|
|
550
|
+
})
|
|
551
|
+
else:
|
|
552
|
+
results['gtex'] = gtex_result
|
|
553
|
+
|
|
554
|
+
# HPA (always query as backup)
|
|
555
|
+
hpa_result = tu.tools.HPA_get_rna_expression_by_source(ensembl_id=ensembl_id)
|
|
556
|
+
results['hpa'] = hpa_result if hpa_result else {'note': 'No HPA RNA data'}
|
|
557
|
+
|
|
558
|
+
return results
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### Human Protein Atlas - Extended Expression (NEW)
|
|
562
|
+
|
|
563
|
+
HPA provides comprehensive protein expression data including tissue-level, cell-level, and cell line expression.
|
|
564
|
+
|
|
565
|
+
```python
|
|
566
|
+
def get_hpa_comprehensive_expression(tu, gene_symbol):
|
|
567
|
+
"""
|
|
568
|
+
Get comprehensive expression data from Human Protein Atlas.
|
|
569
|
+
|
|
570
|
+
Provides:
|
|
571
|
+
- Tissue expression (protein and RNA)
|
|
572
|
+
- Subcellular localization
|
|
573
|
+
- Cell line expression comparison
|
|
574
|
+
- Tissue specificity
|
|
575
|
+
"""
|
|
576
|
+
|
|
577
|
+
# 1. Search for gene to get IDs
|
|
578
|
+
gene_info = tu.tools.HPA_search_genes_by_query(search_query=gene_symbol)
|
|
579
|
+
|
|
580
|
+
if not gene_info:
|
|
581
|
+
return {'error': f'Gene {gene_symbol} not found in HPA'}
|
|
582
|
+
|
|
583
|
+
# 2. Get tissue expression with specificity
|
|
584
|
+
tissue_search = tu.tools.HPA_generic_search(
|
|
585
|
+
search_query=gene_symbol,
|
|
586
|
+
columns="g,gs,rnat,rnatsm,scml,scal", # Gene, synonyms, tissue specificity, subcellular
|
|
587
|
+
format="json"
|
|
588
|
+
)
|
|
589
|
+
|
|
590
|
+
# 3. Compare expression in cancer cell lines vs normal tissue
|
|
591
|
+
cell_lines = ['a549', 'mcf7', 'hela', 'hepg2', 'pc3']
|
|
592
|
+
cell_line_expression = {}
|
|
593
|
+
|
|
594
|
+
for cell_line in cell_lines:
|
|
595
|
+
try:
|
|
596
|
+
expr = tu.tools.HPA_get_comparative_expression_by_gene_and_cellline(
|
|
597
|
+
gene_name=gene_symbol,
|
|
598
|
+
cell_line=cell_line
|
|
599
|
+
)
|
|
600
|
+
cell_line_expression[cell_line] = expr
|
|
601
|
+
except:
|
|
602
|
+
continue
|
|
603
|
+
|
|
604
|
+
return {
|
|
605
|
+
'gene_info': gene_info,
|
|
606
|
+
'tissue_data': tissue_search,
|
|
607
|
+
'cell_line_expression': cell_line_expression,
|
|
608
|
+
'source': 'Human Protein Atlas'
|
|
609
|
+
}
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**HPA Expression Output for Report**:
|
|
613
|
+
```markdown
|
|
614
|
+
### Tissue Expression Profile (Human Protein Atlas)
|
|
615
|
+
|
|
616
|
+
| Tissue | Protein Level | RNA nTPM | Specificity |
|
|
617
|
+
|--------|---------------|----------|-------------|
|
|
618
|
+
| Brain | High | 45.2 | Enriched |
|
|
619
|
+
| Liver | Medium | 23.1 | Enhanced |
|
|
620
|
+
| Kidney | Low | 8.4 | Not detected |
|
|
621
|
+
|
|
622
|
+
**Subcellular Localization**: Cytoplasm, Plasma membrane
|
|
623
|
+
|
|
624
|
+
### Cancer Cell Line Expression
|
|
625
|
+
|
|
626
|
+
| Cell Line | Cancer Type | Expression | vs Normal |
|
|
627
|
+
|-----------|-------------|------------|-----------|
|
|
628
|
+
| A549 | Lung | High | Elevated |
|
|
629
|
+
| MCF7 | Breast | Medium | Similar |
|
|
630
|
+
| HeLa | Cervical | High | Elevated |
|
|
631
|
+
|
|
632
|
+
*Source: Human Protein Atlas via `HPA_search_genes_by_query`, `HPA_get_comparative_expression_by_gene_and_cellline`*
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
**Why HPA for Target Research**:
|
|
636
|
+
- **Drug target validation** - Confirm expression in target tissue
|
|
637
|
+
- **Safety assessment** - Expression in essential organs
|
|
638
|
+
- **Biomarker potential** - Tissue-specific expression
|
|
639
|
+
- **Cell line selection** - Choose appropriate models
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## PATH 6: Variants & Disease (Enhanced)
|
|
644
|
+
|
|
645
|
+
### 6.1 ClinVar SNV vs CNV Separation
|
|
646
|
+
|
|
647
|
+
```markdown
|
|
648
|
+
### 8.3 Clinical Variants (ClinVar)
|
|
649
|
+
|
|
650
|
+
#### Single Nucleotide Variants (SNVs)
|
|
651
|
+
| Variant | Clinical Significance | Condition | Review Status | PMID |
|
|
652
|
+
|---------|----------------------|-----------|---------------|------|
|
|
653
|
+
| p.L858R | Pathogenic | Lung cancer | 4 stars | 15118125 |
|
|
654
|
+
| p.T790M | Pathogenic | Drug resistance | 4 stars | 15737014 |
|
|
655
|
+
|
|
656
|
+
**Total Pathogenic SNVs**: 47
|
|
657
|
+
|
|
658
|
+
#### Copy Number Variants (CNVs) - Reported Separately
|
|
659
|
+
| Type | Region | Clinical Significance | Frequency |
|
|
660
|
+
|------|--------|----------------------|-----------|
|
|
661
|
+
| Amplification | 7p11.2 | Pathogenic | Common in cancer |
|
|
662
|
+
|
|
663
|
+
*Note: CNV data separated as it represents different mutation mechanism*
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
### 6.2 DisGeNET Integration (NEW)
|
|
667
|
+
|
|
668
|
+
DisGeNET provides curated gene-disease associations with evidence scores. **Requires**: `DISGENET_API_KEY`
|
|
669
|
+
|
|
670
|
+
```python
|
|
671
|
+
def get_disgenet_associations(tu, ids):
|
|
672
|
+
"""
|
|
673
|
+
Get gene-disease associations from DisGeNET.
|
|
674
|
+
Complements Open Targets with curated association scores.
|
|
675
|
+
"""
|
|
676
|
+
symbol = ids.get('symbol')
|
|
677
|
+
if not symbol:
|
|
678
|
+
return {'status': 'skipped', 'reason': 'No gene symbol'}
|
|
679
|
+
|
|
680
|
+
# Get all disease associations for gene
|
|
681
|
+
gda = tu.tools.DisGeNET_search_gene(
|
|
682
|
+
operation="search_gene",
|
|
683
|
+
gene=symbol,
|
|
684
|
+
limit=50
|
|
685
|
+
)
|
|
686
|
+
|
|
687
|
+
if gda.get('status') != 'success':
|
|
688
|
+
return {'status': 'error', 'message': 'DisGeNET query failed'}
|
|
689
|
+
|
|
690
|
+
associations = gda.get('data', {}).get('associations', [])
|
|
691
|
+
|
|
692
|
+
# Categorize by evidence strength
|
|
693
|
+
strong = [] # score >= 0.7
|
|
694
|
+
moderate = [] # score 0.4-0.7
|
|
695
|
+
weak = [] # score < 0.4
|
|
696
|
+
|
|
697
|
+
for assoc in associations:
|
|
698
|
+
score = assoc.get('score', 0)
|
|
699
|
+
disease_name = assoc.get('disease_name', '')
|
|
700
|
+
umls_cui = assoc.get('disease_id', '')
|
|
701
|
+
|
|
702
|
+
entry = {
|
|
703
|
+
'disease': disease_name,
|
|
704
|
+
'umls_cui': umls_cui,
|
|
705
|
+
'score': score,
|
|
706
|
+
'evidence_index': assoc.get('ei'),
|
|
707
|
+
'dsi': assoc.get('dsi'), # Disease Specificity Index
|
|
708
|
+
'dpi': assoc.get('dpi') # Disease Pleiotropy Index
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
if score >= 0.7:
|
|
712
|
+
strong.append(entry)
|
|
713
|
+
elif score >= 0.4:
|
|
714
|
+
moderate.append(entry)
|
|
715
|
+
else:
|
|
716
|
+
weak.append(entry)
|
|
717
|
+
|
|
718
|
+
return {
|
|
719
|
+
'total_associations': len(associations),
|
|
720
|
+
'strong_associations': strong,
|
|
721
|
+
'moderate_associations': moderate,
|
|
722
|
+
'weak_associations': weak[:10], # Limit weak
|
|
723
|
+
'disease_pleiotropy': len(associations) # How many diseases linked
|
|
724
|
+
}
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
**DisGeNET Report Section** (add to Section 8 - Disease Associations):
|
|
728
|
+
|
|
729
|
+
```markdown
|
|
730
|
+
### 8.x DisGeNET Gene-Disease Associations (NEW)
|
|
731
|
+
|
|
732
|
+
**Total Diseases Associated**: 47
|
|
733
|
+
**Disease Pleiotropy Index**: High (gene linked to many disease types)
|
|
734
|
+
|
|
735
|
+
#### Strong Associations (Score ≥0.7)
|
|
736
|
+
| Disease | UMLS CUI | Score | Evidence Index |
|
|
737
|
+
|---------|----------|-------|----------------|
|
|
738
|
+
| Non-small cell lung cancer | C0007131 | 0.85 | 0.92 |
|
|
739
|
+
| Glioblastoma | C0017636 | 0.78 | 0.88 |
|
|
740
|
+
|
|
741
|
+
#### Moderate Associations (Score 0.4-0.7)
|
|
742
|
+
| Disease | UMLS CUI | Score | DSI |
|
|
743
|
+
|---------|----------|-------|-----|
|
|
744
|
+
| Breast cancer | C0006142 | 0.62 | 0.45 |
|
|
745
|
+
|
|
746
|
+
*Note: DisGeNET score integrates curated databases, GWAS, animal models, and literature*
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
**Evidence Tier Assignment**:
|
|
750
|
+
- DisGeNET Score ≥0.7 → Consider T2 evidence (multiple validated sources)
|
|
751
|
+
- DisGeNET Score 0.4-0.7 → Consider T3 evidence
|
|
752
|
+
- DisGeNET Score <0.4 → T4 evidence only
|
|
753
|
+
|
|
754
|
+
---
|
|
755
|
+
|
|
756
|
+
## PATH 7: Druggability & Target Validation (ENHANCED)
|
|
757
|
+
|
|
758
|
+
### 7.1 Pharos/TCRD - Target Development Level (NEW)
|
|
759
|
+
|
|
760
|
+
NIH's Illuminating the Druggable Genome (IDG) portal provides TDL classification for all human proteins:
|
|
761
|
+
|
|
762
|
+
```python
|
|
763
|
+
def get_pharos_target_info(tu, ids):
|
|
764
|
+
"""
|
|
765
|
+
Get Pharos/TCRD target development level and druggability.
|
|
766
|
+
|
|
767
|
+
TDL Classification:
|
|
768
|
+
- Tclin: Approved drug targets
|
|
769
|
+
- Tchem: Targets with small molecule activities (IC50 < 30nM)
|
|
770
|
+
- Tbio: Targets with biological annotations
|
|
771
|
+
- Tdark: Understudied proteins
|
|
772
|
+
"""
|
|
773
|
+
gene_symbol = ids.get('symbol')
|
|
774
|
+
uniprot = ids.get('uniprot')
|
|
775
|
+
|
|
776
|
+
# Try by gene symbol first
|
|
777
|
+
if gene_symbol:
|
|
778
|
+
result = tu.tools.Pharos_get_target(
|
|
779
|
+
gene=gene_symbol
|
|
780
|
+
)
|
|
781
|
+
elif uniprot:
|
|
782
|
+
result = tu.tools.Pharos_get_target(
|
|
783
|
+
uniprot=uniprot
|
|
784
|
+
)
|
|
785
|
+
else:
|
|
786
|
+
return {'status': 'error', 'message': 'Need gene symbol or UniProt'}
|
|
787
|
+
|
|
788
|
+
if result.get('status') == 'success' and result.get('data'):
|
|
789
|
+
target = result['data']
|
|
790
|
+
return {
|
|
791
|
+
'name': target.get('name'),
|
|
792
|
+
'symbol': target.get('sym'),
|
|
793
|
+
'tdl': target.get('tdl'), # Tclin/Tchem/Tbio/Tdark
|
|
794
|
+
'family': target.get('fam'), # Kinase, GPCR, etc.
|
|
795
|
+
'novelty': target.get('novelty'),
|
|
796
|
+
'description': target.get('description'),
|
|
797
|
+
'publications': target.get('publicationCount'),
|
|
798
|
+
'interpretation': interpret_tdl(target.get('tdl'))
|
|
799
|
+
}
|
|
800
|
+
return None
|
|
801
|
+
|
|
802
|
+
def interpret_tdl(tdl):
|
|
803
|
+
"""Interpret Target Development Level for druggability."""
|
|
804
|
+
interpretations = {
|
|
805
|
+
'Tclin': 'Approved drug target - highest confidence for druggability',
|
|
806
|
+
'Tchem': 'Small molecule active - good chemical tractability',
|
|
807
|
+
'Tbio': 'Biologically characterized - may require novel modalities',
|
|
808
|
+
'Tdark': 'Understudied - limited data, high novelty potential'
|
|
809
|
+
}
|
|
810
|
+
return interpretations.get(tdl, 'Unknown')
|
|
811
|
+
|
|
812
|
+
def search_disease_targets(tu, disease_name):
|
|
813
|
+
"""Find targets associated with a disease via Pharos."""
|
|
814
|
+
|
|
815
|
+
result = tu.tools.Pharos_get_disease_targets(
|
|
816
|
+
disease=disease_name,
|
|
817
|
+
top=50
|
|
818
|
+
)
|
|
819
|
+
|
|
820
|
+
if result.get('status') == 'success':
|
|
821
|
+
targets = result['data'].get('targets', [])
|
|
822
|
+
# Group by TDL for prioritization
|
|
823
|
+
by_tdl = {'Tclin': [], 'Tchem': [], 'Tbio': [], 'Tdark': []}
|
|
824
|
+
for t in targets:
|
|
825
|
+
tdl = t.get('tdl', 'Unknown')
|
|
826
|
+
if tdl in by_tdl:
|
|
827
|
+
by_tdl[tdl].append(t)
|
|
828
|
+
return by_tdl
|
|
829
|
+
return None
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
**Pharos Report Section** (add to Section 9 - Druggability):
|
|
833
|
+
|
|
834
|
+
```markdown
|
|
835
|
+
### 9.x Pharos/TCRD Target Classification (NEW)
|
|
836
|
+
|
|
837
|
+
**Target Development Level**: Tchem
|
|
838
|
+
**Protein Family**: Kinase
|
|
839
|
+
**Novelty Score**: 0.35 (moderately studied)
|
|
840
|
+
**Publication Count**: 12,456
|
|
841
|
+
|
|
842
|
+
**TDL Interpretation**: Target has validated small molecule activities with IC50 < 30nM. Good chemical starting points exist.
|
|
843
|
+
|
|
844
|
+
**Disease Targets Analysis** (for disease-centric queries):
|
|
845
|
+
| TDL | Count | Examples |
|
|
846
|
+
|-----|-------|----------|
|
|
847
|
+
| Tclin | 12 | EGFR, ALK, RET |
|
|
848
|
+
| Tchem | 45 | KRAS, SHP2, CDK4 |
|
|
849
|
+
| Tbio | 78 | Novel kinases |
|
|
850
|
+
| Tdark | 23 | Understudied |
|
|
851
|
+
|
|
852
|
+
*Source: Pharos/TCRD via `Pharos_get_target`*
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
### 7.2 DepMap - Target Essentiality Validation (NEW)
|
|
856
|
+
|
|
857
|
+
CRISPR knockout data from cancer cell lines to validate target essentiality:
|
|
858
|
+
|
|
859
|
+
```python
|
|
860
|
+
def assess_target_essentiality(tu, ids):
|
|
861
|
+
"""
|
|
862
|
+
Is this target essential for cancer cell survival?
|
|
863
|
+
|
|
864
|
+
Negative effect scores = gene is essential (cells die upon KO)
|
|
865
|
+
"""
|
|
866
|
+
gene_symbol = ids.get('symbol')
|
|
867
|
+
|
|
868
|
+
if not gene_symbol:
|
|
869
|
+
return {'status': 'error', 'message': 'Need gene symbol'}
|
|
870
|
+
|
|
871
|
+
deps = tu.tools.DepMap_get_gene_dependencies(
|
|
872
|
+
gene_symbol=gene_symbol
|
|
873
|
+
)
|
|
874
|
+
|
|
875
|
+
if deps.get('status') == 'success':
|
|
876
|
+
return {
|
|
877
|
+
'gene': gene_symbol,
|
|
878
|
+
'data': deps.get('data', {}),
|
|
879
|
+
'interpretation': 'Negative scores indicate gene is essential for cell survival',
|
|
880
|
+
'note': 'Score < -0.5 is strongly essential, < -1.0 is extremely essential'
|
|
881
|
+
}
|
|
882
|
+
return None
|
|
883
|
+
|
|
884
|
+
def get_cancer_type_essentiality(tu, gene_symbol, cancer_type):
|
|
885
|
+
"""Check if gene is essential in specific cancer type."""
|
|
886
|
+
|
|
887
|
+
# Get cell lines for cancer type
|
|
888
|
+
cell_lines = tu.tools.DepMap_get_cell_lines(
|
|
889
|
+
cancer_type=cancer_type,
|
|
890
|
+
page_size=20
|
|
891
|
+
)
|
|
892
|
+
|
|
893
|
+
return {
|
|
894
|
+
'gene': gene_symbol,
|
|
895
|
+
'cancer_type': cancer_type,
|
|
896
|
+
'cell_lines': cell_lines.get('data', {}).get('cell_lines', []),
|
|
897
|
+
'note': 'Query individual cell lines for dependency scores via DepMap portal'
|
|
898
|
+
}
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
**DepMap Report Section** (add to Section 9 - Druggability):
|
|
902
|
+
|
|
903
|
+
```markdown
|
|
904
|
+
### 9.x Target Essentiality (DepMap) (NEW)
|
|
905
|
+
|
|
906
|
+
**Gene Essentiality Assessment**:
|
|
907
|
+
| Context | Effect Score | Interpretation |
|
|
908
|
+
|---------|--------------|----------------|
|
|
909
|
+
| Pan-cancer | -0.42 | Moderately essential |
|
|
910
|
+
| Lung cancer | -0.78 | Strongly essential |
|
|
911
|
+
| Breast cancer | -0.21 | Weakly essential |
|
|
912
|
+
|
|
913
|
+
**Selectivity**: Differential essentiality suggests cancer-type selective target
|
|
914
|
+
|
|
915
|
+
**Cell Lines Tested**: 1,054 cancer cell lines from DepMap
|
|
916
|
+
|
|
917
|
+
*Interpretation*: Score < -0.5 indicates strong dependency. This target is more essential in lung cancer than other cancer types - suggesting lung-selective targeting may be feasible.
|
|
918
|
+
|
|
919
|
+
*Source: DepMap via `DepMap_get_gene_dependencies`*
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
### 7.3 InterProScan - Novel Domain Prediction (NEW)
|
|
923
|
+
|
|
924
|
+
For uncharacterized proteins, run InterProScan to predict domains and function:
|
|
925
|
+
|
|
926
|
+
```python
|
|
927
|
+
def predict_protein_domains(tu, sequence, title="Query protein"):
|
|
928
|
+
"""
|
|
929
|
+
Run InterProScan for de novo domain prediction.
|
|
930
|
+
|
|
931
|
+
Use when:
|
|
932
|
+
- Protein has no InterPro annotations
|
|
933
|
+
- Novel/uncharacterized protein
|
|
934
|
+
- Custom sequence analysis
|
|
935
|
+
"""
|
|
936
|
+
|
|
937
|
+
result = tu.tools.InterProScan_scan_sequence(
|
|
938
|
+
sequence=sequence,
|
|
939
|
+
title=title,
|
|
940
|
+
go_terms=True,
|
|
941
|
+
pathways=True
|
|
942
|
+
)
|
|
943
|
+
|
|
944
|
+
if result.get('status') == 'success':
|
|
945
|
+
data = result.get('data', {})
|
|
946
|
+
|
|
947
|
+
# Job may still be running
|
|
948
|
+
if data.get('job_status') == 'RUNNING':
|
|
949
|
+
return {
|
|
950
|
+
'job_id': data.get('job_id'),
|
|
951
|
+
'status': 'running',
|
|
952
|
+
'note': 'Use InterProScan_get_job_results to retrieve when ready'
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
# Parse completed results
|
|
956
|
+
return {
|
|
957
|
+
'domains': data.get('domains', []),
|
|
958
|
+
'domain_count': data.get('domain_count', 0),
|
|
959
|
+
'go_annotations': data.get('go_annotations', []),
|
|
960
|
+
'pathways': data.get('pathways', []),
|
|
961
|
+
'sequence_length': data.get('sequence_length')
|
|
962
|
+
}
|
|
963
|
+
return None
|
|
964
|
+
|
|
965
|
+
def check_interproscan_job(tu, job_id):
|
|
966
|
+
"""Check status and get results for InterProScan job."""
|
|
967
|
+
|
|
968
|
+
status = tu.tools.InterProScan_get_job_status(job_id=job_id)
|
|
969
|
+
|
|
970
|
+
if status.get('data', {}).get('is_finished'):
|
|
971
|
+
results = tu.tools.InterProScan_get_job_results(job_id=job_id)
|
|
972
|
+
return results.get('data', {})
|
|
973
|
+
|
|
974
|
+
return status.get('data', {})
|
|
975
|
+
```
|
|
976
|
+
|
|
977
|
+
**When to use InterProScan**:
|
|
978
|
+
- Novel/uncharacterized proteins (Tdark in Pharos)
|
|
979
|
+
- Custom sequences (e.g., protein variants)
|
|
980
|
+
- Proteins with outdated/sparse InterPro annotations
|
|
981
|
+
- Validating domain predictions
|
|
982
|
+
|
|
983
|
+
**InterProScan Report Section** (for novel proteins):
|
|
984
|
+
|
|
985
|
+
```markdown
|
|
986
|
+
### Domain Prediction (InterProScan) (NEW)
|
|
987
|
+
|
|
988
|
+
*Used for uncharacterized protein analysis*
|
|
989
|
+
|
|
990
|
+
**Predicted Domains**:
|
|
991
|
+
| Domain | Database | Start-End | E-value | InterPro Entry |
|
|
992
|
+
|--------|----------|-----------|---------|----------------|
|
|
993
|
+
| Protein kinase domain | Pfam | 45-305 | 1.2e-89 | IPR000719 |
|
|
994
|
+
| SH2 domain | SMART | 320-410 | 3.4e-45 | IPR000980 |
|
|
995
|
+
|
|
996
|
+
**Predicted GO Terms**:
|
|
997
|
+
- GO:0004672 protein kinase activity
|
|
998
|
+
- GO:0005524 ATP binding
|
|
999
|
+
|
|
1000
|
+
**Predicted Pathways**:
|
|
1001
|
+
- Reactome: Signal Transduction
|
|
1002
|
+
|
|
1003
|
+
*Source: InterProScan via `InterProScan_scan_sequence`*
|
|
1004
|
+
```
|
|
1005
|
+
|
|
1006
|
+
### 7.4 BindingDB - Known Ligands & Binding Data (NEW)
|
|
1007
|
+
|
|
1008
|
+
BindingDB provides experimental binding affinity data (Ki, IC50, Kd) for target-ligand pairs:
|
|
1009
|
+
|
|
1010
|
+
```python
|
|
1011
|
+
def get_bindingdb_ligands(tu, uniprot_id, affinity_cutoff=10000):
|
|
1012
|
+
"""
|
|
1013
|
+
Get ligands with measured binding affinities from BindingDB.
|
|
1014
|
+
|
|
1015
|
+
Critical for:
|
|
1016
|
+
- Identifying chemical starting points
|
|
1017
|
+
- Understanding existing chemical matter
|
|
1018
|
+
- Assessing tractability with small molecules
|
|
1019
|
+
|
|
1020
|
+
Args:
|
|
1021
|
+
uniprot_id: UniProt accession (e.g., P00533 for EGFR)
|
|
1022
|
+
affinity_cutoff: Maximum affinity in nM (lower = more potent)
|
|
1023
|
+
"""
|
|
1024
|
+
|
|
1025
|
+
# Get ligands by UniProt
|
|
1026
|
+
result = tu.tools.BindingDB_get_ligands_by_uniprot(
|
|
1027
|
+
uniprot=uniprot_id,
|
|
1028
|
+
affinity_cutoff=affinity_cutoff
|
|
1029
|
+
)
|
|
1030
|
+
|
|
1031
|
+
if result:
|
|
1032
|
+
ligands = []
|
|
1033
|
+
for entry in result:
|
|
1034
|
+
ligands.append({
|
|
1035
|
+
'smiles': entry.get('smile'),
|
|
1036
|
+
'affinity_type': entry.get('affinity_type'), # Ki, IC50, Kd
|
|
1037
|
+
'affinity_nM': entry.get('affinity'),
|
|
1038
|
+
'monomer_id': entry.get('monomerid'),
|
|
1039
|
+
'pmid': entry.get('pmid')
|
|
1040
|
+
})
|
|
1041
|
+
|
|
1042
|
+
# Sort by affinity (most potent first)
|
|
1043
|
+
ligands.sort(key=lambda x: float(x['affinity_nM']) if x['affinity_nM'] else float('inf'))
|
|
1044
|
+
|
|
1045
|
+
return {
|
|
1046
|
+
'total_ligands': len(ligands),
|
|
1047
|
+
'ligands': ligands[:20], # Top 20 most potent
|
|
1048
|
+
'best_affinity': ligands[0]['affinity_nM'] if ligands else None
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
return {'total_ligands': 0, 'ligands': [], 'note': 'No ligands found in BindingDB'}
|
|
1052
|
+
|
|
1053
|
+
def get_ligands_by_structure(tu, pdb_id, affinity_cutoff=10000):
|
|
1054
|
+
"""Get ligands for a protein by PDB structure ID."""
|
|
1055
|
+
|
|
1056
|
+
result = tu.tools.BindingDB_get_ligands_by_pdb(
|
|
1057
|
+
pdb_ids=pdb_id,
|
|
1058
|
+
affinity_cutoff=affinity_cutoff,
|
|
1059
|
+
sequence_identity=100
|
|
1060
|
+
)
|
|
1061
|
+
|
|
1062
|
+
return result
|
|
1063
|
+
|
|
1064
|
+
def find_compound_targets(tu, smiles, similarity_cutoff=0.85):
|
|
1065
|
+
"""Find other targets for a compound (polypharmacology)."""
|
|
1066
|
+
|
|
1067
|
+
result = tu.tools.BindingDB_get_targets_by_compound(
|
|
1068
|
+
smiles=smiles,
|
|
1069
|
+
similarity_cutoff=similarity_cutoff
|
|
1070
|
+
)
|
|
1071
|
+
|
|
1072
|
+
return result
|
|
1073
|
+
```
|
|
1074
|
+
|
|
1075
|
+
**BindingDB Report Section** (add to Section 9 - Druggability):
|
|
1076
|
+
|
|
1077
|
+
```markdown
|
|
1078
|
+
### Known Ligands (BindingDB) (NEW)
|
|
1079
|
+
|
|
1080
|
+
**Total Ligands with Binding Data**: 156
|
|
1081
|
+
**Best Reported Affinity**: 0.3 nM (Ki)
|
|
1082
|
+
|
|
1083
|
+
#### Most Potent Ligands
|
|
1084
|
+
|
|
1085
|
+
| SMILES | Affinity Type | Value (nM) | Source PMID |
|
|
1086
|
+
|--------|---------------|------------|-------------|
|
|
1087
|
+
| CC(=O)Nc1ccc(cc1)c2... | Ki | 0.3 | 15737014 |
|
|
1088
|
+
| CN(C)C/C=C/C(=O)Nc1... | IC50 | 0.8 | 15896103 |
|
|
1089
|
+
| COc1cc2ncnc(Nc3ccc... | Kd | 2.1 | 16460808 |
|
|
1090
|
+
|
|
1091
|
+
**Chemical Tractability Assessment**:
|
|
1092
|
+
- ✅ **Tchem-level target**: Multiple ligands with <30nM affinity
|
|
1093
|
+
- ✅ **Diverse chemotypes**: Multiple scaffolds identified
|
|
1094
|
+
- ✅ **Published literature**: Ligands have PMID references
|
|
1095
|
+
|
|
1096
|
+
*Source: BindingDB via `BindingDB_get_ligands_by_uniprot`*
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
**Affinity Interpretation for Druggability**:
|
|
1100
|
+
| Affinity Range | Interpretation | Drug Development Potential |
|
|
1101
|
+
|----------------|----------------|---------------------------|
|
|
1102
|
+
| <1 nM | Ultra-potent | Clinical compound likely |
|
|
1103
|
+
| 1-10 nM | Highly potent | Drug-like |
|
|
1104
|
+
| 10-100 nM | Potent | Good starting point |
|
|
1105
|
+
| 100-1000 nM | Moderate | Needs optimization |
|
|
1106
|
+
| >1000 nM | Weak | Early hit only |
|
|
1107
|
+
|
|
1108
|
+
### 7.5 PubChem BioAssay - Screening Data (NEW)
|
|
1109
|
+
|
|
1110
|
+
PubChem BioAssay provides HTS screening data and dose-response curves:
|
|
1111
|
+
|
|
1112
|
+
```python
|
|
1113
|
+
def get_pubchem_assays_for_target(tu, gene_symbol):
|
|
1114
|
+
"""
|
|
1115
|
+
Get bioassays targeting a gene from PubChem.
|
|
1116
|
+
|
|
1117
|
+
Provides:
|
|
1118
|
+
- HTS screening results
|
|
1119
|
+
- Dose-response data (IC50/EC50)
|
|
1120
|
+
- Active compound counts
|
|
1121
|
+
"""
|
|
1122
|
+
|
|
1123
|
+
# Search assays by target gene
|
|
1124
|
+
assays = tu.tools.PubChem_search_assays_by_target_gene(
|
|
1125
|
+
gene_symbol=gene_symbol
|
|
1126
|
+
)
|
|
1127
|
+
|
|
1128
|
+
assay_info = []
|
|
1129
|
+
if assays.get('data', {}).get('aids'):
|
|
1130
|
+
for aid in assays['data']['aids'][:10]: # Top 10 assays
|
|
1131
|
+
# Get assay details
|
|
1132
|
+
summary = tu.tools.PubChem_get_assay_summary(aid=aid)
|
|
1133
|
+
targets = tu.tools.PubChem_get_assay_targets(aid=aid)
|
|
1134
|
+
|
|
1135
|
+
assay_info.append({
|
|
1136
|
+
'aid': aid,
|
|
1137
|
+
'summary': summary.get('data', {}),
|
|
1138
|
+
'targets': targets.get('data', {})
|
|
1139
|
+
})
|
|
1140
|
+
|
|
1141
|
+
return {
|
|
1142
|
+
'total_assays': len(assays.get('data', {}).get('aids', [])),
|
|
1143
|
+
'assay_details': assay_info
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
def get_active_compounds_from_assay(tu, aid):
|
|
1147
|
+
"""Get active compounds from a specific bioassay."""
|
|
1148
|
+
|
|
1149
|
+
actives = tu.tools.PubChem_get_assay_active_compounds(aid=aid)
|
|
1150
|
+
|
|
1151
|
+
return {
|
|
1152
|
+
'aid': aid,
|
|
1153
|
+
'active_cids': actives.get('data', {}).get('cids', []),
|
|
1154
|
+
'count': len(actives.get('data', {}).get('cids', []))
|
|
1155
|
+
}
|
|
1156
|
+
```
|
|
1157
|
+
|
|
1158
|
+
**PubChem BioAssay Report Section**:
|
|
1159
|
+
|
|
1160
|
+
```markdown
|
|
1161
|
+
### PubChem BioAssay Data (NEW)
|
|
1162
|
+
|
|
1163
|
+
**Assays Targeting This Gene**: 45
|
|
1164
|
+
|
|
1165
|
+
| AID | Assay Type | Active Compounds | Target Info |
|
|
1166
|
+
|-----|------------|------------------|-------------|
|
|
1167
|
+
| 1053104 | Dose-response | 12 | EGFR kinase |
|
|
1168
|
+
| 504526 | HTS | 234 | EGFR binding |
|
|
1169
|
+
| 651564 | Confirmatory | 8 | EGFR cellular |
|
|
1170
|
+
|
|
1171
|
+
**Total Active Compounds Across Assays**: ~500
|
|
1172
|
+
|
|
1173
|
+
*Source: PubChem via `PubChem_search_assays_by_target_gene`, `PubChem_get_assay_active_compounds`*
|
|
1174
|
+
```
|
|
1175
|
+
|
|
1176
|
+
---
|
|
1177
|
+
|
|
1178
|
+
## PATH 8: Literature & Research (Collision-Aware)
|
|
1179
|
+
|
|
1180
|
+
### Collision-Aware Query Strategy
|
|
1181
|
+
|
|
1182
|
+
```python
|
|
1183
|
+
def path_literature_collision_aware(tu, ids):
|
|
1184
|
+
"""
|
|
1185
|
+
Literature search with collision detection and filtering.
|
|
1186
|
+
"""
|
|
1187
|
+
symbol = ids['symbol']
|
|
1188
|
+
full_name = ids.get('full_name', '')
|
|
1189
|
+
uniprot = ids['uniprot']
|
|
1190
|
+
synonyms = ids.get('synonyms', [])
|
|
1191
|
+
|
|
1192
|
+
# Step 1: Detect collisions
|
|
1193
|
+
collision_filter = detect_collisions(tu, symbol, full_name)
|
|
1194
|
+
|
|
1195
|
+
# Step 2: Build high-precision seed queries
|
|
1196
|
+
seed_queries = [
|
|
1197
|
+
f'"{symbol}"[Title] AND (protein OR gene OR expression)', # Symbol in title
|
|
1198
|
+
f'"{full_name}"[Title]' if full_name else None, # Full name in title
|
|
1199
|
+
f'"UniProt:{uniprot}"' if uniprot else None, # UniProt accession
|
|
1200
|
+
]
|
|
1201
|
+
seed_queries = [q for q in seed_queries if q]
|
|
1202
|
+
|
|
1203
|
+
# Add key synonyms
|
|
1204
|
+
for syn in synonyms[:3]:
|
|
1205
|
+
seed_queries.append(f'"{syn}"[Title]')
|
|
1206
|
+
|
|
1207
|
+
# Step 3: Execute seed queries and collect PMIDs
|
|
1208
|
+
seed_pmids = set()
|
|
1209
|
+
for query in seed_queries:
|
|
1210
|
+
if collision_filter:
|
|
1211
|
+
query = f"({query}){collision_filter}"
|
|
1212
|
+
results = tu.tools.PubMed_search_articles(query=query, limit=30)
|
|
1213
|
+
for article in results.get('articles', []):
|
|
1214
|
+
seed_pmids.add(article.get('pmid'))
|
|
1215
|
+
|
|
1216
|
+
# Step 4: Expand via citation network (for sparse targets)
|
|
1217
|
+
if len(seed_pmids) < 30:
|
|
1218
|
+
expanded_pmids = set()
|
|
1219
|
+
for pmid in list(seed_pmids)[:10]: # Top 10 seeds
|
|
1220
|
+
# Get related articles
|
|
1221
|
+
related = tu.tools.PubMed_get_related(pmid=pmid, limit=20)
|
|
1222
|
+
for r in related.get('articles', []):
|
|
1223
|
+
expanded_pmids.add(r.get('pmid'))
|
|
1224
|
+
|
|
1225
|
+
# Get citing articles
|
|
1226
|
+
citing = tu.tools.EuropePMC_get_citations(pmid=pmid, limit=20)
|
|
1227
|
+
for c in citing.get('citations', []):
|
|
1228
|
+
expanded_pmids.add(c.get('pmid'))
|
|
1229
|
+
|
|
1230
|
+
seed_pmids.update(expanded_pmids)
|
|
1231
|
+
|
|
1232
|
+
# Step 5: Classify papers by evidence tier
|
|
1233
|
+
papers_by_tier = {'T1': [], 'T2': [], 'T3': [], 'T4': []}
|
|
1234
|
+
# ... classification logic based on title/abstract keywords
|
|
1235
|
+
|
|
1236
|
+
return {
|
|
1237
|
+
'total_papers': len(seed_pmids),
|
|
1238
|
+
'collision_filter_applied': collision_filter if collision_filter else 'None needed',
|
|
1239
|
+
'seed_queries': seed_queries,
|
|
1240
|
+
'papers_by_tier': papers_by_tier
|
|
1241
|
+
}
|
|
1242
|
+
```
|
|
1243
|
+
|
|
1244
|
+
---
|
|
1245
|
+
|
|
1246
|
+
## Retry Logic & Fallback Chains
|
|
1247
|
+
|
|
1248
|
+
### Retry Policy
|
|
1249
|
+
|
|
1250
|
+
For each critical tool, implement retry with exponential backoff:
|
|
1251
|
+
|
|
1252
|
+
```python
|
|
1253
|
+
def call_with_retry(tu, tool_name, params, max_retries=3):
|
|
1254
|
+
"""
|
|
1255
|
+
Call tool with retry logic.
|
|
1256
|
+
"""
|
|
1257
|
+
for attempt in range(max_retries):
|
|
1258
|
+
try:
|
|
1259
|
+
result = getattr(tu.tools, tool_name)(**params)
|
|
1260
|
+
if result and not result.get('error'):
|
|
1261
|
+
return result
|
|
1262
|
+
except Exception as e:
|
|
1263
|
+
if attempt < max_retries - 1:
|
|
1264
|
+
time.sleep(2 ** attempt) # Exponential backoff
|
|
1265
|
+
else:
|
|
1266
|
+
return {'error': str(e), 'tool': tool_name, 'attempts': max_retries}
|
|
1267
|
+
return None
|
|
1268
|
+
```
|
|
1269
|
+
|
|
1270
|
+
### Fallback Chains (CRITICAL)
|
|
1271
|
+
|
|
1272
|
+
| Primary Tool | Fallback 1 | Fallback 2 | Failure Action |
|
|
1273
|
+
|--------------|------------|------------|----------------|
|
|
1274
|
+
| `ChEMBL_get_target_activities` | `GtoPdb_get_target_ligands` | `OpenTargets drugs` | Note in report |
|
|
1275
|
+
| `intact_get_interactions` | `STRING_get_protein_interactions` | `OpenTargets interactions` | Note in report |
|
|
1276
|
+
| `GO_get_annotations_for_gene` | `OpenTargets GO` | `MyGene GO` | Note in report |
|
|
1277
|
+
| `GTEx_get_median_gene_expression` | `HPA_get_rna_expression` | Note as unavailable | Document in report |
|
|
1278
|
+
| `gnomad_get_gene_constraints` | `OpenTargets constraint` | - | Note in report |
|
|
1279
|
+
| `DGIdb_get_drug_gene_interactions` | `OpenTargets drugs` | `GtoPdb` | Note in report |
|
|
1280
|
+
|
|
1281
|
+
### Failure Surfacing Rule
|
|
1282
|
+
|
|
1283
|
+
**NEVER silently skip failed tools.** Always document:
|
|
1284
|
+
|
|
1285
|
+
```markdown
|
|
1286
|
+
### 7.1 Tissue Expression
|
|
1287
|
+
|
|
1288
|
+
**GTEx Data**: Unavailable (API timeout after 3 attempts)
|
|
1289
|
+
**Fallback Data (HPA)**:
|
|
1290
|
+
| Tissue | Expression Level | Specificity |
|
|
1291
|
+
|--------|-----------------|-------------|
|
|
1292
|
+
| Liver | High | Enhanced |
|
|
1293
|
+
| Kidney | Medium | - |
|
|
1294
|
+
|
|
1295
|
+
*Note: For complete GTEx data, query directly at gtexportal.org*
|
|
1296
|
+
```
|
|
1297
|
+
|
|
1298
|
+
---
|
|
1299
|
+
|
|
1300
|
+
## Per-Section Data Minimums & Completeness Audit
|
|
1301
|
+
|
|
1302
|
+
### Minimum Data Requirements (Enforced)
|
|
1303
|
+
|
|
1304
|
+
| Section | Minimum Data | If Not Met |
|
|
1305
|
+
|---------|--------------|------------|
|
|
1306
|
+
| **6. PPIs** | ≥20 interactors | Document which tools failed + why |
|
|
1307
|
+
| **7. Expression** | Top 10 tissues with TPM + HPA RNA summary | Note "limited data" with specific gaps |
|
|
1308
|
+
| **8. Disease** | Top 10 OT diseases + gnomAD constraints + ClinVar summary | Separate SNV/CNV; note if constraint unavailable |
|
|
1309
|
+
| **9. Druggability** | OT tractability + probes + drugs + DGIdb + GtoPdb fallback | "No drugs/probes" is valid data |
|
|
1310
|
+
| **11. Literature** | Total count + 5-year trend + 3-5 key papers with evidence tiers | Note if sparse (<50 papers) |
|
|
1311
|
+
|
|
1312
|
+
### Post-Run Completeness Audit
|
|
1313
|
+
|
|
1314
|
+
Before finalizing the report, run this checklist:
|
|
1315
|
+
|
|
1316
|
+
```markdown
|
|
1317
|
+
## Completeness Audit (REQUIRED)
|
|
1318
|
+
|
|
1319
|
+
### Data Minimums Check
|
|
1320
|
+
- [ ] PPIs: ≥20 interactors OR explanation why fewer
|
|
1321
|
+
- [ ] Expression: Top 10 tissues with values OR explicit "unavailable"
|
|
1322
|
+
- [ ] Diseases: Top 10 associations with scores OR "no associations"
|
|
1323
|
+
- [ ] Constraints: All 4 scores (pLI, LOEUF, missense Z, pRec) OR "unavailable"
|
|
1324
|
+
- [ ] Druggability: All modalities assessed; probes + drugs listed OR "none"
|
|
1325
|
+
|
|
1326
|
+
### Negative Results Documented
|
|
1327
|
+
- [ ] Empty tool results noted explicitly (not left blank)
|
|
1328
|
+
- [ ] Failed tools with fallbacks documented
|
|
1329
|
+
- [ ] "No data" sections have implications noted
|
|
1330
|
+
|
|
1331
|
+
### Evidence Quality
|
|
1332
|
+
- [ ] T1-T4 grades in Executive Summary disease claims
|
|
1333
|
+
- [ ] T1-T4 grades in Disease Associations table
|
|
1334
|
+
- [ ] Key papers table has evidence tiers
|
|
1335
|
+
- [ ] Per-section evidence summaries included
|
|
1336
|
+
|
|
1337
|
+
### Source Attribution
|
|
1338
|
+
- [ ] Every data point has source tool/database cited
|
|
1339
|
+
- [ ] Section-end source summaries present
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1342
|
+
### Data Gap Table (Required if minimums not met)
|
|
1343
|
+
|
|
1344
|
+
```markdown
|
|
1345
|
+
## 15. Data Gaps & Limitations
|
|
1346
|
+
|
|
1347
|
+
| Section | Expected Data | Actual | Reason | Alternative Source |
|
|
1348
|
+
|---------|---------------|--------|--------|-------------------|
|
|
1349
|
+
| 6. PPIs | ≥20 interactors | 8 | Novel target, limited studies | Literature review needed |
|
|
1350
|
+
| 7. Expression | GTEx TPM | None | Versioned ID not recognized | See HPA data |
|
|
1351
|
+
| 9. Probes | Chemical probes | None | No validated probes exist | Consider tool compound dev |
|
|
1352
|
+
|
|
1353
|
+
**Recommendations for Data Gaps**:
|
|
1354
|
+
1. For PPIs: Query BioGRID with broader parameters; check yeast-2-hybrid studies
|
|
1355
|
+
2. For Expression: Query GEO directly for tissue-specific datasets
|
|
1356
|
+
```
|
|
1357
|
+
|
|
1358
|
+
---
|
|
1359
|
+
|
|
1360
|
+
## Report Template (Initial File)
|
|
1361
|
+
|
|
1362
|
+
**File**: `[TARGET]_target_report.md`
|
|
1363
|
+
|
|
1364
|
+
```markdown
|
|
1365
|
+
# Target Intelligence Report: [TARGET NAME]
|
|
1366
|
+
|
|
1367
|
+
**Generated**: [Date] | **Query**: [Original query] | **Status**: In Progress
|
|
1368
|
+
|
|
1369
|
+
---
|
|
1370
|
+
|
|
1371
|
+
## 1. Executive Summary
|
|
1372
|
+
[Researching...]
|
|
1373
|
+
<!-- REQUIRED: 2-3 sentences, disease claims must have T1-T4 grades -->
|
|
1374
|
+
|
|
1375
|
+
## 2. Target Identifiers
|
|
1376
|
+
[Researching...]
|
|
1377
|
+
<!-- REQUIRED: UniProt, Ensembl (versioned), Entrez, ChEMBL, HGNC, Symbol -->
|
|
1378
|
+
|
|
1379
|
+
## 3. Basic Information
|
|
1380
|
+
### 3.1 Protein Description
|
|
1381
|
+
[Researching...]
|
|
1382
|
+
### 3.2 Protein Function
|
|
1383
|
+
[Researching...]
|
|
1384
|
+
### 3.3 Subcellular Localization
|
|
1385
|
+
[Researching...]
|
|
1386
|
+
|
|
1387
|
+
## 4. Structural Biology
|
|
1388
|
+
### 4.1 Experimental Structures (PDB)
|
|
1389
|
+
[Researching...]
|
|
1390
|
+
<!-- METHOD: 3-step chain (UniProt xrefs → sequence search → domain search) -->
|
|
1391
|
+
### 4.2 AlphaFold Prediction
|
|
1392
|
+
[Researching...]
|
|
1393
|
+
### 4.3 Domain Architecture
|
|
1394
|
+
[Researching...]
|
|
1395
|
+
### 4.4 Key Structural Features
|
|
1396
|
+
[Researching...]
|
|
1397
|
+
|
|
1398
|
+
## 5. Function & Pathways
|
|
1399
|
+
### 5.1 Gene Ontology Annotations
|
|
1400
|
+
[Researching...]
|
|
1401
|
+
<!-- REQUIRED: Evidence codes mapped to T1-T4 -->
|
|
1402
|
+
### 5.2 Pathway Involvement
|
|
1403
|
+
[Researching...]
|
|
1404
|
+
|
|
1405
|
+
## 6. Protein-Protein Interactions
|
|
1406
|
+
[Researching...]
|
|
1407
|
+
<!-- MINIMUM: ≥20 interactors OR explanation -->
|
|
1408
|
+
|
|
1409
|
+
## 7. Expression Profile
|
|
1410
|
+
### 7.1 Tissue Expression (GTEx/HPA)
|
|
1411
|
+
[Researching...]
|
|
1412
|
+
<!-- NOTE: Use versioned Ensembl ID for GTEx if needed -->
|
|
1413
|
+
### 7.2 Tissue Specificity
|
|
1414
|
+
[Researching...]
|
|
1415
|
+
<!-- MINIMUM: Top 10 tissues with TPM values -->
|
|
1416
|
+
|
|
1417
|
+
## 8. Genetic Variation & Disease
|
|
1418
|
+
### 8.1 Constraint Scores
|
|
1419
|
+
[Researching...]
|
|
1420
|
+
<!-- REQUIRED: pLI, LOEUF, missense Z, pRec with interpretations -->
|
|
1421
|
+
### 8.2 Disease Associations
|
|
1422
|
+
[Researching...]
|
|
1423
|
+
<!-- REQUIRED: Top 10 with OT scores; T1-T4 evidence grades -->
|
|
1424
|
+
### 8.3 Clinical Variants (ClinVar)
|
|
1425
|
+
[Researching...]
|
|
1426
|
+
<!-- REQUIRED: Separate SNV and CNV tables -->
|
|
1427
|
+
### 8.4 Mouse Model Phenotypes
|
|
1428
|
+
[Researching...]
|
|
1429
|
+
|
|
1430
|
+
## 9. Druggability & Pharmacology
|
|
1431
|
+
### 9.1 Tractability Assessment
|
|
1432
|
+
[Researching...]
|
|
1433
|
+
<!-- REQUIRED: All modalities (SM, Ab, PROTAC, other) -->
|
|
1434
|
+
### 9.2 Known Drugs
|
|
1435
|
+
[Researching...]
|
|
1436
|
+
### 9.3 Chemical Probes
|
|
1437
|
+
[Researching...]
|
|
1438
|
+
<!-- NOTE: "No probes" is valid data - document explicitly -->
|
|
1439
|
+
### 9.4 Clinical Pipeline
|
|
1440
|
+
[Researching...]
|
|
1441
|
+
### 9.5 ChEMBL Bioactivity
|
|
1442
|
+
[Researching...]
|
|
1443
|
+
|
|
1444
|
+
## 10. Safety Profile
|
|
1445
|
+
### 10.1 Safety Liabilities
|
|
1446
|
+
[Researching...]
|
|
1447
|
+
### 10.2 Expression-Based Toxicity Risk
|
|
1448
|
+
[Researching...]
|
|
1449
|
+
### 10.3 Mouse KO Phenotypes
|
|
1450
|
+
[Researching...]
|
|
1451
|
+
|
|
1452
|
+
## 11. Literature & Research Landscape
|
|
1453
|
+
### 11.1 Publication Metrics
|
|
1454
|
+
[Researching...]
|
|
1455
|
+
<!-- REQUIRED: Total, 5y, 1y, drug-related, clinical -->
|
|
1456
|
+
### 11.2 Research Trend
|
|
1457
|
+
[Researching...]
|
|
1458
|
+
### 11.3 Key Publications
|
|
1459
|
+
[Researching...]
|
|
1460
|
+
<!-- REQUIRED: Table with PMID, title, year, evidence tier -->
|
|
1461
|
+
### 11.4 Evidence Summary by Theme
|
|
1462
|
+
[Researching...]
|
|
1463
|
+
<!-- REQUIRED: T1-T4 breakdown per research theme -->
|
|
1464
|
+
|
|
1465
|
+
## 12. Competitive Landscape
|
|
1466
|
+
[Researching...]
|
|
1467
|
+
|
|
1468
|
+
## 13. Summary & Recommendations
|
|
1469
|
+
### 13.1 Target Validation Scorecard
|
|
1470
|
+
[Researching...]
|
|
1471
|
+
<!-- REQUIRED: 6 criteria, 1-5 scores, evidence quality noted -->
|
|
1472
|
+
### 13.2 Strengths
|
|
1473
|
+
[Researching...]
|
|
1474
|
+
### 13.3 Challenges & Risks
|
|
1475
|
+
[Researching...]
|
|
1476
|
+
### 13.4 Recommendations
|
|
1477
|
+
[Researching...]
|
|
1478
|
+
<!-- REQUIRED: ≥3 prioritized (HIGH/MEDIUM/LOW) -->
|
|
1479
|
+
|
|
1480
|
+
## 14. Data Sources & Methodology
|
|
1481
|
+
[Will be populated as research progresses...]
|
|
1482
|
+
|
|
1483
|
+
## 15. Data Gaps & Limitations
|
|
1484
|
+
[To be populated post-audit...]
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
---
|
|
1488
|
+
|
|
1489
|
+
## Quick Reference: Tool Parameters
|
|
1490
|
+
|
|
1491
|
+
| Tool | Parameter | Notes |
|
|
1492
|
+
|------|-----------|-------|
|
|
1493
|
+
| `Reactome_map_uniprot_to_pathways` | `id` | NOT `uniprot_id` |
|
|
1494
|
+
| `ensembl_get_xrefs` | `id` | NOT `gene_id` |
|
|
1495
|
+
| `GTEx_get_median_gene_expression` | `gencode_id`, `operation` | Try versioned ID if empty |
|
|
1496
|
+
| `OpenTargets_*` | `ensemblId` | camelCase, not `ensemblID` |
|
|
1497
|
+
| `STRING_get_protein_interactions` | `protein_ids`, `species` | List format for IDs |
|
|
1498
|
+
| `intact_get_interactions` | `identifier` | UniProt accession |
|
|
1499
|
+
|
|
1500
|
+
---
|
|
1501
|
+
|
|
1502
|
+
## When NOT to Use This Skill
|
|
1503
|
+
|
|
1504
|
+
- Simple protein lookup → Use `UniProt_get_entry_by_accession` directly
|
|
1505
|
+
- Drug information only → Use drug-focused tools
|
|
1506
|
+
- Disease-centric query → Use disease-intelligence-gatherer skill
|
|
1507
|
+
- Sequence retrieval → Use sequence-retrieval skill
|
|
1508
|
+
- Structure download → Use protein-structure-retrieval skill
|
|
1509
|
+
|
|
1510
|
+
Use this skill for comprehensive, multi-angle target analysis with guaranteed data completeness.
|