@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,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: chip-atlas-diff-analysis
|
|
3
|
+
name: ChIP-Atlas Diff Analysis
|
|
4
|
+
category: epigenomics
|
|
5
|
+
short-description: "Compare two groups of ChIP/ATAC/DNase-seq or Bisulfite-seq experiments to identify differential peak regions (DPR) or differentially methylated regions (DMR) via the ChIP-Atlas API."
|
|
6
|
+
detailed-description: "Submit two groups of experiment accession IDs to ChIP-Atlas Diff Analysis API, which uses edgeR for differential peak regions (DPR) and metilene for differentially methylated regions (DMR). Returns BED files with genomic coordinates, logFC, p-values, and FDR-corrected q-values. Supports 10 genomes: human (hg38, hg19), mouse (mm10, mm9), rat (rn6), fly (dm6, dm3), worm (ce11, ce10), yeast (sacCer3)."
|
|
7
|
+
starting-prompt: Compare two sets of ChIP-seq experiments to find differential peaks using ChIP-Atlas.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ChIP-Atlas Diff Analysis
|
|
11
|
+
|
|
12
|
+
Compare two groups of experiments to identify differential peak regions (DPR) or differentially methylated regions (DMR) using the ChIP-Atlas Diff Analysis API.
|
|
13
|
+
|
|
14
|
+
## When to Use This Skill
|
|
15
|
+
|
|
16
|
+
Use ChIP-Atlas diff analysis when you need to:
|
|
17
|
+
- **Find differential peaks** between two conditions (treated vs control, tissue A vs B)
|
|
18
|
+
- **Identify differentially methylated regions** between sample groups (Bisulfite-seq)
|
|
19
|
+
- **Compare chromatin accessibility** between cell types using ATAC-seq/DNase-seq data
|
|
20
|
+
- **Leverage edgeR-based statistical framework** on ChIP-Atlas public experiment data
|
|
21
|
+
- **Avoid raw data downloads** — works directly with experiment accession IDs
|
|
22
|
+
|
|
23
|
+
**Don't use for:**
|
|
24
|
+
- Single experiment analysis or peak calling (use MACS2/MACS3 workflows)
|
|
25
|
+
- Enrichment of factors near a gene list (use chip-atlas-peak-enrichment)
|
|
26
|
+
- Offline analysis (requires internet for API calls)
|
|
27
|
+
|
|
28
|
+
**Key Concept:** Submits two groups of experiment IDs to ChIP-Atlas. Server performs edgeR differential analysis (for DPR) or metilene (for DMR), returning BED files with genomic coordinates, logFC, p-values, q-values (FDR), and per-experiment normalized counts.
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
| Software | Version | License | Commercial Use | Installation |
|
|
33
|
+
|----------|---------|---------|----------------|--------------|
|
|
34
|
+
| pandas | >=1.3 | BSD-3-Clause | Permitted | `pip install pandas` |
|
|
35
|
+
| requests | >=2.25 | Apache-2.0 | Permitted | `pip install requests` |
|
|
36
|
+
| numpy | >=1.20 | BSD-3-Clause | Permitted | `pip install numpy` |
|
|
37
|
+
| plotnine | >=0.10 | MIT | Permitted | `pip install plotnine` |
|
|
38
|
+
| plotnine-prism | >=0.2 | MIT | Permitted | `pip install plotnine-prism` |
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install pandas requests numpy plotnine plotnine-prism
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**System requirements:** Internet connection (API calls to ChIP-Atlas)
|
|
45
|
+
|
|
46
|
+
## Inputs
|
|
47
|
+
|
|
48
|
+
**Experiment IDs (two groups, minimum 2 per group):**
|
|
49
|
+
- SRA accessions: SRX, ERX, DRX (e.g., SRX18419259)
|
|
50
|
+
- GEO accessions: GSM (e.g., GSM6765200)
|
|
51
|
+
- Formats: Python list, plain text (one per line), CSV with ID column
|
|
52
|
+
|
|
53
|
+
**Parameters:**
|
|
54
|
+
- **Genome:** hg38 (default), hg19, mm10, mm9, rn6, dm6, dm3, ce11, ce10, sacCer3
|
|
55
|
+
- **Analysis type:** "diffbind" (default, DPR for ChIP/ATAC/DNase-seq) or "dmr" (DMR for Bisulfite-seq)
|
|
56
|
+
|
|
57
|
+
## Outputs
|
|
58
|
+
|
|
59
|
+
**Analysis objects (Pickle):**
|
|
60
|
+
- `analysis_object.pkl` - Complete results for downstream use
|
|
61
|
+
- Load with: `import pickle; obj = pickle.load(open('analysis_object.pkl', 'rb'))`
|
|
62
|
+
- Contains: diff_regions, diff_regions_unfiltered, qc_warnings, experiments_a/b, raw_files, log_content, parameters
|
|
63
|
+
|
|
64
|
+
**Results (CSV):**
|
|
65
|
+
- `diff_regions_all.csv` - All differential regions, QC-filtered (chrom, start, end, logFC, pvalue, qvalue, direction, counts)
|
|
66
|
+
- `diff_regions_significant.csv` - Significant regions (FDR < 0.05)
|
|
67
|
+
- `diff_regions_top50.csv` - Top 50 by significance (with nearest gene annotation when available)
|
|
68
|
+
- `diff_regions_unfiltered.csv` - Pre-QC regions (includes non-standard contigs and regions < 10bp)
|
|
69
|
+
|
|
70
|
+
**Raw results:**
|
|
71
|
+
- `raw_results/` - Original BED, IGV session, and log files from ChIP-Atlas
|
|
72
|
+
|
|
73
|
+
**Visualizations (PNG + SVG, plotnine with Prism theme):**
|
|
74
|
+
- `volcano_plot.png/.svg` - Volcano plot (logFC vs -log10 Q-value)
|
|
75
|
+
- `chromosome_distribution.png/.svg` - Differential regions by chromosome (stacked bar)
|
|
76
|
+
- `region_size_distribution.png/.svg` - Region size histogram (log-scale)
|
|
77
|
+
- `ma_plot.png/.svg` - MA plot (mean counts vs logFC)
|
|
78
|
+
|
|
79
|
+
**Reports:**
|
|
80
|
+
- `summary_report.md` - Human-readable analysis summary with QC warnings, nearest gene annotations, and statistical caveats
|
|
81
|
+
|
|
82
|
+
## Clarification Questions
|
|
83
|
+
|
|
84
|
+
1. **Input Files** (ASK THIS FIRST):
|
|
85
|
+
- Do you have experiment IDs (SRX/GSM) for two groups to compare?
|
|
86
|
+
- Expected: At least 2 IDs per group (3+ recommended for statistical power)
|
|
87
|
+
- Formats: Plain text (one ID per line), CSV with ID column, or Python list
|
|
88
|
+
- **Or use example data?** `tp53_k562_dmso_vs_daunorubicin` (recommended: TP53 K-562 DMSO vs Daunorubicin, n=8 vs n=8) or `tp53_molm13_vs_k562` (MOLM-13 vs K-562, n=4 vs n=4, demonstrates sex-chr QC)
|
|
89
|
+
|
|
90
|
+
2. **Analysis parameters:**
|
|
91
|
+
- **Species/genome?** Human hg38 (default), hg19, mouse mm10/mm9, rat rn6, fly, worm, yeast
|
|
92
|
+
- **Analysis type?** "diffbind" (default, for ChIP/ATAC/DNase-seq) or "dmr" (for Bisulfite-seq)
|
|
93
|
+
- **Group labels?** Names for each group (e.g., "Treated" vs "Control"). *(Auto-set for example data.)*
|
|
94
|
+
|
|
95
|
+
## Standard Workflow
|
|
96
|
+
|
|
97
|
+
🚨 **MANDATORY: USE SCRIPTS EXACTLY AS SHOWN - DO NOT WRITE INLINE CODE** 🚨
|
|
98
|
+
|
|
99
|
+
**Step 1 - Load data:**
|
|
100
|
+
```python
|
|
101
|
+
# Option 1: Example data
|
|
102
|
+
from scripts.load_example_data import load_example_data
|
|
103
|
+
data = load_example_data("tp53_k562_dmso_vs_daunorubicin")
|
|
104
|
+
experiments_a = data['experiments_a']
|
|
105
|
+
experiments_b = data['experiments_b']
|
|
106
|
+
|
|
107
|
+
# Option 2: Your own experiment IDs
|
|
108
|
+
# from scripts.load_user_data import load_user_data
|
|
109
|
+
# experiments_a = load_user_data("group_a.txt")
|
|
110
|
+
# experiments_b = load_user_data("group_b.txt")
|
|
111
|
+
```
|
|
112
|
+
**VERIFICATION:** `"✓ Data loaded successfully"`
|
|
113
|
+
|
|
114
|
+
**Step 2 - Run diff analysis:**
|
|
115
|
+
```python
|
|
116
|
+
from scripts.run_diff_workflow import run_diff_workflow
|
|
117
|
+
|
|
118
|
+
results = run_diff_workflow(
|
|
119
|
+
experiments_a=experiments_a,
|
|
120
|
+
experiments_b=experiments_b,
|
|
121
|
+
genome=data.get('genome', 'hg38'),
|
|
122
|
+
analysis_type=data.get('analysis_type', 'diffbind'),
|
|
123
|
+
description_a=data.get('description_a', 'group_A'),
|
|
124
|
+
description_b=data.get('description_b', 'group_B'),
|
|
125
|
+
output_dir="diff_analysis_results"
|
|
126
|
+
)
|
|
127
|
+
```
|
|
128
|
+
**DO NOT write inline API query code. Just use the script.**
|
|
129
|
+
|
|
130
|
+
**VERIFICATION:** `"✓ Diff analysis completed successfully!"`
|
|
131
|
+
|
|
132
|
+
**Step 3 - Generate visualizations:**
|
|
133
|
+
```python
|
|
134
|
+
from scripts.generate_all_plots import generate_all_plots
|
|
135
|
+
generate_all_plots(results, output_dir="diff_analysis_results")
|
|
136
|
+
```
|
|
137
|
+
**DO NOT write inline plotting code. The script handles PNG + SVG with graceful fallback.**
|
|
138
|
+
|
|
139
|
+
**VERIFICATION:** `"✓ All visualizations generated successfully!"`
|
|
140
|
+
|
|
141
|
+
**Step 4 - Export results:**
|
|
142
|
+
```python
|
|
143
|
+
from scripts.export_all import export_all
|
|
144
|
+
export_all(results, output_dir="diff_analysis_results")
|
|
145
|
+
```
|
|
146
|
+
**DO NOT write custom export code. Use export_all().**
|
|
147
|
+
|
|
148
|
+
**VERIFICATION:** `"=== Export Complete ==="`
|
|
149
|
+
|
|
150
|
+
⚠️ **IF SCRIPTS FAIL - Hierarchy:**
|
|
151
|
+
1. **Fix and Retry (90%)** - Install missing package, check internet, re-run
|
|
152
|
+
2. **Modify Script (5%)** - Edit the script, document changes
|
|
153
|
+
3. **Use as Reference (4%)** - Read script, adapt approach
|
|
154
|
+
4. **Write from Scratch (1%)** - Only if impossible, explain why
|
|
155
|
+
|
|
156
|
+
## Common Issues
|
|
157
|
+
|
|
158
|
+
| Error | Cause | Solution |
|
|
159
|
+
|-------|-------|----------|
|
|
160
|
+
| **API 400 error** | **Invalid parameters** | **Check experiment IDs are valid (SRX/ERX/DRX/GSM format). See [references/chipatlas_diff_api_format.md](references/chipatlas_diff_api_format.md).** |
|
|
161
|
+
| **API timeout (>15 min)** | **Large dataset or server load** | **Normal for many experiments. Default timeout is 15 min. Reduce experiments per group if needed.** |
|
|
162
|
+
| **No BED file in ZIP** | **Analysis produced no results** | **Check experiment IDs exist in ChIP-Atlas. Ensure both groups have valid data for the selected genome.** |
|
|
163
|
+
| **Empty differential regions** | **No significant differences** | **Groups may be too similar. Try experiments from more distinct conditions.** |
|
|
164
|
+
| **requestId parse error** | **API response format changed** | **Check ChIP-Atlas server status. The API uses text format (not JSON) for diff analysis.** |
|
|
165
|
+
| **SVG export error** | **Missing optional dependency** | **Normal - `generate_all_plots()` handles fallback automatically. PNG always created.** |
|
|
166
|
+
| **chrY/chrX regions all one-directional** | **Sex chromosome confound** | **Groups differ in sex (male vs female cell lines). QC check flags this automatically. Exclude sex chromosome regions from biological interpretation.** |
|
|
167
|
+
| **Gene annotations missing** | **UCSC API unavailable** | **Normal in offline environments. Gene annotations are optional — all statistical results remain complete.** |
|
|
168
|
+
|
|
169
|
+
## Interpretation Guidelines
|
|
170
|
+
|
|
171
|
+
**logFC:** Log2 fold change — positive = enriched in Group A, negative = enriched in Group B
|
|
172
|
+
**Q-value (FDR):** Benjamini-Hochberg corrected p-value — regions with FDR < 0.05 are significant
|
|
173
|
+
**Counts:** TMM-normalized read counts per experiment (comma-separated in raw BED)
|
|
174
|
+
**Region Size:** 100-500bp (TF sites), 500-2000bp (enhancers), >2000bp (broad marks)
|
|
175
|
+
|
|
176
|
+
**Nearest gene annotations:** Top regions in the summary report and top50 CSV are annotated with overlapping or nearby genes via UCSC REST API. Shows "GENE" for direct overlap or "GENE (+2.1kb)" for nearest gene within 5kb. Annotation is optional and skipped gracefully if the UCSC API is unavailable.
|
|
177
|
+
|
|
178
|
+
**Automated QC checks** (run automatically after Step 2):
|
|
179
|
+
- **Sex chromosome confounds:** If chrY/chrX regions are overwhelmingly one-directional with near-zero counts in the depleted group, this signals a sex mismatch between groups (e.g., male vs female cell lines). Checks both all regions (>80% threshold) and significant regions specifically (>67% threshold) to catch cases where noisy non-significant regions mask the artifact. These peaks should NOT be interpreted as genuine differential binding.
|
|
180
|
+
- **Non-standard contigs:** Regions on random scaffolds or unplaced sequences are filtered by default (mapping artifacts). Unfiltered data available in `diff_regions_unfiltered.csv`.
|
|
181
|
+
- **Implausibly small regions:** Regions < 10bp are filtered by default (edge artifacts — TF motifs are ~20bp, histone marks 200bp+).
|
|
182
|
+
- **Genomic clusters:** Dense clusters of one-directional significant regions (e.g., 10+ in <2 Mb) may indicate copy number amplification or structural variants rather than genuine differential binding. Investigate flagged clusters in a genome browser.
|
|
183
|
+
- **chrM enrichment (ChIP-seq/ATAC-seq only):** Mitochondrial DNA lacks histones and canonical chromatin structure. Significant differential regions on chrM in ChIP-seq or ATAC-seq experiments almost always reflect mitochondrial DNA contamination or non-specific antibody binding, not genuine transcription factor binding. Regions on chrM that are also <20bp are doubly suspect (too small for a TF binding site). chrM regions are NOT flagged for Bisulfite-seq (DMR mode), where mitochondrial methylation differences can be biologically meaningful.
|
|
184
|
+
- **Sample size:** With n ≤ 3, edgeR FDR values are unreliable — treat as approximate rankings. With n < 5, FDR estimates may be unstable. Focus on large effect sizes and validate key findings.
|
|
185
|
+
- **MA plot asymmetry:** If significant hits in one direction cluster at substantially lower mean counts than the other direction (>1 log2 unit difference in median), this may indicate normalization artifacts or noise-driven signal. Focus biological interpretation on higher-count significant regions.
|
|
186
|
+
- **Unusually small regions:** If the median significant region size is < 100bp for ChIP-seq/ATAC-seq, peak fragmentation may be inflating region counts. Check representative regions in a genome browser.
|
|
187
|
+
|
|
188
|
+
**Reporting top hits:** When summarizing top differential regions, present them in **strict Q-value ranking order** without skipping unannotated regions. Regions lacking gene annotations are still statistically significant. If you curate a subset (e.g., only gene-annotated hits), explicitly label the table as "selected highlights" — never imply it is a strict significance ranking. **Accuracy:** When quoting specific statistics (logFC, Q-values, coordinates) in your summary, copy values directly from `summary_report.md` or the CSV files — do NOT re-derive, round, or paraphrase numerical values from memory, as this introduces transcription errors.
|
|
189
|
+
|
|
190
|
+
**Gene annotations:** Nearest gene annotations indicate genomic proximity, not functional regulation. Describe associations factually (e.g., "a differential region near PCNA") without asserting direct regulatory relationships. Do not use individual gene annotations as validation of the analysis — gene proximity does not prove functional regulation.
|
|
191
|
+
|
|
192
|
+
**Experimental design:** edgeR treats all experiments within a group as biological replicates. If experiments within a group differ in important ways (e.g., different genotypes, tissues, or treatments), state this clearly — the differential analysis captures the *average* effect between groups, and within-group heterogeneity is treated as noise. **When summarizing results to the user, design caveats MUST be stated prominently — not buried at the end. If within-group experiments are not true biological replicates, this is the single most important limitation to communicate.**
|
|
193
|
+
|
|
194
|
+
**MA plot interpretation:** The MA plot shows mean expression (average log2 counts, x-axis) vs log fold change (y-axis). Normal pattern: funnel/fan shape narrowing at high counts (more power to detect small changes). Red flags: asymmetric significant hits clustering at low counts in one direction (potential normalization artifact), horizontal bands of significant hits (batch effects), or all significant hits at very low counts (noise-driven). **CRITICAL: Do NOT claim MA plot asymmetry in your summary unless the automated QC check flagged it.** The quantitative threshold is >1 log2 unit difference in median mean count between directions. Visual impressions of asymmetry below this threshold are not meaningful — small differences (e.g., 0.2 log2 units) are negligible and do not support claims of noise-driven signal. If no MA asymmetry QC warning appears, describe the MA plot as showing a normal pattern.
|
|
195
|
+
|
|
196
|
+
**Biological interpretation of top hits:** When discussing top differential regions near known genes, briefly note the gene's known function for context but do NOT claim the differential peak proves direct regulation. Genomic proximity does not establish causation. For exploratory analyses, suggest formal pathway/GO enrichment analysis as a next step to identify systematic patterns. Distinguish between confirmatory hits (regions near genes expected to differ) and exploratory hits (unexpected associations requiring validation). When the target factor is well-characterized (e.g., TP53, CTCF, ESR1, NF-kB), note whether canonical target genes appear in the top differential regions — the **absence** of expected targets is itself a notable finding that may indicate the differential signal is dominated by artifacts or indirect effects. After excluding artifact regions, comment on the effect sizes (logFC) of remaining biologically interpretable hits — modest effect sizes (|logFC| < 1.5) combined with annotations near pseudogenes or lncRNAs suggest limited genuine differential binding.
|
|
197
|
+
|
|
198
|
+
**Citations:** When writing your final summary, cite the data source (e.g., GSE accession) and key tools: ChIP-Atlas (Zou et al. 2024), edgeR (Robinson et al. 2010) for DPR, or metilene (Jühling et al. 2016) for DMR. Full references are in the References section below.
|
|
199
|
+
|
|
200
|
+
**Caveats:** Results depend on available public data quality. Always check QC warnings in the summary report. Validate key regions with orthogonal methods. See [references/output_format.md](references/output_format.md) for detailed output format.
|
|
201
|
+
|
|
202
|
+
## Suggested Next Steps
|
|
203
|
+
|
|
204
|
+
1. **Visualize in IGV** using the `.igv.xml` session file or `.igv.bed` file
|
|
205
|
+
2. **Annotate regions** with nearby genes using bedtools or GREAT
|
|
206
|
+
3. **Motif analysis** on differential peaks (HOMER, MEME-ChIP)
|
|
207
|
+
4. **Integrate with expression** data to link peaks to gene regulation
|
|
208
|
+
|
|
209
|
+
## Related Skills
|
|
210
|
+
|
|
211
|
+
- **[chip-atlas-peak-enrichment](../chip-atlas-peak-enrichment/)** - Enrichment of ChIP-seq peaks near gene lists
|
|
212
|
+
- **[bulk-rnaseq-counts-to-de-deseq2](../bulk-rnaseq-counts-to-de-deseq2/)** - Differential expression to identify genes for downstream analysis
|
|
213
|
+
|
|
214
|
+
## References
|
|
215
|
+
|
|
216
|
+
- Zou et al. (2024). ChIP-Atlas 3.0: a data-mining suite to explore chromosome architecture. *Nucleic Acids Research*. [doi:10.1093/nar/gkad884](https://doi.org/10.1093/nar/gkad884)
|
|
217
|
+
- Zou et al. (2022). ChIP-Atlas 2021 update. *Nucleic Acids Research*. [doi:10.1093/nar/gkab933](https://doi.org/10.1093/nar/gkab933)
|
|
218
|
+
- Robinson et al. (2010). edgeR: a Bioconductor package for differential expression analysis. *Bioinformatics* 26(1):139-140.
|
|
219
|
+
- Jühling et al. (2016). metilene: fast and sensitive calling of differentially methylated regions. *Genome Research* 26(2):256-262.
|
|
220
|
+
- ChIP-Atlas: https://chip-atlas.org
|
|
221
|
+
- API documentation: See [references/chipatlas_diff_api_format.md](references/chipatlas_diff_api_format.md)
|
|
222
|
+
- Statistical methods: See [references/diff_analysis_methods.md](references/diff_analysis_methods.md)
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# ChIP-Atlas Diff Analysis API Format
|
|
2
|
+
|
|
3
|
+
## API Endpoint
|
|
4
|
+
|
|
5
|
+
**Base URL:** `POST https://dtn1.ddbj.nig.ac.jp/wabi/chipatlas/`
|
|
6
|
+
|
|
7
|
+
Same endpoint as enrichment analysis. The `antigenClass` parameter selects the
|
|
8
|
+
analysis mode.
|
|
9
|
+
|
|
10
|
+
## Required POST Parameters
|
|
11
|
+
|
|
12
|
+
| Parameter | Value | Description |
|
|
13
|
+
| -------------- | ----------------------- | -------------------------------------------- |
|
|
14
|
+
| `address` | `""` | Hidden but required (empty string) |
|
|
15
|
+
| `format` | `"text"` | Response format (NOT "json" like enrichment) |
|
|
16
|
+
| `result` | `"www"` | Hidden but required |
|
|
17
|
+
| `genome` | See below | Target genome assembly |
|
|
18
|
+
| `antigenClass` | `"diffbind"` or `"dmr"` | Analysis type |
|
|
19
|
+
| `cellClass` | `"empty"` | Fixed value for diff analysis |
|
|
20
|
+
| `threshold` | `"50"` | Fixed value |
|
|
21
|
+
| `typeA` | `"srx"` | Input type for group A |
|
|
22
|
+
| `bedAFile` | Newline-separated IDs | Experiment IDs for group A |
|
|
23
|
+
| `typeB` | `"srx"` | Input type for group B |
|
|
24
|
+
| `bedBFile` | Newline-separated IDs | Experiment IDs for group B |
|
|
25
|
+
| `permTime` | `"1"` | Fixed value |
|
|
26
|
+
| `title` | String | Analysis title |
|
|
27
|
+
| `descriptionA` | String | Group A description |
|
|
28
|
+
| `descriptionB` | String | Group B description |
|
|
29
|
+
|
|
30
|
+
## Valid Genomes
|
|
31
|
+
|
|
32
|
+
| Organism | Assemblies |
|
|
33
|
+
| --------- | ---------- |
|
|
34
|
+
| Human | hg38, hg19 |
|
|
35
|
+
| Mouse | mm10, mm9 |
|
|
36
|
+
| Rat | rn6 |
|
|
37
|
+
| Fruit fly | dm6, dm3 |
|
|
38
|
+
| Worm | ce11, ce10 |
|
|
39
|
+
| Yeast | sacCer3 |
|
|
40
|
+
|
|
41
|
+
## Analysis Types
|
|
42
|
+
|
|
43
|
+
| antigenClass | Method | Input Data |
|
|
44
|
+
| ------------ | -------- | ----------------------------- |
|
|
45
|
+
| `diffbind` | edgeR | ChIP-seq, ATAC-seq, DNase-seq |
|
|
46
|
+
| `dmr` | metilene | Bisulfite-seq |
|
|
47
|
+
|
|
48
|
+
## Experiment ID Formats
|
|
49
|
+
|
|
50
|
+
- **SRA:** SRX, ERX, DRX (e.g., `SRX18419259`)
|
|
51
|
+
- **GEO:** GSM (e.g., `GSM6765200`)
|
|
52
|
+
- Minimum 2 experiments per group
|
|
53
|
+
|
|
54
|
+
## Response Format
|
|
55
|
+
|
|
56
|
+
### Initial Submission (format=text)
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
requestId wabi_chipatlas_2024-0124-1556-59-199-173766
|
|
60
|
+
parameters null
|
|
61
|
+
current-time 2024-01-24 15:56:59
|
|
62
|
+
start-time
|
|
63
|
+
current-state
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Parse `requestId` from the first line (tab-separated key-value).
|
|
67
|
+
|
|
68
|
+
### Status Polling
|
|
69
|
+
|
|
70
|
+
**URL:** `GET {BASE_URL}{requestId}?info=status`
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
status: running
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
or
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
status: finished
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Result Retrieval
|
|
83
|
+
|
|
84
|
+
**URL:** `GET {BASE_URL}{requestId}?info=result&format=zip`
|
|
85
|
+
|
|
86
|
+
Returns a ZIP archive. Files are inside a `wabi_result/` subdirectory:
|
|
87
|
+
|
|
88
|
+
| File | Format | Purpose |
|
|
89
|
+
| --------------------- | ----------- | -------------------------------------------------------------------------- |
|
|
90
|
+
| `wabi_result.bed` | 8-col TSV | Main results: chrom, start, end, counts_A, counts_B, logFC, pvalue, qvalue |
|
|
91
|
+
| `wabi_result.igv.bed` | BED9 + GFF3 | Visualization in IGV (color-coded by direction) |
|
|
92
|
+
| `wabi_result.log` | Text | Analysis processing log (contains WABI_ID, sample info) |
|
|
93
|
+
| `wabi_result.xml` | XML | IGV session file (loads BigWig tracks + regions) |
|
|
94
|
+
| `README.md` | Markdown | Description of downloaded files |
|
|
95
|
+
|
|
96
|
+
**Note:** The main `.bed` file is NOT standard BED9 — it has 8 columns with
|
|
97
|
+
statistical data. See [output_format.md](output_format.md) for detailed column
|
|
98
|
+
definitions.
|
|
99
|
+
|
|
100
|
+
## Key Differences from Enrichment API
|
|
101
|
+
|
|
102
|
+
1. `format` is `"text"` not `"json"` — response must be parsed as text
|
|
103
|
+
2. `cellClass` is always `"empty"` — no cell type filtering
|
|
104
|
+
3. Both `bedAFile` and `bedBFile` contain experiment IDs (not gene lists)
|
|
105
|
+
4. Results are ZIP (not TSV) — requires binary download and extraction
|
|
106
|
+
5. Typical runtime is 2-10 minutes (longer than enrichment)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Diff Analysis Statistical Methods
|
|
2
|
+
|
|
3
|
+
## Differential Peak Regions (DPR) — edgeR
|
|
4
|
+
|
|
5
|
+
### Pipeline
|
|
6
|
+
|
|
7
|
+
1. **Data retrieval:** BigWig and BED files retrieved from ChIP-Atlas based on
|
|
8
|
+
submitted experiment IDs
|
|
9
|
+
2. **Format conversion:** BigWig files converted to bedGraph format
|
|
10
|
+
3. **Coverage reconstruction:** Raw read coverage reconstructed using total
|
|
11
|
+
mapped read counts
|
|
12
|
+
4. **Genome segmentation:** Genome segmented based on peak regions from query
|
|
13
|
+
datasets
|
|
14
|
+
5. **Count matrix:** Read counts aggregated into m × n matrix (m regions × n
|
|
15
|
+
experiments)
|
|
16
|
+
6. **Differential analysis:** edgeR package performs negative binomial GLM-based
|
|
17
|
+
testing
|
|
18
|
+
7. **Result formatting:** Significant regions reported in BED9 format
|
|
19
|
+
|
|
20
|
+
### Statistical Framework
|
|
21
|
+
|
|
22
|
+
- **Model:** Negative binomial generalized linear model (edgeR)
|
|
23
|
+
- **Normalization:** TMM (trimmed mean of M-values) across experiments
|
|
24
|
+
- **Test:** Quasi-likelihood F-test for differential binding
|
|
25
|
+
- **Multiple testing:** Benjamini-Hochberg FDR correction
|
|
26
|
+
|
|
27
|
+
### Conceptual Relationship to DiffBind
|
|
28
|
+
|
|
29
|
+
The approach is conceptually related to DiffBind but:
|
|
30
|
+
|
|
31
|
+
- Does NOT require BAM files (uses pre-computed BigWig/BED from ChIP-Atlas)
|
|
32
|
+
- Works directly with processed peak data
|
|
33
|
+
- Enables comparison across any public experiments without raw data download
|
|
34
|
+
|
|
35
|
+
### Reference
|
|
36
|
+
|
|
37
|
+
Robinson MD, McCarthy DJ, Smyth GK. edgeR: a Bioconductor package for
|
|
38
|
+
differential expression analysis of digital gene expression data.
|
|
39
|
+
Bioinformatics. 2010;26(1):139-140.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Differentially Methylated Regions (DMR) — metilene
|
|
44
|
+
|
|
45
|
+
### Pipeline
|
|
46
|
+
|
|
47
|
+
1. **Format conversion:** BigWig methylation data converted to bedGraph format
|
|
48
|
+
2. **Data aggregation:** Methylation levels aggregated using `metilene_input.pl`
|
|
49
|
+
3. **DMR detection:** DMRs detected using `metilene` with default parameters
|
|
50
|
+
4. **Result formatting:** Significant DMRs reported in BED9 format
|
|
51
|
+
|
|
52
|
+
### Statistical Framework
|
|
53
|
+
|
|
54
|
+
- **Method:** Circular binary segmentation + Mann-Whitney U test
|
|
55
|
+
- **Segmentation:** Identifies contiguous regions with differential methylation
|
|
56
|
+
- **Significance:** p-values from two-sample tests at each CpG position
|
|
57
|
+
- **Correction:** Multiple testing correction across detected regions
|
|
58
|
+
|
|
59
|
+
### Reference
|
|
60
|
+
|
|
61
|
+
Jühling F, et al. metilene: fast and sensitive calling of differentially
|
|
62
|
+
methylated regions from bisulfite sequencing data. Genome Res.
|
|
63
|
+
2016;26(2):256-262.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Output Format
|
|
68
|
+
|
|
69
|
+
### Main BED (wabi_result.bed) — 8-Column Custom Format
|
|
70
|
+
|
|
71
|
+
The primary result is NOT standard BED9. It has 8 columns:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
chrom chromStart chromEnd counts_A counts_B logFC pvalue qvalue
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- **counts_A/B:** Comma-separated TMM-normalized read counts per experiment
|
|
78
|
+
- **logFC:** Log2 fold change from edgeR (positive = A enriched)
|
|
79
|
+
- **pvalue:** edgeR p-value from quasi-likelihood F-test
|
|
80
|
+
- **qvalue:** Benjamini-Hochberg FDR-corrected p-value
|
|
81
|
+
|
|
82
|
+
### IGV BED (wabi_result.igv.bed) — BED9 + GFF3
|
|
83
|
+
|
|
84
|
+
Standard BED9 format for IGV visualization:
|
|
85
|
+
|
|
86
|
+
- **itemRgb:** Orange (222,131,68) = A-enriched, Blue (106,153,208) = B-enriched
|
|
87
|
+
- **name field:** URL-encoded GFF3 attributes with LogFC, P-value, Q-value
|
|
88
|
+
|
|
89
|
+
See [output_format.md](output_format.md) for complete column definitions.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# ChIP-Atlas Diff Analysis Output Formats
|
|
2
|
+
|
|
3
|
+
## Main Result BED (wabi_result.bed) — 8-Column Custom Format
|
|
4
|
+
|
|
5
|
+
The primary result file is a custom 8-column tab-separated format (NOT standard
|
|
6
|
+
BED9):
|
|
7
|
+
|
|
8
|
+
| Column | Name | Type | Description |
|
|
9
|
+
| ------ | ---------- | ----- | --------------------------------------------------------------- |
|
|
10
|
+
| 1 | chrom | str | Chromosome (e.g., chr1, chrX) |
|
|
11
|
+
| 2 | chromStart | int | Start position (0-based) |
|
|
12
|
+
| 3 | chromEnd | int | End position (exclusive) |
|
|
13
|
+
| 4 | counts_A | str | Comma-separated normalized counts for group A experiments |
|
|
14
|
+
| 5 | counts_B | str | Comma-separated normalized counts for group B experiments |
|
|
15
|
+
| 6 | logFC | float | Log2 fold change (positive = A enriched, negative = B enriched) |
|
|
16
|
+
| 7 | pvalue | float | edgeR p-value |
|
|
17
|
+
| 8 | qvalue | float | Benjamini-Hochberg corrected q-value (FDR) |
|
|
18
|
+
|
|
19
|
+
### Example Row
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
chr1 1048001 1048400 47.80,31.04,36.33 3.43,3.72,4.03 3.16 2.12e-11 7.39e-09
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This means: Region chr1:1048001-1048400 has normalized counts ~38 in group A vs
|
|
26
|
+
~3.7 in group B, logFC=3.16 (A enriched), highly significant (FDR=7.39e-09).
|
|
27
|
+
|
|
28
|
+
### Derived Columns (computed by parse_bed_results.py)
|
|
29
|
+
|
|
30
|
+
| Column | Type | Description |
|
|
31
|
+
| ------------ | ----- | ------------------------------------------------------ |
|
|
32
|
+
| region_size | int | chromEnd - chromStart (bp) |
|
|
33
|
+
| direction | str | 'A_enriched' (logFC > 0) or 'B_enriched' (logFC < 0) |
|
|
34
|
+
| significant | bool | qvalue < 0.05 |
|
|
35
|
+
| mean_count_a | float | Mean of counts_A values |
|
|
36
|
+
| mean_count_b | float | Mean of counts_B values |
|
|
37
|
+
| score | int | -log10(qvalue) \* 100, capped at 1000 (BED-compatible) |
|
|
38
|
+
|
|
39
|
+
## IGV Visualization BED (wabi_result.igv.bed) — BED9 + GFF3
|
|
40
|
+
|
|
41
|
+
The IGV file uses standard BED9 format with URL-encoded GFF3 metadata:
|
|
42
|
+
|
|
43
|
+
| Column | Name | Type | Description |
|
|
44
|
+
| ------ | ---------- | ---- | ----------------------------------------------------- |
|
|
45
|
+
| 1 | chrom | str | Chromosome |
|
|
46
|
+
| 2 | chromStart | int | Start position |
|
|
47
|
+
| 3 | chromEnd | int | End position |
|
|
48
|
+
| 4 | name | str | URL-encoded GFF3 attributes (LogFC, P-value, Q-value) |
|
|
49
|
+
| 5 | score | int | Significance score (0-1000) |
|
|
50
|
+
| 6 | strand | str | Strand (always ".") |
|
|
51
|
+
| 7 | thickStart | int | Display start (= chromStart) |
|
|
52
|
+
| 8 | thickEnd | int | Display end (= chromEnd) |
|
|
53
|
+
| 9 | itemRgb | str | RGB color indicating direction |
|
|
54
|
+
|
|
55
|
+
### Direction from itemRgb Color
|
|
56
|
+
|
|
57
|
+
| Color | RGB | Direction |
|
|
58
|
+
| ------ | ----------- | ------------------------------------ |
|
|
59
|
+
| Orange | 222,131,68 | Enriched in Group A (positive logFC) |
|
|
60
|
+
| Blue | 106,153,208 | Enriched in Group B (negative logFC) |
|
|
61
|
+
|
|
62
|
+
## Region Size Interpretation
|
|
63
|
+
|
|
64
|
+
| Size Range | Typical Feature |
|
|
65
|
+
| --------------- | ----------------------------------------- |
|
|
66
|
+
| 100-500 bp | Transcription factor binding sites |
|
|
67
|
+
| 500-2,000 bp | Enhancers, narrow histone marks (H3K4me3) |
|
|
68
|
+
| 2,000-10,000 bp | Broad histone marks (H3K27me3, H3K36me3) |
|
|
69
|
+
| >10,000 bp | Super-enhancers, large chromatin domains |
|
|
70
|
+
|
|
71
|
+
## IGV Visualization
|
|
72
|
+
|
|
73
|
+
1. Open IGV and load the matching genome (e.g., hg38)
|
|
74
|
+
2. **Option A:** File → Open Session → select `wabi_result.xml` (loads
|
|
75
|
+
everything)
|
|
76
|
+
3. **Option B:** File → Load from File → select `wabi_result.igv.bed` (regions
|
|
77
|
+
only)
|
|
78
|
+
4. Regions appear colored orange (A-enriched) or blue (B-enriched)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# chip-atlas-diff-analysis scripts package
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Annotate differential regions with nearest/overlapping genes via UCSC REST API.
|
|
3
|
+
|
|
4
|
+
Uses the UCSC Genome Browser REST API to find genes overlapping or near
|
|
5
|
+
each genomic region. Requires internet (same as ChIP-Atlas API dependency).
|
|
6
|
+
|
|
7
|
+
Graceful fallback: if UCSC API is unavailable, returns empty annotations
|
|
8
|
+
without raising errors.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import pandas as pd
|
|
12
|
+
import requests
|
|
13
|
+
|
|
14
|
+
UCSC_API_URL = "https://api.genome.ucsc.edu/getData/track"
|
|
15
|
+
FLANK_BP = 5000
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def annotate_nearest_genes(df, genome="hg38", max_regions=50):
|
|
19
|
+
"""
|
|
20
|
+
Annotate regions with overlapping/nearest gene symbols via UCSC API.
|
|
21
|
+
|
|
22
|
+
Parameters
|
|
23
|
+
----------
|
|
24
|
+
df : pd.DataFrame
|
|
25
|
+
DataFrame with chrom, chromStart, chromEnd columns.
|
|
26
|
+
Should be pre-sorted by significance (top regions first).
|
|
27
|
+
genome : str
|
|
28
|
+
UCSC genome assembly (hg38, mm10, etc.)
|
|
29
|
+
max_regions : int
|
|
30
|
+
Maximum number of regions to annotate (default: 50).
|
|
31
|
+
|
|
32
|
+
Returns
|
|
33
|
+
-------
|
|
34
|
+
pd.Series
|
|
35
|
+
Gene annotations indexed to match df. Each entry is a string
|
|
36
|
+
like "SBF2" (overlapping) or "SBF2 (+2.1kb)" (nearest within flank).
|
|
37
|
+
Empty string for unannotated regions.
|
|
38
|
+
"""
|
|
39
|
+
annotations = pd.Series("", index=df.index)
|
|
40
|
+
|
|
41
|
+
regions_to_query = df.head(max_regions)
|
|
42
|
+
if len(regions_to_query) == 0:
|
|
43
|
+
return annotations
|
|
44
|
+
|
|
45
|
+
print(f" Annotating top {len(regions_to_query)} regions with nearest genes (UCSC API)...")
|
|
46
|
+
|
|
47
|
+
n_annotated = 0
|
|
48
|
+
n_failed = 0
|
|
49
|
+
|
|
50
|
+
for idx, row in regions_to_query.iterrows():
|
|
51
|
+
try:
|
|
52
|
+
gene_str = _query_genes_for_region(
|
|
53
|
+
row["chrom"],
|
|
54
|
+
int(row["chromStart"]),
|
|
55
|
+
int(row["chromEnd"]),
|
|
56
|
+
genome=genome,
|
|
57
|
+
)
|
|
58
|
+
if gene_str:
|
|
59
|
+
annotations.at[idx] = gene_str
|
|
60
|
+
n_annotated += 1
|
|
61
|
+
except Exception:
|
|
62
|
+
n_failed += 1
|
|
63
|
+
if n_failed >= 3:
|
|
64
|
+
print(f" Warning: UCSC API unavailable ({n_failed} failures). "
|
|
65
|
+
f"Skipping remaining gene annotations.")
|
|
66
|
+
break
|
|
67
|
+
|
|
68
|
+
print(f" Annotated {n_annotated}/{len(regions_to_query)} regions with gene symbols")
|
|
69
|
+
return annotations
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _query_genes_for_region(chrom, start, end, genome="hg38"):
|
|
73
|
+
"""
|
|
74
|
+
Query UCSC REST API for genes overlapping or near a region.
|
|
75
|
+
|
|
76
|
+
Returns
|
|
77
|
+
-------
|
|
78
|
+
str
|
|
79
|
+
Gene symbol(s) or empty string.
|
|
80
|
+
Direct overlap: "GENE1, GENE2"
|
|
81
|
+
Nearest within flank: "GENE1 (+2.1kb)"
|
|
82
|
+
"""
|
|
83
|
+
# First: check for direct overlap
|
|
84
|
+
genes = _fetch_gene_symbols(chrom, start, end, genome)
|
|
85
|
+
if genes:
|
|
86
|
+
return ", ".join(sorted(genes))
|
|
87
|
+
|
|
88
|
+
# Second: expand window and find nearest
|
|
89
|
+
expanded_start = max(0, start - FLANK_BP)
|
|
90
|
+
expanded_end = end + FLANK_BP
|
|
91
|
+
records = _fetch_gene_records(chrom, expanded_start, expanded_end, genome)
|
|
92
|
+
|
|
93
|
+
if not records:
|
|
94
|
+
return ""
|
|
95
|
+
|
|
96
|
+
# Find the closest gene by distance to region midpoint
|
|
97
|
+
region_mid = (start + end) / 2
|
|
98
|
+
best_gene = None
|
|
99
|
+
best_dist = float("inf")
|
|
100
|
+
|
|
101
|
+
for rec in records:
|
|
102
|
+
tx_start = rec.get("txStart", 0)
|
|
103
|
+
tx_end = rec.get("txEnd", 0)
|
|
104
|
+
gene_mid = (tx_start + tx_end) / 2
|
|
105
|
+
dist = abs(region_mid - gene_mid)
|
|
106
|
+
name2 = rec.get("name2", "")
|
|
107
|
+
if name2 and dist < best_dist:
|
|
108
|
+
best_dist = dist
|
|
109
|
+
best_gene = name2
|
|
110
|
+
|
|
111
|
+
if best_gene and best_dist > 0:
|
|
112
|
+
dist_kb = best_dist / 1000
|
|
113
|
+
return f"{best_gene} ({dist_kb:+.1f}kb)"
|
|
114
|
+
elif best_gene:
|
|
115
|
+
return best_gene
|
|
116
|
+
|
|
117
|
+
return ""
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def _fetch_gene_symbols(chrom, start, end, genome):
|
|
121
|
+
"""Fetch unique gene symbols overlapping a region."""
|
|
122
|
+
records = _fetch_gene_records(chrom, start, end, genome)
|
|
123
|
+
symbols = set()
|
|
124
|
+
for rec in records:
|
|
125
|
+
name2 = rec.get("name2", "")
|
|
126
|
+
if name2:
|
|
127
|
+
symbols.add(name2)
|
|
128
|
+
return symbols
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _fetch_gene_records(chrom, start, end, genome):
|
|
132
|
+
"""Fetch raw gene records from UCSC REST API."""
|
|
133
|
+
url = (
|
|
134
|
+
f"{UCSC_API_URL}?genome={genome};track=ncbiRefSeq;"
|
|
135
|
+
f"chrom={chrom};start={int(start)};end={int(end)}"
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
try:
|
|
139
|
+
response = requests.get(url, timeout=10)
|
|
140
|
+
response.raise_for_status()
|
|
141
|
+
data = response.json()
|
|
142
|
+
return data.get("ncbiRefSeq", [])
|
|
143
|
+
except (requests.RequestException, ValueError, KeyError):
|
|
144
|
+
return []
|