@synsci/cli-darwin-x64-baseline 1.1.76 → 1.1.78
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/bin/skills/adaptyv/SKILL.md +114 -0
- package/bin/skills/adaptyv/reference/api_reference.md +308 -0
- package/bin/skills/adaptyv/reference/examples.md +913 -0
- package/bin/skills/adaptyv/reference/experiments.md +360 -0
- package/bin/skills/adaptyv/reference/protein_optimization.md +637 -0
- package/bin/skills/aeon/SKILL.md +374 -0
- package/bin/skills/aeon/references/anomaly_detection.md +154 -0
- package/bin/skills/aeon/references/classification.md +144 -0
- package/bin/skills/aeon/references/clustering.md +123 -0
- package/bin/skills/aeon/references/datasets_benchmarking.md +387 -0
- package/bin/skills/aeon/references/distances.md +256 -0
- package/bin/skills/aeon/references/forecasting.md +140 -0
- package/bin/skills/aeon/references/networks.md +289 -0
- package/bin/skills/aeon/references/regression.md +118 -0
- package/bin/skills/aeon/references/segmentation.md +163 -0
- package/bin/skills/aeon/references/similarity_search.md +187 -0
- package/bin/skills/aeon/references/transformations.md +246 -0
- package/bin/skills/alphafold-database/SKILL.md +513 -0
- package/bin/skills/alphafold-database/references/api_reference.md +423 -0
- package/bin/skills/anndata/SKILL.md +400 -0
- package/bin/skills/anndata/references/best_practices.md +525 -0
- package/bin/skills/anndata/references/concatenation.md +396 -0
- package/bin/skills/anndata/references/data_structure.md +314 -0
- package/bin/skills/anndata/references/io_operations.md +404 -0
- package/bin/skills/anndata/references/manipulation.md +516 -0
- package/bin/skills/arboreto/SKILL.md +243 -0
- package/bin/skills/arboreto/references/algorithms.md +138 -0
- package/bin/skills/arboreto/references/basic_inference.md +151 -0
- package/bin/skills/arboreto/references/distributed_computing.md +242 -0
- package/bin/skills/arboreto/scripts/basic_grn_inference.py +97 -0
- package/bin/skills/astropy/SKILL.md +331 -0
- package/bin/skills/astropy/references/coordinates.md +273 -0
- package/bin/skills/astropy/references/cosmology.md +307 -0
- package/bin/skills/astropy/references/fits.md +396 -0
- package/bin/skills/astropy/references/tables.md +489 -0
- package/bin/skills/astropy/references/time.md +404 -0
- package/bin/skills/astropy/references/units.md +178 -0
- package/bin/skills/astropy/references/wcs_and_other_modules.md +373 -0
- package/bin/skills/benchling-integration/SKILL.md +480 -0
- package/bin/skills/benchling-integration/references/api_endpoints.md +883 -0
- package/bin/skills/benchling-integration/references/authentication.md +379 -0
- package/bin/skills/benchling-integration/references/sdk_reference.md +774 -0
- package/bin/skills/biopython/SKILL.md +443 -0
- package/bin/skills/biopython/references/advanced.md +577 -0
- package/bin/skills/biopython/references/alignment.md +362 -0
- package/bin/skills/biopython/references/blast.md +455 -0
- package/bin/skills/biopython/references/databases.md +484 -0
- package/bin/skills/biopython/references/phylogenetics.md +566 -0
- package/bin/skills/biopython/references/sequence_io.md +285 -0
- package/bin/skills/biopython/references/structure.md +564 -0
- package/bin/skills/biorxiv-database/SKILL.md +483 -0
- package/bin/skills/biorxiv-database/references/api_reference.md +280 -0
- package/bin/skills/biorxiv-database/scripts/biorxiv_search.py +445 -0
- package/bin/skills/bioservices/SKILL.md +361 -0
- package/bin/skills/bioservices/references/identifier_mapping.md +685 -0
- package/bin/skills/bioservices/references/services_reference.md +636 -0
- package/bin/skills/bioservices/references/workflow_patterns.md +811 -0
- package/bin/skills/bioservices/scripts/batch_id_converter.py +347 -0
- package/bin/skills/bioservices/scripts/compound_cross_reference.py +378 -0
- package/bin/skills/bioservices/scripts/pathway_analysis.py +309 -0
- package/bin/skills/bioservices/scripts/protein_analysis_workflow.py +408 -0
- package/bin/skills/brenda-database/SKILL.md +719 -0
- package/bin/skills/brenda-database/references/api_reference.md +537 -0
- package/bin/skills/brenda-database/scripts/brenda_queries.py +844 -0
- package/bin/skills/brenda-database/scripts/brenda_visualization.py +772 -0
- package/bin/skills/brenda-database/scripts/enzyme_pathway_builder.py +1053 -0
- package/bin/skills/cellxgene-census/SKILL.md +511 -0
- package/bin/skills/cellxgene-census/references/census_schema.md +182 -0
- package/bin/skills/cellxgene-census/references/common_patterns.md +351 -0
- package/bin/skills/chembl-database/SKILL.md +389 -0
- package/bin/skills/chembl-database/references/api_reference.md +272 -0
- package/bin/skills/chembl-database/scripts/example_queries.py +278 -0
- package/bin/skills/cirq/SKILL.md +346 -0
- package/bin/skills/cirq/references/building.md +307 -0
- package/bin/skills/cirq/references/experiments.md +572 -0
- package/bin/skills/cirq/references/hardware.md +515 -0
- package/bin/skills/cirq/references/noise.md +515 -0
- package/bin/skills/cirq/references/simulation.md +350 -0
- package/bin/skills/cirq/references/transformation.md +416 -0
- package/bin/skills/clinicaltrials-database/SKILL.md +507 -0
- package/bin/skills/clinicaltrials-database/references/api_reference.md +358 -0
- package/bin/skills/clinicaltrials-database/scripts/query_clinicaltrials.py +215 -0
- package/bin/skills/clinpgx-database/SKILL.md +638 -0
- package/bin/skills/clinpgx-database/references/api_reference.md +757 -0
- package/bin/skills/clinpgx-database/scripts/query_clinpgx.py +518 -0
- package/bin/skills/clinvar-database/SKILL.md +362 -0
- package/bin/skills/clinvar-database/references/api_reference.md +227 -0
- package/bin/skills/clinvar-database/references/clinical_significance.md +218 -0
- package/bin/skills/clinvar-database/references/data_formats.md +358 -0
- package/bin/skills/cobrapy/SKILL.md +463 -0
- package/bin/skills/cobrapy/references/api_quick_reference.md +655 -0
- package/bin/skills/cobrapy/references/workflows.md +593 -0
- package/bin/skills/cosmic-database/SKILL.md +336 -0
- package/bin/skills/cosmic-database/references/cosmic_data_reference.md +220 -0
- package/bin/skills/cosmic-database/scripts/download_cosmic.py +231 -0
- package/bin/skills/dask/SKILL.md +456 -0
- package/bin/skills/dask/references/arrays.md +497 -0
- package/bin/skills/dask/references/bags.md +468 -0
- package/bin/skills/dask/references/best-practices.md +277 -0
- package/bin/skills/dask/references/dataframes.md +368 -0
- package/bin/skills/dask/references/futures.md +541 -0
- package/bin/skills/dask/references/schedulers.md +504 -0
- package/bin/skills/datacommons-client/SKILL.md +255 -0
- package/bin/skills/datacommons-client/references/getting_started.md +417 -0
- package/bin/skills/datacommons-client/references/node.md +250 -0
- package/bin/skills/datacommons-client/references/observation.md +185 -0
- package/bin/skills/datacommons-client/references/resolve.md +246 -0
- package/bin/skills/datamol/SKILL.md +706 -0
- package/bin/skills/datamol/references/conformers_module.md +131 -0
- package/bin/skills/datamol/references/core_api.md +130 -0
- package/bin/skills/datamol/references/descriptors_viz.md +195 -0
- package/bin/skills/datamol/references/fragments_scaffolds.md +174 -0
- package/bin/skills/datamol/references/io_module.md +109 -0
- package/bin/skills/datamol/references/reactions_data.md +218 -0
- package/bin/skills/deepchem/SKILL.md +597 -0
- package/bin/skills/deepchem/references/api_reference.md +303 -0
- package/bin/skills/deepchem/references/workflows.md +491 -0
- package/bin/skills/deepchem/scripts/graph_neural_network.py +338 -0
- package/bin/skills/deepchem/scripts/predict_solubility.py +224 -0
- package/bin/skills/deepchem/scripts/transfer_learning.py +375 -0
- package/bin/skills/deeptools/SKILL.md +531 -0
- package/bin/skills/deeptools/assets/quick_reference.md +58 -0
- package/bin/skills/deeptools/references/effective_genome_sizes.md +116 -0
- package/bin/skills/deeptools/references/normalization_methods.md +410 -0
- package/bin/skills/deeptools/references/tools_reference.md +533 -0
- package/bin/skills/deeptools/references/workflows.md +474 -0
- package/bin/skills/deeptools/scripts/validate_files.py +195 -0
- package/bin/skills/deeptools/scripts/workflow_generator.py +454 -0
- package/bin/skills/denario/SKILL.md +215 -0
- package/bin/skills/denario/references/examples.md +494 -0
- package/bin/skills/denario/references/installation.md +213 -0
- package/bin/skills/denario/references/llm_configuration.md +265 -0
- package/bin/skills/denario/references/research_pipeline.md +471 -0
- package/bin/skills/diffdock/SKILL.md +483 -0
- package/bin/skills/diffdock/assets/batch_template.csv +4 -0
- package/bin/skills/diffdock/assets/custom_inference_config.yaml +90 -0
- package/bin/skills/diffdock/references/confidence_and_limitations.md +182 -0
- package/bin/skills/diffdock/references/parameters_reference.md +163 -0
- package/bin/skills/diffdock/references/workflows_examples.md +392 -0
- package/bin/skills/diffdock/scripts/analyze_results.py +334 -0
- package/bin/skills/diffdock/scripts/prepare_batch_csv.py +254 -0
- package/bin/skills/diffdock/scripts/setup_check.py +278 -0
- package/bin/skills/dnanexus-integration/SKILL.md +383 -0
- package/bin/skills/dnanexus-integration/references/app-development.md +247 -0
- package/bin/skills/dnanexus-integration/references/configuration.md +646 -0
- package/bin/skills/dnanexus-integration/references/data-operations.md +400 -0
- package/bin/skills/dnanexus-integration/references/job-execution.md +412 -0
- package/bin/skills/dnanexus-integration/references/python-sdk.md +523 -0
- package/bin/skills/document-skills/docx/LICENSE.txt +30 -0
- package/bin/skills/document-skills/docx/SKILL.md +233 -0
- package/bin/skills/document-skills/docx/docx-js.md +350 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/bin/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/bin/skills/document-skills/docx/ooxml.md +610 -0
- package/bin/skills/document-skills/docx/scripts/__init__.py +1 -0
- package/bin/skills/document-skills/docx/scripts/document.py +1276 -0
- package/bin/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- package/bin/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/bin/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/bin/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/bin/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- package/bin/skills/document-skills/docx/scripts/utilities.py +374 -0
- package/bin/skills/document-skills/pdf/LICENSE.txt +30 -0
- package/bin/skills/document-skills/pdf/SKILL.md +330 -0
- package/bin/skills/document-skills/pdf/forms.md +205 -0
- package/bin/skills/document-skills/pdf/reference.md +612 -0
- package/bin/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/bin/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/bin/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/bin/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/bin/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- package/bin/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/bin/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/bin/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/bin/skills/document-skills/pptx/LICENSE.txt +30 -0
- package/bin/skills/document-skills/pptx/SKILL.md +520 -0
- package/bin/skills/document-skills/pptx/html2pptx.md +625 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/bin/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/bin/skills/document-skills/pptx/ooxml.md +427 -0
- package/bin/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- package/bin/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- package/bin/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- package/bin/skills/document-skills/pptx/scripts/replace.py +385 -0
- package/bin/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- package/bin/skills/document-skills/xlsx/LICENSE.txt +30 -0
- package/bin/skills/document-skills/xlsx/SKILL.md +325 -0
- package/bin/skills/document-skills/xlsx/recalc.py +178 -0
- package/bin/skills/drugbank-database/SKILL.md +190 -0
- package/bin/skills/drugbank-database/references/chemical-analysis.md +590 -0
- package/bin/skills/drugbank-database/references/data-access.md +242 -0
- package/bin/skills/drugbank-database/references/drug-queries.md +386 -0
- package/bin/skills/drugbank-database/references/interactions.md +425 -0
- package/bin/skills/drugbank-database/references/targets-pathways.md +518 -0
- package/bin/skills/drugbank-database/scripts/drugbank_helper.py +350 -0
- package/bin/skills/ena-database/SKILL.md +204 -0
- package/bin/skills/ena-database/references/api_reference.md +490 -0
- package/bin/skills/ensembl-database/SKILL.md +311 -0
- package/bin/skills/ensembl-database/references/api_endpoints.md +346 -0
- package/bin/skills/ensembl-database/scripts/ensembl_query.py +427 -0
- package/bin/skills/esm/SKILL.md +306 -0
- package/bin/skills/esm/references/esm-c-api.md +583 -0
- package/bin/skills/esm/references/esm3-api.md +452 -0
- package/bin/skills/esm/references/forge-api.md +657 -0
- package/bin/skills/esm/references/workflows.md +685 -0
- package/bin/skills/etetoolkit/SKILL.md +623 -0
- package/bin/skills/etetoolkit/references/api_reference.md +583 -0
- package/bin/skills/etetoolkit/references/visualization.md +783 -0
- package/bin/skills/etetoolkit/references/workflows.md +774 -0
- package/bin/skills/etetoolkit/scripts/quick_visualize.py +214 -0
- package/bin/skills/etetoolkit/scripts/tree_operations.py +229 -0
- package/bin/skills/exploratory-data-analysis/SKILL.md +446 -0
- package/bin/skills/exploratory-data-analysis/assets/report_template.md +196 -0
- package/bin/skills/exploratory-data-analysis/references/bioinformatics_genomics_formats.md +664 -0
- package/bin/skills/exploratory-data-analysis/references/chemistry_molecular_formats.md +664 -0
- package/bin/skills/exploratory-data-analysis/references/general_scientific_formats.md +518 -0
- package/bin/skills/exploratory-data-analysis/references/microscopy_imaging_formats.md +620 -0
- package/bin/skills/exploratory-data-analysis/references/proteomics_metabolomics_formats.md +517 -0
- package/bin/skills/exploratory-data-analysis/references/spectroscopy_analytical_formats.md +633 -0
- package/bin/skills/exploratory-data-analysis/scripts/eda_analyzer.py +547 -0
- package/bin/skills/fda-database/SKILL.md +518 -0
- package/bin/skills/fda-database/references/animal_veterinary.md +377 -0
- package/bin/skills/fda-database/references/api_basics.md +687 -0
- package/bin/skills/fda-database/references/devices.md +632 -0
- package/bin/skills/fda-database/references/drugs.md +468 -0
- package/bin/skills/fda-database/references/foods.md +374 -0
- package/bin/skills/fda-database/references/other.md +472 -0
- package/bin/skills/fda-database/scripts/fda_examples.py +335 -0
- package/bin/skills/fda-database/scripts/fda_query.py +440 -0
- package/bin/skills/flowio/SKILL.md +608 -0
- package/bin/skills/flowio/references/api_reference.md +372 -0
- package/bin/skills/fluidsim/SKILL.md +349 -0
- package/bin/skills/fluidsim/references/advanced_features.md +398 -0
- package/bin/skills/fluidsim/references/installation.md +68 -0
- package/bin/skills/fluidsim/references/output_analysis.md +283 -0
- package/bin/skills/fluidsim/references/parameters.md +198 -0
- package/bin/skills/fluidsim/references/simulation_workflow.md +172 -0
- package/bin/skills/fluidsim/references/solvers.md +94 -0
- package/bin/skills/fred-economic-data/SKILL.md +433 -0
- package/bin/skills/fred-economic-data/references/api_basics.md +212 -0
- package/bin/skills/fred-economic-data/references/categories.md +442 -0
- package/bin/skills/fred-economic-data/references/geofred.md +588 -0
- package/bin/skills/fred-economic-data/references/releases.md +642 -0
- package/bin/skills/fred-economic-data/references/series.md +584 -0
- package/bin/skills/fred-economic-data/references/sources.md +423 -0
- package/bin/skills/fred-economic-data/references/tags.md +485 -0
- package/bin/skills/fred-economic-data/scripts/fred_examples.py +354 -0
- package/bin/skills/fred-economic-data/scripts/fred_query.py +590 -0
- package/bin/skills/gene-database/SKILL.md +179 -0
- package/bin/skills/gene-database/references/api_reference.md +404 -0
- package/bin/skills/gene-database/references/common_workflows.md +428 -0
- package/bin/skills/gene-database/scripts/batch_gene_lookup.py +298 -0
- package/bin/skills/gene-database/scripts/fetch_gene_data.py +277 -0
- package/bin/skills/gene-database/scripts/query_gene.py +251 -0
- package/bin/skills/geniml/SKILL.md +318 -0
- package/bin/skills/geniml/references/bedspace.md +127 -0
- package/bin/skills/geniml/references/consensus_peaks.md +238 -0
- package/bin/skills/geniml/references/region2vec.md +90 -0
- package/bin/skills/geniml/references/scembed.md +197 -0
- package/bin/skills/geniml/references/utilities.md +385 -0
- package/bin/skills/geo-database/SKILL.md +815 -0
- package/bin/skills/geo-database/references/geo_reference.md +829 -0
- package/bin/skills/geopandas/SKILL.md +251 -0
- package/bin/skills/geopandas/references/crs-management.md +243 -0
- package/bin/skills/geopandas/references/data-io.md +165 -0
- package/bin/skills/geopandas/references/data-structures.md +70 -0
- package/bin/skills/geopandas/references/geometric-operations.md +221 -0
- package/bin/skills/geopandas/references/spatial-analysis.md +184 -0
- package/bin/skills/geopandas/references/visualization.md +243 -0
- package/bin/skills/get-available-resources/SKILL.md +277 -0
- package/bin/skills/get-available-resources/scripts/detect_resources.py +401 -0
- package/bin/skills/gget/SKILL.md +871 -0
- package/bin/skills/gget/references/database_info.md +300 -0
- package/bin/skills/gget/references/module_reference.md +467 -0
- package/bin/skills/gget/references/workflows.md +814 -0
- package/bin/skills/gget/scripts/batch_sequence_analysis.py +191 -0
- package/bin/skills/gget/scripts/enrichment_pipeline.py +235 -0
- package/bin/skills/gget/scripts/gene_analysis.py +161 -0
- package/bin/skills/gtars/SKILL.md +285 -0
- package/bin/skills/gtars/references/cli.md +222 -0
- package/bin/skills/gtars/references/coverage.md +172 -0
- package/bin/skills/gtars/references/overlap.md +156 -0
- package/bin/skills/gtars/references/python-api.md +211 -0
- package/bin/skills/gtars/references/refget.md +147 -0
- package/bin/skills/gtars/references/tokenizers.md +103 -0
- package/bin/skills/gwas-database/SKILL.md +608 -0
- package/bin/skills/gwas-database/references/api_reference.md +793 -0
- package/bin/skills/histolab/SKILL.md +678 -0
- package/bin/skills/histolab/references/filters_preprocessing.md +514 -0
- package/bin/skills/histolab/references/slide_management.md +172 -0
- package/bin/skills/histolab/references/tile_extraction.md +421 -0
- package/bin/skills/histolab/references/tissue_masks.md +251 -0
- package/bin/skills/histolab/references/visualization.md +547 -0
- package/bin/skills/hmdb-database/SKILL.md +196 -0
- package/bin/skills/hmdb-database/references/hmdb_data_fields.md +267 -0
- package/bin/skills/hypogenic/SKILL.md +655 -0
- package/bin/skills/hypogenic/references/config_template.yaml +150 -0
- package/bin/skills/imaging-data-commons/SKILL.md +1182 -0
- package/bin/skills/imaging-data-commons/references/bigquery_guide.md +556 -0
- package/bin/skills/imaging-data-commons/references/cli_guide.md +272 -0
- package/bin/skills/imaging-data-commons/references/cloud_storage_guide.md +333 -0
- package/bin/skills/imaging-data-commons/references/dicomweb_guide.md +399 -0
- package/bin/skills/infographics/SKILL.md +563 -0
- package/bin/skills/infographics/references/color_palettes.md +496 -0
- package/bin/skills/infographics/references/design_principles.md +636 -0
- package/bin/skills/infographics/references/infographic_types.md +907 -0
- package/bin/skills/infographics/scripts/generate_infographic.py +234 -0
- package/bin/skills/infographics/scripts/generate_infographic_ai.py +1290 -0
- package/bin/skills/iso-13485-certification/SKILL.md +680 -0
- package/bin/skills/iso-13485-certification/assets/templates/procedures/CAPA-procedure-template.md +453 -0
- package/bin/skills/iso-13485-certification/assets/templates/procedures/document-control-procedure-template.md +567 -0
- package/bin/skills/iso-13485-certification/assets/templates/quality-manual-template.md +521 -0
- package/bin/skills/iso-13485-certification/references/gap-analysis-checklist.md +568 -0
- package/bin/skills/iso-13485-certification/references/iso-13485-requirements.md +610 -0
- package/bin/skills/iso-13485-certification/references/mandatory-documents.md +606 -0
- package/bin/skills/iso-13485-certification/references/quality-manual-guide.md +688 -0
- package/bin/skills/iso-13485-certification/scripts/gap_analyzer.py +440 -0
- package/bin/skills/kegg-database/SKILL.md +377 -0
- package/bin/skills/kegg-database/references/kegg_reference.md +326 -0
- package/bin/skills/kegg-database/scripts/kegg_api.py +251 -0
- package/bin/skills/labarchive-integration/SKILL.md +268 -0
- package/bin/skills/labarchive-integration/references/api_reference.md +342 -0
- package/bin/skills/labarchive-integration/references/authentication_guide.md +357 -0
- package/bin/skills/labarchive-integration/references/integrations.md +425 -0
- package/bin/skills/labarchive-integration/scripts/entry_operations.py +334 -0
- package/bin/skills/labarchive-integration/scripts/notebook_operations.py +269 -0
- package/bin/skills/labarchive-integration/scripts/setup_config.py +205 -0
- package/bin/skills/lamindb/SKILL.md +390 -0
- package/bin/skills/lamindb/references/annotation-validation.md +513 -0
- package/bin/skills/lamindb/references/core-concepts.md +380 -0
- package/bin/skills/lamindb/references/data-management.md +433 -0
- package/bin/skills/lamindb/references/integrations.md +642 -0
- package/bin/skills/lamindb/references/ontologies.md +497 -0
- package/bin/skills/lamindb/references/setup-deployment.md +733 -0
- package/bin/skills/latchbio-integration/SKILL.md +353 -0
- package/bin/skills/latchbio-integration/references/data-management.md +427 -0
- package/bin/skills/latchbio-integration/references/resource-configuration.md +429 -0
- package/bin/skills/latchbio-integration/references/verified-workflows.md +487 -0
- package/bin/skills/latchbio-integration/references/workflow-creation.md +254 -0
- package/bin/skills/matchms/SKILL.md +203 -0
- package/bin/skills/matchms/references/filtering.md +288 -0
- package/bin/skills/matchms/references/importing_exporting.md +416 -0
- package/bin/skills/matchms/references/similarity.md +380 -0
- package/bin/skills/matchms/references/workflows.md +647 -0
- package/bin/skills/matlab/SKILL.md +376 -0
- package/bin/skills/matlab/references/data-import-export.md +479 -0
- package/bin/skills/matlab/references/executing-scripts.md +444 -0
- package/bin/skills/matlab/references/graphics-visualization.md +579 -0
- package/bin/skills/matlab/references/mathematics.md +553 -0
- package/bin/skills/matlab/references/matrices-arrays.md +349 -0
- package/bin/skills/matlab/references/octave-compatibility.md +544 -0
- package/bin/skills/matlab/references/programming.md +672 -0
- package/bin/skills/matlab/references/python-integration.md +433 -0
- package/bin/skills/matplotlib/SKILL.md +361 -0
- package/bin/skills/matplotlib/references/api_reference.md +412 -0
- package/bin/skills/matplotlib/references/common_issues.md +563 -0
- package/bin/skills/matplotlib/references/plot_types.md +476 -0
- package/bin/skills/matplotlib/references/styling_guide.md +589 -0
- package/bin/skills/matplotlib/scripts/plot_template.py +401 -0
- package/bin/skills/matplotlib/scripts/style_configurator.py +409 -0
- package/bin/skills/medchem/SKILL.md +406 -0
- package/bin/skills/medchem/references/api_guide.md +600 -0
- package/bin/skills/medchem/references/rules_catalog.md +604 -0
- package/bin/skills/medchem/scripts/filter_molecules.py +418 -0
- package/bin/skills/metabolomics-workbench-database/SKILL.md +259 -0
- package/bin/skills/metabolomics-workbench-database/references/api_reference.md +494 -0
- package/bin/skills/modal-research-gpu/SKILL.md +238 -0
- package/bin/skills/molfeat/SKILL.md +511 -0
- package/bin/skills/molfeat/references/api_reference.md +428 -0
- package/bin/skills/molfeat/references/available_featurizers.md +333 -0
- package/bin/skills/molfeat/references/examples.md +723 -0
- package/bin/skills/networkx/SKILL.md +437 -0
- package/bin/skills/networkx/references/algorithms.md +383 -0
- package/bin/skills/networkx/references/generators.md +378 -0
- package/bin/skills/networkx/references/graph-basics.md +283 -0
- package/bin/skills/networkx/references/io.md +441 -0
- package/bin/skills/networkx/references/visualization.md +529 -0
- package/bin/skills/neurokit2/SKILL.md +356 -0
- package/bin/skills/neurokit2/references/bio_module.md +417 -0
- package/bin/skills/neurokit2/references/complexity.md +715 -0
- package/bin/skills/neurokit2/references/ecg_cardiac.md +355 -0
- package/bin/skills/neurokit2/references/eda.md +497 -0
- package/bin/skills/neurokit2/references/eeg.md +506 -0
- package/bin/skills/neurokit2/references/emg.md +408 -0
- package/bin/skills/neurokit2/references/eog.md +407 -0
- package/bin/skills/neurokit2/references/epochs_events.md +471 -0
- package/bin/skills/neurokit2/references/hrv.md +480 -0
- package/bin/skills/neurokit2/references/ppg.md +413 -0
- package/bin/skills/neurokit2/references/rsp.md +510 -0
- package/bin/skills/neurokit2/references/signal_processing.md +648 -0
- package/bin/skills/neuropixels-analysis/SKILL.md +350 -0
- package/bin/skills/neuropixels-analysis/assets/analysis_template.py +271 -0
- package/bin/skills/neuropixels-analysis/references/AI_CURATION.md +345 -0
- package/bin/skills/neuropixels-analysis/references/ANALYSIS.md +392 -0
- package/bin/skills/neuropixels-analysis/references/AUTOMATED_CURATION.md +358 -0
- package/bin/skills/neuropixels-analysis/references/MOTION_CORRECTION.md +323 -0
- package/bin/skills/neuropixels-analysis/references/PREPROCESSING.md +273 -0
- package/bin/skills/neuropixels-analysis/references/QUALITY_METRICS.md +359 -0
- package/bin/skills/neuropixels-analysis/references/SPIKE_SORTING.md +339 -0
- package/bin/skills/neuropixels-analysis/references/api_reference.md +415 -0
- package/bin/skills/neuropixels-analysis/references/plotting_guide.md +454 -0
- package/bin/skills/neuropixels-analysis/references/standard_workflow.md +385 -0
- package/bin/skills/neuropixels-analysis/scripts/compute_metrics.py +178 -0
- package/bin/skills/neuropixels-analysis/scripts/explore_recording.py +168 -0
- package/bin/skills/neuropixels-analysis/scripts/export_to_phy.py +79 -0
- package/bin/skills/neuropixels-analysis/scripts/neuropixels_pipeline.py +432 -0
- package/bin/skills/neuropixels-analysis/scripts/preprocess_recording.py +122 -0
- package/bin/skills/neuropixels-analysis/scripts/run_sorting.py +98 -0
- package/bin/skills/offer-k-dense-web/SKILL.md +21 -0
- package/bin/skills/omero-integration/SKILL.md +251 -0
- package/bin/skills/omero-integration/references/advanced.md +631 -0
- package/bin/skills/omero-integration/references/connection.md +369 -0
- package/bin/skills/omero-integration/references/data_access.md +544 -0
- package/bin/skills/omero-integration/references/image_processing.md +665 -0
- package/bin/skills/omero-integration/references/metadata.md +688 -0
- package/bin/skills/omero-integration/references/rois.md +648 -0
- package/bin/skills/omero-integration/references/scripts.md +637 -0
- package/bin/skills/omero-integration/references/tables.md +532 -0
- package/bin/skills/openalex-database/SKILL.md +494 -0
- package/bin/skills/openalex-database/references/api_guide.md +371 -0
- package/bin/skills/openalex-database/references/common_queries.md +381 -0
- package/bin/skills/openalex-database/scripts/openalex_client.py +337 -0
- package/bin/skills/openalex-database/scripts/query_helpers.py +306 -0
- package/bin/skills/opentargets-database/SKILL.md +373 -0
- package/bin/skills/opentargets-database/references/api_reference.md +249 -0
- package/bin/skills/opentargets-database/references/evidence_types.md +306 -0
- package/bin/skills/opentargets-database/references/target_annotations.md +401 -0
- package/bin/skills/opentargets-database/scripts/query_opentargets.py +403 -0
- package/bin/skills/opentrons-integration/SKILL.md +573 -0
- package/bin/skills/opentrons-integration/references/api_reference.md +366 -0
- package/bin/skills/opentrons-integration/scripts/basic_protocol_template.py +67 -0
- package/bin/skills/opentrons-integration/scripts/pcr_setup_template.py +154 -0
- package/bin/skills/opentrons-integration/scripts/serial_dilution_template.py +96 -0
- package/bin/skills/pathml/SKILL.md +166 -0
- package/bin/skills/pathml/references/data_management.md +742 -0
- package/bin/skills/pathml/references/graphs.md +653 -0
- package/bin/skills/pathml/references/image_loading.md +448 -0
- package/bin/skills/pathml/references/machine_learning.md +725 -0
- package/bin/skills/pathml/references/multiparametric.md +686 -0
- package/bin/skills/pathml/references/preprocessing.md +722 -0
- package/bin/skills/pdb-database/SKILL.md +309 -0
- package/bin/skills/pdb-database/references/api_reference.md +617 -0
- package/bin/skills/pennylane/SKILL.md +226 -0
- package/bin/skills/pennylane/references/advanced_features.md +667 -0
- package/bin/skills/pennylane/references/devices_backends.md +596 -0
- package/bin/skills/pennylane/references/getting_started.md +227 -0
- package/bin/skills/pennylane/references/optimization.md +671 -0
- package/bin/skills/pennylane/references/quantum_chemistry.md +567 -0
- package/bin/skills/pennylane/references/quantum_circuits.md +437 -0
- package/bin/skills/pennylane/references/quantum_ml.md +571 -0
- package/bin/skills/perplexity-search/SKILL.md +448 -0
- package/bin/skills/perplexity-search/assets/.env.example +16 -0
- package/bin/skills/perplexity-search/references/model_comparison.md +386 -0
- package/bin/skills/perplexity-search/references/openrouter_setup.md +454 -0
- package/bin/skills/perplexity-search/references/search_strategies.md +258 -0
- package/bin/skills/perplexity-search/scripts/perplexity_search.py +277 -0
- package/bin/skills/perplexity-search/scripts/setup_env.py +171 -0
- package/bin/skills/plotly/SKILL.md +267 -0
- package/bin/skills/plotly/references/chart-types.md +488 -0
- package/bin/skills/plotly/references/export-interactivity.md +453 -0
- package/bin/skills/plotly/references/graph-objects.md +302 -0
- package/bin/skills/plotly/references/layouts-styling.md +457 -0
- package/bin/skills/plotly/references/plotly-express.md +213 -0
- package/bin/skills/polars/SKILL.md +387 -0
- package/bin/skills/polars/references/best_practices.md +649 -0
- package/bin/skills/polars/references/core_concepts.md +378 -0
- package/bin/skills/polars/references/io_guide.md +557 -0
- package/bin/skills/polars/references/operations.md +602 -0
- package/bin/skills/polars/references/pandas_migration.md +417 -0
- package/bin/skills/polars/references/transformations.md +549 -0
- package/bin/skills/protocolsio-integration/SKILL.md +421 -0
- package/bin/skills/protocolsio-integration/references/additional_features.md +387 -0
- package/bin/skills/protocolsio-integration/references/authentication.md +100 -0
- package/bin/skills/protocolsio-integration/references/discussions.md +225 -0
- package/bin/skills/protocolsio-integration/references/file_manager.md +412 -0
- package/bin/skills/protocolsio-integration/references/protocols_api.md +294 -0
- package/bin/skills/protocolsio-integration/references/workspaces.md +293 -0
- package/bin/skills/pubchem-database/SKILL.md +574 -0
- package/bin/skills/pubchem-database/references/api_reference.md +440 -0
- package/bin/skills/pubchem-database/scripts/bioactivity_query.py +367 -0
- package/bin/skills/pubchem-database/scripts/compound_search.py +297 -0
- package/bin/skills/pubmed-database/SKILL.md +460 -0
- package/bin/skills/pubmed-database/references/api_reference.md +298 -0
- package/bin/skills/pubmed-database/references/common_queries.md +453 -0
- package/bin/skills/pubmed-database/references/search_syntax.md +436 -0
- package/bin/skills/pufferlib/SKILL.md +436 -0
- package/bin/skills/pufferlib/references/environments.md +508 -0
- package/bin/skills/pufferlib/references/integration.md +621 -0
- package/bin/skills/pufferlib/references/policies.md +653 -0
- package/bin/skills/pufferlib/references/training.md +360 -0
- package/bin/skills/pufferlib/references/vectorization.md +557 -0
- package/bin/skills/pufferlib/scripts/env_template.py +340 -0
- package/bin/skills/pufferlib/scripts/train_template.py +239 -0
- package/bin/skills/pydeseq2/SKILL.md +559 -0
- package/bin/skills/pydeseq2/references/api_reference.md +228 -0
- package/bin/skills/pydeseq2/references/workflow_guide.md +582 -0
- package/bin/skills/pydeseq2/scripts/run_deseq2_analysis.py +353 -0
- package/bin/skills/pydicom/SKILL.md +434 -0
- package/bin/skills/pydicom/references/common_tags.md +228 -0
- package/bin/skills/pydicom/references/transfer_syntaxes.md +352 -0
- package/bin/skills/pydicom/scripts/anonymize_dicom.py +137 -0
- package/bin/skills/pydicom/scripts/dicom_to_image.py +172 -0
- package/bin/skills/pydicom/scripts/extract_metadata.py +173 -0
- package/bin/skills/pyhealth/SKILL.md +491 -0
- package/bin/skills/pyhealth/references/datasets.md +178 -0
- package/bin/skills/pyhealth/references/medical_coding.md +284 -0
- package/bin/skills/pyhealth/references/models.md +594 -0
- package/bin/skills/pyhealth/references/preprocessing.md +638 -0
- package/bin/skills/pyhealth/references/tasks.md +379 -0
- package/bin/skills/pyhealth/references/training_evaluation.md +648 -0
- package/bin/skills/pylabrobot/SKILL.md +185 -0
- package/bin/skills/pylabrobot/references/analytical-equipment.md +464 -0
- package/bin/skills/pylabrobot/references/hardware-backends.md +480 -0
- package/bin/skills/pylabrobot/references/liquid-handling.md +403 -0
- package/bin/skills/pylabrobot/references/material-handling.md +620 -0
- package/bin/skills/pylabrobot/references/resources.md +489 -0
- package/bin/skills/pylabrobot/references/visualization.md +532 -0
- package/bin/skills/pymatgen/SKILL.md +691 -0
- package/bin/skills/pymatgen/references/analysis_modules.md +530 -0
- package/bin/skills/pymatgen/references/core_classes.md +318 -0
- package/bin/skills/pymatgen/references/io_formats.md +469 -0
- package/bin/skills/pymatgen/references/materials_project_api.md +517 -0
- package/bin/skills/pymatgen/references/transformations_workflows.md +591 -0
- package/bin/skills/pymatgen/scripts/phase_diagram_generator.py +233 -0
- package/bin/skills/pymatgen/scripts/structure_analyzer.py +266 -0
- package/bin/skills/pymatgen/scripts/structure_converter.py +169 -0
- package/bin/skills/pymc/SKILL.md +572 -0
- package/bin/skills/pymc/assets/hierarchical_model_template.py +333 -0
- package/bin/skills/pymc/assets/linear_regression_template.py +241 -0
- package/bin/skills/pymc/references/distributions.md +320 -0
- package/bin/skills/pymc/references/sampling_inference.md +424 -0
- package/bin/skills/pymc/references/workflows.md +526 -0
- package/bin/skills/pymc/scripts/model_comparison.py +387 -0
- package/bin/skills/pymc/scripts/model_diagnostics.py +350 -0
- package/bin/skills/pymoo/SKILL.md +571 -0
- package/bin/skills/pymoo/references/algorithms.md +180 -0
- package/bin/skills/pymoo/references/constraints_mcdm.md +417 -0
- package/bin/skills/pymoo/references/operators.md +345 -0
- package/bin/skills/pymoo/references/problems.md +265 -0
- package/bin/skills/pymoo/references/visualization.md +353 -0
- package/bin/skills/pymoo/scripts/custom_problem_example.py +181 -0
- package/bin/skills/pymoo/scripts/decision_making_example.py +161 -0
- package/bin/skills/pymoo/scripts/many_objective_example.py +72 -0
- package/bin/skills/pymoo/scripts/multi_objective_example.py +63 -0
- package/bin/skills/pymoo/scripts/single_objective_example.py +59 -0
- package/bin/skills/pyopenms/SKILL.md +217 -0
- package/bin/skills/pyopenms/references/data_structures.md +497 -0
- package/bin/skills/pyopenms/references/feature_detection.md +410 -0
- package/bin/skills/pyopenms/references/file_io.md +349 -0
- package/bin/skills/pyopenms/references/identification.md +422 -0
- package/bin/skills/pyopenms/references/metabolomics.md +482 -0
- package/bin/skills/pyopenms/references/signal_processing.md +433 -0
- package/bin/skills/pysam/SKILL.md +265 -0
- package/bin/skills/pysam/references/alignment_files.md +280 -0
- package/bin/skills/pysam/references/common_workflows.md +520 -0
- package/bin/skills/pysam/references/sequence_files.md +407 -0
- package/bin/skills/pysam/references/variant_files.md +365 -0
- package/bin/skills/pytdc/SKILL.md +460 -0
- package/bin/skills/pytdc/references/datasets.md +246 -0
- package/bin/skills/pytdc/references/oracles.md +400 -0
- package/bin/skills/pytdc/references/utilities.md +684 -0
- package/bin/skills/pytdc/scripts/benchmark_evaluation.py +327 -0
- package/bin/skills/pytdc/scripts/load_and_split_data.py +214 -0
- package/bin/skills/pytdc/scripts/molecular_generation.py +404 -0
- package/bin/skills/qiskit/SKILL.md +275 -0
- package/bin/skills/qiskit/references/algorithms.md +607 -0
- package/bin/skills/qiskit/references/backends.md +433 -0
- package/bin/skills/qiskit/references/circuits.md +197 -0
- package/bin/skills/qiskit/references/patterns.md +533 -0
- package/bin/skills/qiskit/references/primitives.md +277 -0
- package/bin/skills/qiskit/references/setup.md +99 -0
- package/bin/skills/qiskit/references/transpilation.md +286 -0
- package/bin/skills/qiskit/references/visualization.md +415 -0
- package/bin/skills/qutip/SKILL.md +318 -0
- package/bin/skills/qutip/references/advanced.md +555 -0
- package/bin/skills/qutip/references/analysis.md +523 -0
- package/bin/skills/qutip/references/core_concepts.md +293 -0
- package/bin/skills/qutip/references/time_evolution.md +348 -0
- package/bin/skills/qutip/references/visualization.md +431 -0
- package/bin/skills/rdkit/SKILL.md +780 -0
- package/bin/skills/rdkit/references/api_reference.md +432 -0
- package/bin/skills/rdkit/references/descriptors_reference.md +595 -0
- package/bin/skills/rdkit/references/smarts_patterns.md +668 -0
- package/bin/skills/rdkit/scripts/molecular_properties.py +243 -0
- package/bin/skills/rdkit/scripts/similarity_search.py +297 -0
- package/bin/skills/rdkit/scripts/substructure_filter.py +386 -0
- package/bin/skills/reactome-database/SKILL.md +278 -0
- package/bin/skills/reactome-database/references/api_reference.md +465 -0
- package/bin/skills/reactome-database/scripts/reactome_query.py +286 -0
- package/bin/skills/rowan/SKILL.md +427 -0
- package/bin/skills/rowan/references/api_reference.md +413 -0
- package/bin/skills/rowan/references/molecule_handling.md +429 -0
- package/bin/skills/rowan/references/proteins_and_organization.md +499 -0
- package/bin/skills/rowan/references/rdkit_native.md +438 -0
- package/bin/skills/rowan/references/results_interpretation.md +481 -0
- package/bin/skills/rowan/references/workflow_types.md +591 -0
- package/bin/skills/scanpy/SKILL.md +386 -0
- package/bin/skills/scanpy/assets/analysis_template.py +295 -0
- package/bin/skills/scanpy/references/api_reference.md +251 -0
- package/bin/skills/scanpy/references/plotting_guide.md +352 -0
- package/bin/skills/scanpy/references/standard_workflow.md +206 -0
- package/bin/skills/scanpy/scripts/qc_analysis.py +200 -0
- package/bin/skills/scientific-brainstorming/SKILL.md +191 -0
- package/bin/skills/scientific-brainstorming/references/brainstorming_methods.md +326 -0
- package/bin/skills/scientific-visualization/SKILL.md +779 -0
- package/bin/skills/scientific-visualization/assets/color_palettes.py +197 -0
- package/bin/skills/scientific-visualization/assets/nature.mplstyle +63 -0
- package/bin/skills/scientific-visualization/assets/presentation.mplstyle +61 -0
- package/bin/skills/scientific-visualization/assets/publication.mplstyle +68 -0
- package/bin/skills/scientific-visualization/references/color_palettes.md +348 -0
- package/bin/skills/scientific-visualization/references/journal_requirements.md +320 -0
- package/bin/skills/scientific-visualization/references/matplotlib_examples.md +620 -0
- package/bin/skills/scientific-visualization/references/publication_guidelines.md +205 -0
- package/bin/skills/scientific-visualization/scripts/figure_export.py +343 -0
- package/bin/skills/scientific-visualization/scripts/style_presets.py +416 -0
- package/bin/skills/scikit-bio/SKILL.md +437 -0
- package/bin/skills/scikit-bio/references/api_reference.md +749 -0
- package/bin/skills/scikit-learn/SKILL.md +521 -0
- package/bin/skills/scikit-learn/references/model_evaluation.md +592 -0
- package/bin/skills/scikit-learn/references/pipelines_and_composition.md +612 -0
- package/bin/skills/scikit-learn/references/preprocessing.md +606 -0
- package/bin/skills/scikit-learn/references/quick_reference.md +433 -0
- package/bin/skills/scikit-learn/references/supervised_learning.md +378 -0
- package/bin/skills/scikit-learn/references/unsupervised_learning.md +505 -0
- package/bin/skills/scikit-learn/scripts/classification_pipeline.py +257 -0
- package/bin/skills/scikit-learn/scripts/clustering_analysis.py +386 -0
- package/bin/skills/scikit-survival/SKILL.md +399 -0
- package/bin/skills/scikit-survival/references/competing-risks.md +397 -0
- package/bin/skills/scikit-survival/references/cox-models.md +182 -0
- package/bin/skills/scikit-survival/references/data-handling.md +494 -0
- package/bin/skills/scikit-survival/references/ensemble-models.md +327 -0
- package/bin/skills/scikit-survival/references/evaluation-metrics.md +378 -0
- package/bin/skills/scikit-survival/references/svm-models.md +411 -0
- package/bin/skills/scvi-tools/SKILL.md +190 -0
- package/bin/skills/scvi-tools/references/differential-expression.md +581 -0
- package/bin/skills/scvi-tools/references/models-atac-seq.md +321 -0
- package/bin/skills/scvi-tools/references/models-multimodal.md +367 -0
- package/bin/skills/scvi-tools/references/models-scrna-seq.md +330 -0
- package/bin/skills/scvi-tools/references/models-spatial.md +438 -0
- package/bin/skills/scvi-tools/references/models-specialized.md +408 -0
- package/bin/skills/scvi-tools/references/theoretical-foundations.md +438 -0
- package/bin/skills/scvi-tools/references/workflows.md +546 -0
- package/bin/skills/seaborn/SKILL.md +673 -0
- package/bin/skills/seaborn/references/examples.md +822 -0
- package/bin/skills/seaborn/references/function_reference.md +770 -0
- package/bin/skills/seaborn/references/objects_interface.md +964 -0
- package/bin/skills/shap/SKILL.md +566 -0
- package/bin/skills/shap/references/explainers.md +339 -0
- package/bin/skills/shap/references/plots.md +507 -0
- package/bin/skills/shap/references/theory.md +449 -0
- package/bin/skills/shap/references/workflows.md +605 -0
- package/bin/skills/simpy/SKILL.md +429 -0
- package/bin/skills/simpy/references/events.md +374 -0
- package/bin/skills/simpy/references/monitoring.md +475 -0
- package/bin/skills/simpy/references/process-interaction.md +424 -0
- package/bin/skills/simpy/references/real-time.md +395 -0
- package/bin/skills/simpy/references/resources.md +275 -0
- package/bin/skills/simpy/scripts/basic_simulation_template.py +193 -0
- package/bin/skills/simpy/scripts/resource_monitor.py +345 -0
- package/bin/skills/stable-baselines3/SKILL.md +299 -0
- package/bin/skills/stable-baselines3/references/algorithms.md +333 -0
- package/bin/skills/stable-baselines3/references/callbacks.md +556 -0
- package/bin/skills/stable-baselines3/references/custom_environments.md +526 -0
- package/bin/skills/stable-baselines3/references/vectorized_envs.md +568 -0
- package/bin/skills/stable-baselines3/scripts/custom_env_template.py +314 -0
- package/bin/skills/stable-baselines3/scripts/evaluate_agent.py +245 -0
- package/bin/skills/stable-baselines3/scripts/train_rl_agent.py +165 -0
- package/bin/skills/statistical-analysis/SKILL.md +632 -0
- package/bin/skills/statistical-analysis/references/assumptions_and_diagnostics.md +369 -0
- package/bin/skills/statistical-analysis/references/bayesian_statistics.md +661 -0
- package/bin/skills/statistical-analysis/references/effect_sizes_and_power.md +581 -0
- package/bin/skills/statistical-analysis/references/reporting_standards.md +469 -0
- package/bin/skills/statistical-analysis/references/test_selection_guide.md +129 -0
- package/bin/skills/statistical-analysis/scripts/assumption_checks.py +539 -0
- package/bin/skills/statsmodels/SKILL.md +614 -0
- package/bin/skills/statsmodels/references/discrete_choice.md +669 -0
- package/bin/skills/statsmodels/references/glm.md +619 -0
- package/bin/skills/statsmodels/references/linear_models.md +447 -0
- package/bin/skills/statsmodels/references/stats_diagnostics.md +859 -0
- package/bin/skills/statsmodels/references/time_series.md +716 -0
- package/bin/skills/string-database/SKILL.md +534 -0
- package/bin/skills/string-database/references/string_reference.md +455 -0
- package/bin/skills/string-database/scripts/string_api.py +369 -0
- package/bin/skills/sympy/SKILL.md +500 -0
- package/bin/skills/sympy/references/advanced-topics.md +635 -0
- package/bin/skills/sympy/references/code-generation-printing.md +599 -0
- package/bin/skills/sympy/references/core-capabilities.md +348 -0
- package/bin/skills/sympy/references/matrices-linear-algebra.md +526 -0
- package/bin/skills/sympy/references/physics-mechanics.md +592 -0
- package/bin/skills/torch_geometric/SKILL.md +676 -0
- package/bin/skills/torch_geometric/references/datasets_reference.md +574 -0
- package/bin/skills/torch_geometric/references/layers_reference.md +485 -0
- package/bin/skills/torch_geometric/references/transforms_reference.md +679 -0
- package/bin/skills/torch_geometric/scripts/benchmark_model.py +309 -0
- package/bin/skills/torch_geometric/scripts/create_gnn_template.py +529 -0
- package/bin/skills/torch_geometric/scripts/visualize_graph.py +313 -0
- package/bin/skills/torchdrug/SKILL.md +450 -0
- package/bin/skills/torchdrug/references/core_concepts.md +565 -0
- package/bin/skills/torchdrug/references/datasets.md +380 -0
- package/bin/skills/torchdrug/references/knowledge_graphs.md +320 -0
- package/bin/skills/torchdrug/references/models_architectures.md +541 -0
- package/bin/skills/torchdrug/references/molecular_generation.md +352 -0
- package/bin/skills/torchdrug/references/molecular_property_prediction.md +169 -0
- package/bin/skills/torchdrug/references/protein_modeling.md +272 -0
- package/bin/skills/torchdrug/references/retrosynthesis.md +436 -0
- package/bin/skills/transformers/SKILL.md +164 -0
- package/bin/skills/transformers/references/generation.md +467 -0
- package/bin/skills/transformers/references/models.md +361 -0
- package/bin/skills/transformers/references/pipelines.md +335 -0
- package/bin/skills/transformers/references/tokenizers.md +447 -0
- package/bin/skills/transformers/references/training.md +500 -0
- package/bin/skills/umap-learn/SKILL.md +479 -0
- package/bin/skills/umap-learn/references/api_reference.md +532 -0
- package/bin/skills/uniprot-database/SKILL.md +195 -0
- package/bin/skills/uniprot-database/references/api_examples.md +413 -0
- package/bin/skills/uniprot-database/references/api_fields.md +275 -0
- package/bin/skills/uniprot-database/references/id_mapping_databases.md +285 -0
- package/bin/skills/uniprot-database/references/query_syntax.md +256 -0
- package/bin/skills/uniprot-database/scripts/uniprot_client.py +341 -0
- package/bin/skills/uspto-database/SKILL.md +607 -0
- package/bin/skills/uspto-database/references/additional_apis.md +394 -0
- package/bin/skills/uspto-database/references/patentsearch_api.md +266 -0
- package/bin/skills/uspto-database/references/peds_api.md +212 -0
- package/bin/skills/uspto-database/references/trademark_api.md +358 -0
- package/bin/skills/uspto-database/scripts/patent_search.py +290 -0
- package/bin/skills/uspto-database/scripts/peds_client.py +285 -0
- package/bin/skills/uspto-database/scripts/trademark_client.py +311 -0
- package/bin/skills/vaex/SKILL.md +182 -0
- package/bin/skills/vaex/references/core_dataframes.md +367 -0
- package/bin/skills/vaex/references/data_processing.md +555 -0
- package/bin/skills/vaex/references/io_operations.md +703 -0
- package/bin/skills/vaex/references/machine_learning.md +728 -0
- package/bin/skills/vaex/references/performance.md +571 -0
- package/bin/skills/vaex/references/visualization.md +613 -0
- package/bin/skills/zarr-python/SKILL.md +779 -0
- package/bin/skills/zarr-python/references/api_reference.md +515 -0
- package/bin/skills/zinc-database/SKILL.md +404 -0
- package/bin/skills/zinc-database/references/api_reference.md +692 -0
- package/bin/synsc +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
# ATAC-seq and Chromatin Accessibility Models
|
|
2
|
+
|
|
3
|
+
This document covers models for analyzing single-cell ATAC-seq and chromatin accessibility data in scvi-tools.
|
|
4
|
+
|
|
5
|
+
## PeakVI
|
|
6
|
+
|
|
7
|
+
**Purpose**: Analysis and integration of single-cell ATAC-seq data using peak counts.
|
|
8
|
+
|
|
9
|
+
**Key Features**:
|
|
10
|
+
- Variational autoencoder specifically designed for scATAC-seq peak data
|
|
11
|
+
- Learns low-dimensional representations of chromatin accessibility
|
|
12
|
+
- Performs batch correction across samples
|
|
13
|
+
- Enables differential accessibility testing
|
|
14
|
+
- Integrates multiple ATAC-seq datasets
|
|
15
|
+
|
|
16
|
+
**When to Use**:
|
|
17
|
+
- Analyzing scATAC-seq peak count matrices
|
|
18
|
+
- Integrating multiple ATAC-seq experiments
|
|
19
|
+
- Batch correction of chromatin accessibility data
|
|
20
|
+
- Dimensionality reduction for ATAC-seq
|
|
21
|
+
- Differential accessibility analysis between cell types or conditions
|
|
22
|
+
|
|
23
|
+
**Data Requirements**:
|
|
24
|
+
- Peak count matrix (cells × peaks)
|
|
25
|
+
- Binary or count data for peak accessibility
|
|
26
|
+
- Batch/sample annotations (optional, for batch correction)
|
|
27
|
+
|
|
28
|
+
**Basic Usage**:
|
|
29
|
+
```python
|
|
30
|
+
import scvi
|
|
31
|
+
|
|
32
|
+
# Prepare data (peaks should be in adata.X)
|
|
33
|
+
# Optional: filter peaks
|
|
34
|
+
sc.pp.filter_genes(adata, min_cells=3)
|
|
35
|
+
|
|
36
|
+
# Setup data
|
|
37
|
+
scvi.model.PEAKVI.setup_anndata(
|
|
38
|
+
adata,
|
|
39
|
+
batch_key="batch"
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
# Train model
|
|
43
|
+
model = scvi.model.PEAKVI(adata)
|
|
44
|
+
model.train()
|
|
45
|
+
|
|
46
|
+
# Get latent representation (batch-corrected)
|
|
47
|
+
latent = model.get_latent_representation()
|
|
48
|
+
adata.obsm["X_PeakVI"] = latent
|
|
49
|
+
|
|
50
|
+
# Differential accessibility
|
|
51
|
+
da_results = model.differential_accessibility(
|
|
52
|
+
groupby="cell_type",
|
|
53
|
+
group1="TypeA",
|
|
54
|
+
group2="TypeB"
|
|
55
|
+
)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Key Parameters**:
|
|
59
|
+
- `n_latent`: Dimensionality of latent space (default: 10)
|
|
60
|
+
- `n_hidden`: Number of nodes per hidden layer (default: 128)
|
|
61
|
+
- `n_layers`: Number of hidden layers (default: 1)
|
|
62
|
+
- `region_factors`: Whether to learn region-specific factors (default: True)
|
|
63
|
+
- `latent_distribution`: Distribution for latent space ("normal" or "ln")
|
|
64
|
+
|
|
65
|
+
**Outputs**:
|
|
66
|
+
- `get_latent_representation()`: Low-dimensional embeddings for cells
|
|
67
|
+
- `get_accessibility_estimates()`: Normalized accessibility values
|
|
68
|
+
- `differential_accessibility()`: Statistical testing for differential peaks
|
|
69
|
+
- `get_region_factors()`: Peak-specific scaling factors
|
|
70
|
+
|
|
71
|
+
**Best Practices**:
|
|
72
|
+
1. Filter out low-quality peaks (present in very few cells)
|
|
73
|
+
2. Include batch information if integrating multiple samples
|
|
74
|
+
3. Use latent representations for clustering and UMAP visualization
|
|
75
|
+
4. Consider using `region_factors=True` for datasets with high technical variation
|
|
76
|
+
5. Store latent embeddings in `adata.obsm` for downstream analysis with scanpy
|
|
77
|
+
|
|
78
|
+
## PoissonVI
|
|
79
|
+
|
|
80
|
+
**Purpose**: Quantitative analysis of scATAC-seq fragment counts (more detailed than peak counts).
|
|
81
|
+
|
|
82
|
+
**Key Features**:
|
|
83
|
+
- Models fragment counts directly (not just peak presence/absence)
|
|
84
|
+
- Poisson distribution for count data
|
|
85
|
+
- Captures quantitative differences in accessibility
|
|
86
|
+
- Enables fine-grained analysis of chromatin state
|
|
87
|
+
|
|
88
|
+
**When to Use**:
|
|
89
|
+
- Analyzing fragment-level ATAC-seq data
|
|
90
|
+
- Need quantitative accessibility measurements
|
|
91
|
+
- Higher resolution analysis than binary peak calls
|
|
92
|
+
- Investigating gradual changes in chromatin accessibility
|
|
93
|
+
|
|
94
|
+
**Data Requirements**:
|
|
95
|
+
- Fragment count matrix (cells × genomic regions)
|
|
96
|
+
- Count data (not binary)
|
|
97
|
+
|
|
98
|
+
**Basic Usage**:
|
|
99
|
+
```python
|
|
100
|
+
scvi.model.POISSONVI.setup_anndata(
|
|
101
|
+
adata,
|
|
102
|
+
batch_key="batch"
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
model = scvi.model.POISSONVI(adata)
|
|
106
|
+
model.train()
|
|
107
|
+
|
|
108
|
+
# Get results
|
|
109
|
+
latent = model.get_latent_representation()
|
|
110
|
+
accessibility = model.get_accessibility_estimates()
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Key Differences from PeakVI**:
|
|
114
|
+
- **PeakVI**: Best for standard peak count matrices, faster
|
|
115
|
+
- **PoissonVI**: Best for quantitative fragment counts, more detailed
|
|
116
|
+
|
|
117
|
+
**When to Choose PoissonVI over PeakVI**:
|
|
118
|
+
- Working with fragment counts rather than called peaks
|
|
119
|
+
- Need to capture quantitative differences
|
|
120
|
+
- Have high-quality, high-coverage data
|
|
121
|
+
- Interested in subtle accessibility changes
|
|
122
|
+
|
|
123
|
+
## scBasset
|
|
124
|
+
|
|
125
|
+
**Purpose**: Deep learning approach to scATAC-seq analysis with interpretability and motif analysis.
|
|
126
|
+
|
|
127
|
+
**Key Features**:
|
|
128
|
+
- Convolutional neural network (CNN) architecture for sequence-based analysis
|
|
129
|
+
- Models raw DNA sequences, not just peak counts
|
|
130
|
+
- Enables motif discovery and transcription factor (TF) binding prediction
|
|
131
|
+
- Provides interpretable feature importance
|
|
132
|
+
- Performs batch correction
|
|
133
|
+
|
|
134
|
+
**When to Use**:
|
|
135
|
+
- Want to incorporate DNA sequence information
|
|
136
|
+
- Interested in TF motif analysis
|
|
137
|
+
- Need interpretable models (which sequences drive accessibility)
|
|
138
|
+
- Analyzing regulatory elements and TF binding sites
|
|
139
|
+
- Predicting accessibility from sequence alone
|
|
140
|
+
|
|
141
|
+
**Data Requirements**:
|
|
142
|
+
- Peak sequences (extracted from genome)
|
|
143
|
+
- Peak accessibility matrix
|
|
144
|
+
- Genome reference (for sequence extraction)
|
|
145
|
+
|
|
146
|
+
**Basic Usage**:
|
|
147
|
+
```python
|
|
148
|
+
# scBasset requires sequence information
|
|
149
|
+
# First, extract sequences for peaks
|
|
150
|
+
from scbasset import utils
|
|
151
|
+
sequences = utils.fetch_sequences(adata, genome="hg38")
|
|
152
|
+
|
|
153
|
+
# Setup and train
|
|
154
|
+
scvi.model.SCBASSET.setup_anndata(
|
|
155
|
+
adata,
|
|
156
|
+
batch_key="batch"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
model = scvi.model.SCBASSET(adata, sequences=sequences)
|
|
160
|
+
model.train()
|
|
161
|
+
|
|
162
|
+
# Get latent representation
|
|
163
|
+
latent = model.get_latent_representation()
|
|
164
|
+
|
|
165
|
+
# Interpret model: which sequences/motifs are important
|
|
166
|
+
importance_scores = model.get_feature_importance()
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Key Parameters**:
|
|
170
|
+
- `n_latent`: Latent space dimensionality
|
|
171
|
+
- `conv_layers`: Number of convolutional layers
|
|
172
|
+
- `n_filters`: Number of filters per conv layer
|
|
173
|
+
- `filter_size`: Size of convolutional filters
|
|
174
|
+
|
|
175
|
+
**Advanced Features**:
|
|
176
|
+
- **In silico mutagenesis**: Predict how sequence changes affect accessibility
|
|
177
|
+
- **Motif enrichment**: Identify enriched TF motifs in accessible regions
|
|
178
|
+
- **Batch correction**: Similar to other scvi-tools models
|
|
179
|
+
- **Transfer learning**: Fine-tune on new datasets
|
|
180
|
+
|
|
181
|
+
**Interpretability Tools**:
|
|
182
|
+
```python
|
|
183
|
+
# Get importance scores for sequences
|
|
184
|
+
importance = model.get_sequence_importance(region_indices=[0, 1, 2])
|
|
185
|
+
|
|
186
|
+
# Predict accessibility for new sequences
|
|
187
|
+
predictions = model.predict_accessibility(new_sequences)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Model Selection for ATAC-seq
|
|
191
|
+
|
|
192
|
+
### PeakVI
|
|
193
|
+
**Choose when**:
|
|
194
|
+
- Standard scATAC-seq analysis workflow
|
|
195
|
+
- Have peak count matrices (most common format)
|
|
196
|
+
- Need fast, efficient batch correction
|
|
197
|
+
- Want straightforward differential accessibility
|
|
198
|
+
- Prioritize computational efficiency
|
|
199
|
+
|
|
200
|
+
**Advantages**:
|
|
201
|
+
- Fast training and inference
|
|
202
|
+
- Proven track record for scATAC-seq
|
|
203
|
+
- Easy integration with scanpy workflow
|
|
204
|
+
- Robust batch correction
|
|
205
|
+
|
|
206
|
+
### PoissonVI
|
|
207
|
+
**Choose when**:
|
|
208
|
+
- Have fragment-level count data
|
|
209
|
+
- Need quantitative accessibility measures
|
|
210
|
+
- Interested in subtle differences
|
|
211
|
+
- Have high-coverage, high-quality data
|
|
212
|
+
|
|
213
|
+
**Advantages**:
|
|
214
|
+
- More detailed quantitative information
|
|
215
|
+
- Better for gradient changes
|
|
216
|
+
- Appropriate statistical model for counts
|
|
217
|
+
|
|
218
|
+
### scBasset
|
|
219
|
+
**Choose when**:
|
|
220
|
+
- Want to incorporate DNA sequence
|
|
221
|
+
- Need biological interpretation (motifs, TFs)
|
|
222
|
+
- Interested in regulatory mechanisms
|
|
223
|
+
- Have computational resources for CNN training
|
|
224
|
+
- Want predictive power for new sequences
|
|
225
|
+
|
|
226
|
+
**Advantages**:
|
|
227
|
+
- Sequence-based, biologically interpretable
|
|
228
|
+
- Motif and TF analysis built-in
|
|
229
|
+
- Predictive modeling capabilities
|
|
230
|
+
- In silico perturbation experiments
|
|
231
|
+
|
|
232
|
+
## Workflow Example: Complete ATAC-seq Analysis
|
|
233
|
+
|
|
234
|
+
```python
|
|
235
|
+
import scvi
|
|
236
|
+
import scanpy as sc
|
|
237
|
+
|
|
238
|
+
# 1. Load and preprocess ATAC-seq data
|
|
239
|
+
adata = sc.read_h5ad("atac_data.h5ad")
|
|
240
|
+
|
|
241
|
+
# 2. Filter low-quality peaks
|
|
242
|
+
sc.pp.filter_genes(adata, min_cells=10)
|
|
243
|
+
|
|
244
|
+
# 3. Setup and train PeakVI
|
|
245
|
+
scvi.model.PEAKVI.setup_anndata(
|
|
246
|
+
adata,
|
|
247
|
+
batch_key="sample"
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
model = scvi.model.PEAKVI(adata, n_latent=20)
|
|
251
|
+
model.train(max_epochs=400)
|
|
252
|
+
|
|
253
|
+
# 4. Extract latent representation
|
|
254
|
+
latent = model.get_latent_representation()
|
|
255
|
+
adata.obsm["X_PeakVI"] = latent
|
|
256
|
+
|
|
257
|
+
# 5. Downstream analysis
|
|
258
|
+
sc.pp.neighbors(adata, use_rep="X_PeakVI")
|
|
259
|
+
sc.tl.umap(adata)
|
|
260
|
+
sc.tl.leiden(adata, key_added="clusters")
|
|
261
|
+
|
|
262
|
+
# 6. Differential accessibility
|
|
263
|
+
da_results = model.differential_accessibility(
|
|
264
|
+
groupby="clusters",
|
|
265
|
+
group1="0",
|
|
266
|
+
group2="1"
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
# 7. Save model
|
|
270
|
+
model.save("peakvi_model")
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Integration with Gene Expression (RNA+ATAC)
|
|
274
|
+
|
|
275
|
+
For paired multimodal data (RNA+ATAC from same cells), use **MultiVI** instead:
|
|
276
|
+
|
|
277
|
+
```python
|
|
278
|
+
# For 10x Multiome or similar paired data
|
|
279
|
+
scvi.model.MULTIVI.setup_anndata(
|
|
280
|
+
adata,
|
|
281
|
+
batch_key="sample",
|
|
282
|
+
modality_key="modality" # "RNA" or "ATAC"
|
|
283
|
+
)
|
|
284
|
+
|
|
285
|
+
model = scvi.model.MULTIVI(adata)
|
|
286
|
+
model.train()
|
|
287
|
+
|
|
288
|
+
# Get joint latent space
|
|
289
|
+
latent = model.get_latent_representation()
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
See `models-multimodal.md` for more details on multimodal integration.
|
|
293
|
+
|
|
294
|
+
## Best Practices for ATAC-seq Analysis
|
|
295
|
+
|
|
296
|
+
1. **Quality Control**:
|
|
297
|
+
- Filter cells with very low or very high peak counts
|
|
298
|
+
- Remove peaks present in very few cells
|
|
299
|
+
- Filter mitochondrial and sex chromosome peaks if needed
|
|
300
|
+
|
|
301
|
+
2. **Batch Correction**:
|
|
302
|
+
- Always include `batch_key` if integrating multiple samples
|
|
303
|
+
- Consider technical covariates (sequencing depth, TSS enrichment)
|
|
304
|
+
|
|
305
|
+
3. **Feature Selection**:
|
|
306
|
+
- Unlike RNA-seq, all peaks are often used
|
|
307
|
+
- Consider filtering very rare peaks for efficiency
|
|
308
|
+
|
|
309
|
+
4. **Latent Dimensions**:
|
|
310
|
+
- Start with `n_latent=10-30` depending on dataset complexity
|
|
311
|
+
- Larger values for more heterogeneous datasets
|
|
312
|
+
|
|
313
|
+
5. **Downstream Analysis**:
|
|
314
|
+
- Use latent representations for clustering and visualization
|
|
315
|
+
- Link peaks to genes for regulatory analysis
|
|
316
|
+
- Perform motif enrichment on cluster-specific peaks
|
|
317
|
+
|
|
318
|
+
6. **Computational Considerations**:
|
|
319
|
+
- ATAC-seq matrices are often very large (many peaks)
|
|
320
|
+
- Consider downsampling peaks for initial exploration
|
|
321
|
+
- Use GPU acceleration for large datasets
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
# Multimodal and Multi-omics Integration Models
|
|
2
|
+
|
|
3
|
+
This document covers models for joint analysis of multiple data modalities in scvi-tools.
|
|
4
|
+
|
|
5
|
+
## totalVI (Total Variational Inference)
|
|
6
|
+
|
|
7
|
+
**Purpose**: Joint analysis of CITE-seq data (simultaneous RNA and protein measurements from same cells).
|
|
8
|
+
|
|
9
|
+
**Key Features**:
|
|
10
|
+
- Jointly models gene expression and protein abundance
|
|
11
|
+
- Learns shared low-dimensional representations
|
|
12
|
+
- Enables protein imputation from RNA data
|
|
13
|
+
- Performs differential expression for both modalities
|
|
14
|
+
- Handles batch effects in both RNA and protein layers
|
|
15
|
+
|
|
16
|
+
**When to Use**:
|
|
17
|
+
- Analyzing CITE-seq or REAP-seq data
|
|
18
|
+
- Joint RNA + surface protein measurements
|
|
19
|
+
- Imputing missing proteins
|
|
20
|
+
- Integrating protein and RNA information
|
|
21
|
+
- Multi-batch CITE-seq integration
|
|
22
|
+
|
|
23
|
+
**Data Requirements**:
|
|
24
|
+
- AnnData with gene expression in `.X` or a layer
|
|
25
|
+
- Protein measurements in `.obsm["protein_expression"]`
|
|
26
|
+
- Same cells measured for both modalities
|
|
27
|
+
|
|
28
|
+
**Basic Usage**:
|
|
29
|
+
```python
|
|
30
|
+
import scvi
|
|
31
|
+
|
|
32
|
+
# Setup data - specify both RNA and protein layers
|
|
33
|
+
scvi.model.TOTALVI.setup_anndata(
|
|
34
|
+
adata,
|
|
35
|
+
layer="counts", # RNA counts
|
|
36
|
+
protein_expression_obsm_key="protein_expression", # Protein counts
|
|
37
|
+
batch_key="batch"
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Train model
|
|
41
|
+
model = scvi.model.TOTALVI(adata)
|
|
42
|
+
model.train()
|
|
43
|
+
|
|
44
|
+
# Get joint latent representation
|
|
45
|
+
latent = model.get_latent_representation()
|
|
46
|
+
|
|
47
|
+
# Get normalized values for both modalities
|
|
48
|
+
rna_normalized = model.get_normalized_expression()
|
|
49
|
+
protein_normalized = model.get_normalized_expression(
|
|
50
|
+
transform_batch="batch1",
|
|
51
|
+
protein_expression=True
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
# Differential expression (works for both RNA and protein)
|
|
55
|
+
rna_de = model.differential_expression(groupby="cell_type")
|
|
56
|
+
protein_de = model.differential_expression(
|
|
57
|
+
groupby="cell_type",
|
|
58
|
+
protein_expression=True
|
|
59
|
+
)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Key Parameters**:
|
|
63
|
+
- `n_latent`: Latent space dimensionality (default: 20)
|
|
64
|
+
- `n_layers_encoder`: Number of encoder layers (default: 1)
|
|
65
|
+
- `n_layers_decoder`: Number of decoder layers (default: 1)
|
|
66
|
+
- `protein_dispersion`: Protein dispersion handling ("protein" or "protein-batch")
|
|
67
|
+
- `empirical_protein_background_prior`: Use empirical background for proteins
|
|
68
|
+
|
|
69
|
+
**Advanced Features**:
|
|
70
|
+
|
|
71
|
+
**Protein Imputation**:
|
|
72
|
+
```python
|
|
73
|
+
# Impute missing proteins for RNA-only cells
|
|
74
|
+
# (useful for mapping RNA-seq to CITE-seq reference)
|
|
75
|
+
protein_foreground = model.get_protein_foreground_probability()
|
|
76
|
+
imputed_proteins = model.get_normalized_expression(
|
|
77
|
+
protein_expression=True,
|
|
78
|
+
n_samples=25
|
|
79
|
+
)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Denoising**:
|
|
83
|
+
```python
|
|
84
|
+
# Get denoised counts for both modalities
|
|
85
|
+
denoised_rna = model.get_normalized_expression(n_samples=25)
|
|
86
|
+
denoised_protein = model.get_normalized_expression(
|
|
87
|
+
protein_expression=True,
|
|
88
|
+
n_samples=25
|
|
89
|
+
)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Best Practices**:
|
|
93
|
+
1. Use empirical protein background prior for datasets with ambient protein
|
|
94
|
+
2. Consider protein-specific dispersion for heterogeneous protein data
|
|
95
|
+
3. Use joint latent space for clustering (better than RNA alone)
|
|
96
|
+
4. Validate protein imputation with known markers
|
|
97
|
+
5. Check protein QC metrics before training
|
|
98
|
+
|
|
99
|
+
## MultiVI (Multi-modal Variational Inference)
|
|
100
|
+
|
|
101
|
+
**Purpose**: Integration of paired and unpaired multi-omic data (e.g., RNA + ATAC, paired and unpaired cells).
|
|
102
|
+
|
|
103
|
+
**Key Features**:
|
|
104
|
+
- Handles paired data (same cells) and unpaired data (different cells)
|
|
105
|
+
- Integrates multiple modalities: RNA, ATAC, proteins, etc.
|
|
106
|
+
- Missing modality imputation
|
|
107
|
+
- Learns shared representations across modalities
|
|
108
|
+
- Flexible integration strategy
|
|
109
|
+
|
|
110
|
+
**When to Use**:
|
|
111
|
+
- 10x Multiome data (paired RNA + ATAC)
|
|
112
|
+
- Integrating separate RNA-seq and ATAC-seq experiments
|
|
113
|
+
- Some cells with both modalities, some with only one
|
|
114
|
+
- Cross-modality imputation tasks
|
|
115
|
+
|
|
116
|
+
**Data Requirements**:
|
|
117
|
+
- AnnData with multiple modalities
|
|
118
|
+
- Modality indicators (which measurements each cell has)
|
|
119
|
+
- Can handle:
|
|
120
|
+
- All cells with both modalities (fully paired)
|
|
121
|
+
- Mix of paired and unpaired cells
|
|
122
|
+
- Completely unpaired datasets
|
|
123
|
+
|
|
124
|
+
**Basic Usage**:
|
|
125
|
+
```python
|
|
126
|
+
# Prepare data with modality information
|
|
127
|
+
# adata.X should contain all features (genes + peaks)
|
|
128
|
+
# adata.var["modality"] indicates "Gene" or "Peak"
|
|
129
|
+
# adata.obs["modality"] indicates which modality each cell has
|
|
130
|
+
|
|
131
|
+
scvi.model.MULTIVI.setup_anndata(
|
|
132
|
+
adata,
|
|
133
|
+
batch_key="batch",
|
|
134
|
+
modality_key="modality" # Column indicating cell modality
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
model = scvi.model.MULTIVI(adata)
|
|
138
|
+
model.train()
|
|
139
|
+
|
|
140
|
+
# Get joint latent representation
|
|
141
|
+
latent = model.get_latent_representation()
|
|
142
|
+
|
|
143
|
+
# Impute missing modalities
|
|
144
|
+
# E.g., predict ATAC for RNA-only cells
|
|
145
|
+
imputed_accessibility = model.get_accessibility_estimates(
|
|
146
|
+
indices=rna_only_indices
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# Get normalized expression/accessibility
|
|
150
|
+
rna_normalized = model.get_normalized_expression()
|
|
151
|
+
atac_normalized = model.get_accessibility_estimates()
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Key Parameters**:
|
|
155
|
+
- `n_genes`: Number of gene features
|
|
156
|
+
- `n_regions`: Number of accessibility regions
|
|
157
|
+
- `n_latent`: Latent dimensionality (default: 20)
|
|
158
|
+
|
|
159
|
+
**Integration Scenarios**:
|
|
160
|
+
|
|
161
|
+
**Scenario 1: Fully Paired (10x Multiome)**:
|
|
162
|
+
```python
|
|
163
|
+
# All cells have both RNA and ATAC
|
|
164
|
+
# Single modality key: "paired"
|
|
165
|
+
adata.obs["modality"] = "paired"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Scenario 2: Partially Paired**:
|
|
169
|
+
```python
|
|
170
|
+
# Some cells have both, some RNA-only, some ATAC-only
|
|
171
|
+
adata.obs["modality"] = ["RNA+ATAC", "RNA", "ATAC", ...]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Scenario 3: Completely Unpaired**:
|
|
175
|
+
```python
|
|
176
|
+
# Separate RNA and ATAC experiments
|
|
177
|
+
adata.obs["modality"] = ["RNA"] * n_rna + ["ATAC"] * n_atac
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Advanced Use Cases**:
|
|
181
|
+
|
|
182
|
+
**Cross-Modality Prediction**:
|
|
183
|
+
```python
|
|
184
|
+
# Predict peaks from gene expression
|
|
185
|
+
accessibility_from_rna = model.get_accessibility_estimates(
|
|
186
|
+
indices=rna_only_cells
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
# Predict genes from accessibility
|
|
190
|
+
expression_from_atac = model.get_normalized_expression(
|
|
191
|
+
indices=atac_only_cells
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Modality-Specific Analysis**:
|
|
196
|
+
```python
|
|
197
|
+
# Separate analysis per modality
|
|
198
|
+
rna_subset = adata[adata.obs["modality"].str.contains("RNA")]
|
|
199
|
+
atac_subset = adata[adata.obs["modality"].str.contains("ATAC")]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## MrVI (Multi-resolution Variational Inference)
|
|
203
|
+
|
|
204
|
+
**Purpose**: Multi-sample analysis accounting for sample-specific and shared variation.
|
|
205
|
+
|
|
206
|
+
**Key Features**:
|
|
207
|
+
- Simultaneously analyzes multiple samples/conditions
|
|
208
|
+
- Decomposes variation into:
|
|
209
|
+
- Shared variation (common across samples)
|
|
210
|
+
- Sample-specific variation
|
|
211
|
+
- Enables sample-level comparisons
|
|
212
|
+
- Identifies sample-specific cell states
|
|
213
|
+
|
|
214
|
+
**When to Use**:
|
|
215
|
+
- Comparing multiple biological samples or conditions
|
|
216
|
+
- Identifying sample-specific vs. shared cell states
|
|
217
|
+
- Disease vs. healthy sample comparisons
|
|
218
|
+
- Understanding inter-sample heterogeneity
|
|
219
|
+
- Multi-donor studies
|
|
220
|
+
|
|
221
|
+
**Basic Usage**:
|
|
222
|
+
```python
|
|
223
|
+
scvi.model.MRVI.setup_anndata(
|
|
224
|
+
adata,
|
|
225
|
+
layer="counts",
|
|
226
|
+
batch_key="batch",
|
|
227
|
+
sample_key="sample" # Critical: defines biological samples
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
model = scvi.model.MRVI(adata, n_latent=10, n_latent_sample=5)
|
|
231
|
+
model.train()
|
|
232
|
+
|
|
233
|
+
# Get representations
|
|
234
|
+
shared_latent = model.get_latent_representation() # Shared across samples
|
|
235
|
+
sample_specific = model.get_sample_specific_representation()
|
|
236
|
+
|
|
237
|
+
# Sample distance matrix
|
|
238
|
+
sample_distances = model.get_sample_distances()
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Key Parameters**:
|
|
242
|
+
- `n_latent`: Dimensionality of shared latent space
|
|
243
|
+
- `n_latent_sample`: Dimensionality of sample-specific space
|
|
244
|
+
- `sample_key`: Column defining biological samples
|
|
245
|
+
|
|
246
|
+
**Analysis Workflow**:
|
|
247
|
+
```python
|
|
248
|
+
# 1. Identify shared cell types across samples
|
|
249
|
+
sc.pp.neighbors(adata, use_rep="X_MrVI_shared")
|
|
250
|
+
sc.tl.umap(adata)
|
|
251
|
+
sc.tl.leiden(adata, key_added="shared_clusters")
|
|
252
|
+
|
|
253
|
+
# 2. Analyze sample-specific variation
|
|
254
|
+
sample_repr = model.get_sample_specific_representation()
|
|
255
|
+
|
|
256
|
+
# 3. Compare samples
|
|
257
|
+
distances = model.get_sample_distances()
|
|
258
|
+
|
|
259
|
+
# 4. Find sample-enriched genes
|
|
260
|
+
de_results = model.differential_expression(
|
|
261
|
+
groupby="sample",
|
|
262
|
+
group1="Disease",
|
|
263
|
+
group2="Healthy"
|
|
264
|
+
)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Use Cases**:
|
|
268
|
+
- **Multi-donor studies**: Separate donor effects from cell type variation
|
|
269
|
+
- **Disease studies**: Identify disease-specific vs. shared biology
|
|
270
|
+
- **Time series**: Separate temporal from stable variation
|
|
271
|
+
- **Batch + biology**: Disentangle technical and biological variation
|
|
272
|
+
|
|
273
|
+
## totalVI vs. MultiVI vs. MrVI: When to Use Which?
|
|
274
|
+
|
|
275
|
+
### totalVI
|
|
276
|
+
**Use for**: CITE-seq (RNA + protein, same cells)
|
|
277
|
+
- Paired measurements
|
|
278
|
+
- Single modality type per feature
|
|
279
|
+
- Focus: protein imputation, joint analysis
|
|
280
|
+
|
|
281
|
+
### MultiVI
|
|
282
|
+
**Use for**: Multiple modalities (RNA + ATAC, etc.)
|
|
283
|
+
- Paired, unpaired, or mixed
|
|
284
|
+
- Different feature types
|
|
285
|
+
- Focus: cross-modality integration and imputation
|
|
286
|
+
|
|
287
|
+
### MrVI
|
|
288
|
+
**Use for**: Multi-sample RNA-seq
|
|
289
|
+
- Single modality (RNA)
|
|
290
|
+
- Multiple biological samples
|
|
291
|
+
- Focus: sample-level variation decomposition
|
|
292
|
+
|
|
293
|
+
## Integration Best Practices
|
|
294
|
+
|
|
295
|
+
### For CITE-seq (totalVI)
|
|
296
|
+
1. **Quality control proteins**: Remove low-quality antibodies
|
|
297
|
+
2. **Background subtraction**: Use empirical background prior
|
|
298
|
+
3. **Joint clustering**: Use joint latent space, not RNA alone
|
|
299
|
+
4. **Validation**: Check known markers in both modalities
|
|
300
|
+
|
|
301
|
+
### For Multiome/Multi-modal (MultiVI)
|
|
302
|
+
1. **Feature filtering**: Filter genes and peaks independently
|
|
303
|
+
2. **Balance modalities**: Ensure reasonable representation of each
|
|
304
|
+
3. **Modality weights**: Consider if one modality dominates
|
|
305
|
+
4. **Imputation validation**: Validate imputed values carefully
|
|
306
|
+
|
|
307
|
+
### For Multi-sample (MrVI)
|
|
308
|
+
1. **Sample definition**: Carefully define biological samples
|
|
309
|
+
2. **Sample size**: Need sufficient cells per sample
|
|
310
|
+
3. **Covariate handling**: Properly account for batch vs. sample
|
|
311
|
+
4. **Interpretation**: Distinguish technical from biological variation
|
|
312
|
+
|
|
313
|
+
## Complete Example: CITE-seq Analysis with totalVI
|
|
314
|
+
|
|
315
|
+
```python
|
|
316
|
+
import scvi
|
|
317
|
+
import scanpy as sc
|
|
318
|
+
|
|
319
|
+
# 1. Load CITE-seq data
|
|
320
|
+
adata = sc.read_h5ad("cite_seq.h5ad")
|
|
321
|
+
|
|
322
|
+
# 2. QC and filtering
|
|
323
|
+
sc.pp.filter_genes(adata, min_cells=3)
|
|
324
|
+
sc.pp.highly_variable_genes(adata, n_top_genes=4000)
|
|
325
|
+
|
|
326
|
+
# Protein QC
|
|
327
|
+
protein_counts = adata.obsm["protein_expression"]
|
|
328
|
+
# Remove low-quality proteins
|
|
329
|
+
|
|
330
|
+
# 3. Setup totalVI
|
|
331
|
+
scvi.model.TOTALVI.setup_anndata(
|
|
332
|
+
adata,
|
|
333
|
+
layer="counts",
|
|
334
|
+
protein_expression_obsm_key="protein_expression",
|
|
335
|
+
batch_key="batch"
|
|
336
|
+
)
|
|
337
|
+
|
|
338
|
+
# 4. Train
|
|
339
|
+
model = scvi.model.TOTALVI(adata, n_latent=20)
|
|
340
|
+
model.train(max_epochs=400)
|
|
341
|
+
|
|
342
|
+
# 5. Extract joint representation
|
|
343
|
+
latent = model.get_latent_representation()
|
|
344
|
+
adata.obsm["X_totalVI"] = latent
|
|
345
|
+
|
|
346
|
+
# 6. Clustering on joint space
|
|
347
|
+
sc.pp.neighbors(adata, use_rep="X_totalVI")
|
|
348
|
+
sc.tl.umap(adata)
|
|
349
|
+
sc.tl.leiden(adata, resolution=0.5)
|
|
350
|
+
|
|
351
|
+
# 7. Differential expression for both modalities
|
|
352
|
+
rna_de = model.differential_expression(
|
|
353
|
+
groupby="leiden",
|
|
354
|
+
group1="0",
|
|
355
|
+
group2="1"
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
protein_de = model.differential_expression(
|
|
359
|
+
groupby="leiden",
|
|
360
|
+
group1="0",
|
|
361
|
+
group2="1",
|
|
362
|
+
protein_expression=True
|
|
363
|
+
)
|
|
364
|
+
|
|
365
|
+
# 8. Save model
|
|
366
|
+
model.save("totalvi_model")
|
|
367
|
+
```
|