@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,397 @@
|
|
|
1
|
+
# Competing Risks Analysis
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Competing risks occur when subjects can experience one of several mutually exclusive events (event types). When one event occurs, it prevents ("competes with") the occurrence of other events.
|
|
6
|
+
|
|
7
|
+
### Examples of Competing Risks
|
|
8
|
+
|
|
9
|
+
**Medical Research:**
|
|
10
|
+
- Death from cancer vs. death from cardiovascular disease vs. death from other causes
|
|
11
|
+
- Relapse vs. death without relapse in cancer studies
|
|
12
|
+
- Different types of infections in transplant patients
|
|
13
|
+
|
|
14
|
+
**Other Applications:**
|
|
15
|
+
- Job termination: retirement vs. resignation vs. termination for cause
|
|
16
|
+
- Equipment failure: different failure modes
|
|
17
|
+
- Customer churn: different reasons for leaving
|
|
18
|
+
|
|
19
|
+
### Key Concept: Cumulative Incidence Function (CIF)
|
|
20
|
+
|
|
21
|
+
The **Cumulative Incidence Function (CIF)** represents the probability of experiencing a specific event type by time *t*, accounting for the presence of competing risks.
|
|
22
|
+
|
|
23
|
+
**CIF_k(t) = P(T ≤ t, event type = k)**
|
|
24
|
+
|
|
25
|
+
This differs from the Kaplan-Meier estimator, which would overestimate event probabilities when competing risks are present.
|
|
26
|
+
|
|
27
|
+
## When to Use Competing Risks Analysis
|
|
28
|
+
|
|
29
|
+
**Use competing risks when:**
|
|
30
|
+
- Multiple mutually exclusive event types exist
|
|
31
|
+
- Occurrence of one event prevents others
|
|
32
|
+
- Need to estimate probability of specific event types
|
|
33
|
+
- Want to understand how covariates affect different event types
|
|
34
|
+
|
|
35
|
+
**Don't use when:**
|
|
36
|
+
- Only one event type of interest (standard survival analysis)
|
|
37
|
+
- Events are not mutually exclusive (use recurrent events methods)
|
|
38
|
+
- Competing events are extremely rare (can treat as censoring)
|
|
39
|
+
|
|
40
|
+
## Cumulative Incidence with Competing Risks
|
|
41
|
+
|
|
42
|
+
### cumulative_incidence_competing_risks Function
|
|
43
|
+
|
|
44
|
+
Estimates the cumulative incidence function for each event type.
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from sksurv.nonparametric import cumulative_incidence_competing_risks
|
|
48
|
+
from sksurv.datasets import load_leukemia
|
|
49
|
+
|
|
50
|
+
# Load data with competing risks
|
|
51
|
+
X, y = load_leukemia()
|
|
52
|
+
# y has event types: 0=censored, 1=relapse, 2=death
|
|
53
|
+
|
|
54
|
+
# Compute cumulative incidence for each event type
|
|
55
|
+
# Returns: time points, CIF for event 1, CIF for event 2, ...
|
|
56
|
+
time_points, cif_1, cif_2 = cumulative_incidence_competing_risks(y)
|
|
57
|
+
|
|
58
|
+
# Plot cumulative incidence functions
|
|
59
|
+
import matplotlib.pyplot as plt
|
|
60
|
+
|
|
61
|
+
plt.figure(figsize=(10, 6))
|
|
62
|
+
plt.step(time_points, cif_1, where='post', label='Relapse', linewidth=2)
|
|
63
|
+
plt.step(time_points, cif_2, where='post', label='Death in remission', linewidth=2)
|
|
64
|
+
plt.xlabel('Time (weeks)')
|
|
65
|
+
plt.ylabel('Cumulative Incidence')
|
|
66
|
+
plt.title('Competing Risks: Relapse vs Death')
|
|
67
|
+
plt.legend()
|
|
68
|
+
plt.grid(True, alpha=0.3)
|
|
69
|
+
plt.show()
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Interpretation
|
|
73
|
+
|
|
74
|
+
- **CIF at time t**: Probability of experiencing that specific event by time t
|
|
75
|
+
- **Sum of all CIFs**: Total probability of experiencing any event (all cause)
|
|
76
|
+
- **1 - sum of CIFs**: Probability of being event-free and uncensored
|
|
77
|
+
|
|
78
|
+
## Data Format for Competing Risks
|
|
79
|
+
|
|
80
|
+
### Creating Structured Array with Event Types
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
import numpy as np
|
|
84
|
+
from sksurv.util import Surv
|
|
85
|
+
|
|
86
|
+
# Event types: 0 = censored, 1 = event type 1, 2 = event type 2
|
|
87
|
+
event_types = np.array([0, 1, 2, 1, 0, 2, 1])
|
|
88
|
+
times = np.array([10.2, 5.3, 8.1, 3.7, 12.5, 6.8, 4.2])
|
|
89
|
+
|
|
90
|
+
# Create survival array
|
|
91
|
+
# For competing risks: event=True if any event occurred
|
|
92
|
+
# Store event type separately or encode in the event field
|
|
93
|
+
y = Surv.from_arrays(
|
|
94
|
+
event=(event_types > 0), # True if any event
|
|
95
|
+
time=times
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Keep event_types for distinguishing between event types
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Converting Data with Event Types
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
import pandas as pd
|
|
105
|
+
from sksurv.util import Surv
|
|
106
|
+
|
|
107
|
+
# Assume data has: time, event_type columns
|
|
108
|
+
# event_type: 0=censored, 1=type1, 2=type2, etc.
|
|
109
|
+
|
|
110
|
+
df = pd.read_csv('competing_risks_data.csv')
|
|
111
|
+
|
|
112
|
+
# Create survival outcome
|
|
113
|
+
y = Surv.from_arrays(
|
|
114
|
+
event=(df['event_type'] > 0),
|
|
115
|
+
time=df['time']
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
# Store event types
|
|
119
|
+
event_types = df['event_type'].values
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Comparing Cumulative Incidence Between Groups
|
|
123
|
+
|
|
124
|
+
### Stratified Analysis
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
from sksurv.nonparametric import cumulative_incidence_competing_risks
|
|
128
|
+
import matplotlib.pyplot as plt
|
|
129
|
+
|
|
130
|
+
# Split by treatment group
|
|
131
|
+
mask_treatment = X['treatment'] == 'A'
|
|
132
|
+
mask_control = X['treatment'] == 'B'
|
|
133
|
+
|
|
134
|
+
y_treatment = y[mask_treatment]
|
|
135
|
+
y_control = y[mask_control]
|
|
136
|
+
|
|
137
|
+
# Compute CIF for each group
|
|
138
|
+
time_trt, cif1_trt, cif2_trt = cumulative_incidence_competing_risks(y_treatment)
|
|
139
|
+
time_ctl, cif1_ctl, cif2_ctl = cumulative_incidence_competing_risks(y_control)
|
|
140
|
+
|
|
141
|
+
# Plot comparison
|
|
142
|
+
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
|
|
143
|
+
|
|
144
|
+
# Event type 1
|
|
145
|
+
ax1.step(time_trt, cif1_trt, where='post', label='Treatment', linewidth=2)
|
|
146
|
+
ax1.step(time_ctl, cif1_ctl, where='post', label='Control', linewidth=2)
|
|
147
|
+
ax1.set_xlabel('Time')
|
|
148
|
+
ax1.set_ylabel('Cumulative Incidence')
|
|
149
|
+
ax1.set_title('Event Type 1')
|
|
150
|
+
ax1.legend()
|
|
151
|
+
ax1.grid(True, alpha=0.3)
|
|
152
|
+
|
|
153
|
+
# Event type 2
|
|
154
|
+
ax2.step(time_trt, cif2_trt, where='post', label='Treatment', linewidth=2)
|
|
155
|
+
ax2.step(time_ctl, cif2_ctl, where='post', label='Control', linewidth=2)
|
|
156
|
+
ax2.set_xlabel('Time')
|
|
157
|
+
ax2.set_ylabel('Cumulative Incidence')
|
|
158
|
+
ax2.set_title('Event Type 2')
|
|
159
|
+
ax2.legend()
|
|
160
|
+
ax2.grid(True, alpha=0.3)
|
|
161
|
+
|
|
162
|
+
plt.tight_layout()
|
|
163
|
+
plt.show()
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Statistical Testing with Competing Risks
|
|
167
|
+
|
|
168
|
+
### Gray's Test
|
|
169
|
+
|
|
170
|
+
Compare cumulative incidence functions between groups using Gray's test (available in other packages like lifelines).
|
|
171
|
+
|
|
172
|
+
```python
|
|
173
|
+
# Note: Gray's test not directly available in scikit-survival
|
|
174
|
+
# Consider using lifelines or other packages
|
|
175
|
+
|
|
176
|
+
# from lifelines.statistics import multivariate_logrank_test
|
|
177
|
+
# result = multivariate_logrank_test(times, groups, events, event_of_interest=1)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Modeling with Competing Risks
|
|
181
|
+
|
|
182
|
+
### Approach 1: Cause-Specific Hazard Models
|
|
183
|
+
|
|
184
|
+
Fit separate Cox models for each event type, treating other event types as censored.
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
from sksurv.linear_model import CoxPHSurvivalAnalysis
|
|
188
|
+
from sksurv.util import Surv
|
|
189
|
+
|
|
190
|
+
# Separate outcome for each event type
|
|
191
|
+
# Event type 1: treat type 2 as censored
|
|
192
|
+
y_event1 = Surv.from_arrays(
|
|
193
|
+
event=(event_types == 1),
|
|
194
|
+
time=times
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# Event type 2: treat type 1 as censored
|
|
198
|
+
y_event2 = Surv.from_arrays(
|
|
199
|
+
event=(event_types == 2),
|
|
200
|
+
time=times
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
# Fit cause-specific models
|
|
204
|
+
cox_event1 = CoxPHSurvivalAnalysis()
|
|
205
|
+
cox_event1.fit(X, y_event1)
|
|
206
|
+
|
|
207
|
+
cox_event2 = CoxPHSurvivalAnalysis()
|
|
208
|
+
cox_event2.fit(X, y_event2)
|
|
209
|
+
|
|
210
|
+
# Interpret coefficients for each event type
|
|
211
|
+
print("Event Type 1 (e.g., Relapse):")
|
|
212
|
+
print(cox_event1.coef_)
|
|
213
|
+
|
|
214
|
+
print("\nEvent Type 2 (e.g., Death):")
|
|
215
|
+
print(cox_event2.coef_)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Interpretation:**
|
|
219
|
+
- Separate model for each competing event
|
|
220
|
+
- Coefficients show effect on cause-specific hazard for that event type
|
|
221
|
+
- A covariate may increase risk for one event type but decrease for another
|
|
222
|
+
|
|
223
|
+
### Approach 2: Fine-Gray Sub-distribution Hazard Model
|
|
224
|
+
|
|
225
|
+
Models the cumulative incidence directly (not available directly in scikit-survival, but can use other packages).
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
# Note: Fine-Gray model not directly in scikit-survival
|
|
229
|
+
# Consider using lifelines or rpy2 to access R's cmprsk package
|
|
230
|
+
|
|
231
|
+
# from lifelines import CRCSplineFitter
|
|
232
|
+
# crc = CRCSplineFitter()
|
|
233
|
+
# crc.fit(df, event_col='event', duration_col='time')
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Practical Example: Complete Competing Risks Analysis
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
import numpy as np
|
|
240
|
+
import pandas as pd
|
|
241
|
+
import matplotlib.pyplot as plt
|
|
242
|
+
from sksurv.nonparametric import cumulative_incidence_competing_risks
|
|
243
|
+
from sksurv.linear_model import CoxPHSurvivalAnalysis
|
|
244
|
+
from sksurv.util import Surv
|
|
245
|
+
|
|
246
|
+
# Simulate competing risks data
|
|
247
|
+
np.random.seed(42)
|
|
248
|
+
n = 200
|
|
249
|
+
|
|
250
|
+
# Create features
|
|
251
|
+
age = np.random.normal(60, 10, n)
|
|
252
|
+
treatment = np.random.choice(['A', 'B'], n)
|
|
253
|
+
|
|
254
|
+
# Simulate event times and types
|
|
255
|
+
# Event types: 0=censored, 1=relapse, 2=death
|
|
256
|
+
times = np.random.exponential(100, n)
|
|
257
|
+
event_types = np.zeros(n, dtype=int)
|
|
258
|
+
|
|
259
|
+
# Higher age increases both events, treatment A reduces relapse
|
|
260
|
+
for i in range(n):
|
|
261
|
+
if times[i] < 150: # Event occurred
|
|
262
|
+
# Probability of each event type
|
|
263
|
+
p_relapse = 0.6 if treatment[i] == 'B' else 0.4
|
|
264
|
+
event_types[i] = 1 if np.random.rand() < p_relapse else 2
|
|
265
|
+
else:
|
|
266
|
+
times[i] = 150 # Censored at study end
|
|
267
|
+
|
|
268
|
+
# Create DataFrame
|
|
269
|
+
df = pd.DataFrame({
|
|
270
|
+
'time': times,
|
|
271
|
+
'event_type': event_types,
|
|
272
|
+
'age': age,
|
|
273
|
+
'treatment': treatment
|
|
274
|
+
})
|
|
275
|
+
|
|
276
|
+
# Encode treatment
|
|
277
|
+
df['treatment_A'] = (df['treatment'] == 'A').astype(int)
|
|
278
|
+
|
|
279
|
+
# 1. OVERALL CUMULATIVE INCIDENCE
|
|
280
|
+
print("=" * 60)
|
|
281
|
+
print("OVERALL CUMULATIVE INCIDENCE")
|
|
282
|
+
print("=" * 60)
|
|
283
|
+
|
|
284
|
+
y_all = Surv.from_arrays(event=(df['event_type'] > 0), time=df['time'])
|
|
285
|
+
time_points, cif_relapse, cif_death = cumulative_incidence_competing_risks(y_all)
|
|
286
|
+
|
|
287
|
+
plt.figure(figsize=(10, 6))
|
|
288
|
+
plt.step(time_points, cif_relapse, where='post', label='Relapse', linewidth=2)
|
|
289
|
+
plt.step(time_points, cif_death, where='post', label='Death', linewidth=2)
|
|
290
|
+
plt.xlabel('Time (days)')
|
|
291
|
+
plt.ylabel('Cumulative Incidence')
|
|
292
|
+
plt.title('Competing Risks: Relapse vs Death')
|
|
293
|
+
plt.legend()
|
|
294
|
+
plt.grid(True, alpha=0.3)
|
|
295
|
+
plt.show()
|
|
296
|
+
|
|
297
|
+
print(f"5-year relapse incidence: {cif_relapse[-1]:.2%}")
|
|
298
|
+
print(f"5-year death incidence: {cif_death[-1]:.2%}")
|
|
299
|
+
|
|
300
|
+
# 2. STRATIFIED BY TREATMENT
|
|
301
|
+
print("\n" + "=" * 60)
|
|
302
|
+
print("CUMULATIVE INCIDENCE BY TREATMENT")
|
|
303
|
+
print("=" * 60)
|
|
304
|
+
|
|
305
|
+
for trt in ['A', 'B']:
|
|
306
|
+
mask = df['treatment'] == trt
|
|
307
|
+
y_trt = Surv.from_arrays(
|
|
308
|
+
event=(df.loc[mask, 'event_type'] > 0),
|
|
309
|
+
time=df.loc[mask, 'time']
|
|
310
|
+
)
|
|
311
|
+
time_trt, cif1_trt, cif2_trt = cumulative_incidence_competing_risks(y_trt)
|
|
312
|
+
print(f"\nTreatment {trt}:")
|
|
313
|
+
print(f" 5-year relapse: {cif1_trt[-1]:.2%}")
|
|
314
|
+
print(f" 5-year death: {cif2_trt[-1]:.2%}")
|
|
315
|
+
|
|
316
|
+
# 3. CAUSE-SPECIFIC MODELS
|
|
317
|
+
print("\n" + "=" * 60)
|
|
318
|
+
print("CAUSE-SPECIFIC HAZARD MODELS")
|
|
319
|
+
print("=" * 60)
|
|
320
|
+
|
|
321
|
+
X = df[['age', 'treatment_A']]
|
|
322
|
+
|
|
323
|
+
# Model for relapse (event type 1)
|
|
324
|
+
y_relapse = Surv.from_arrays(
|
|
325
|
+
event=(df['event_type'] == 1),
|
|
326
|
+
time=df['time']
|
|
327
|
+
)
|
|
328
|
+
cox_relapse = CoxPHSurvivalAnalysis()
|
|
329
|
+
cox_relapse.fit(X, y_relapse)
|
|
330
|
+
|
|
331
|
+
print("\nRelapse Model:")
|
|
332
|
+
print(f" Age: HR = {np.exp(cox_relapse.coef_[0]):.3f}")
|
|
333
|
+
print(f" Treatment A: HR = {np.exp(cox_relapse.coef_[1]):.3f}")
|
|
334
|
+
|
|
335
|
+
# Model for death (event type 2)
|
|
336
|
+
y_death = Surv.from_arrays(
|
|
337
|
+
event=(df['event_type'] == 2),
|
|
338
|
+
time=df['time']
|
|
339
|
+
)
|
|
340
|
+
cox_death = CoxPHSurvivalAnalysis()
|
|
341
|
+
cox_death.fit(X, y_death)
|
|
342
|
+
|
|
343
|
+
print("\nDeath Model:")
|
|
344
|
+
print(f" Age: HR = {np.exp(cox_death.coef_[0]):.3f}")
|
|
345
|
+
print(f" Treatment A: HR = {np.exp(cox_death.coef_[1]):.3f}")
|
|
346
|
+
|
|
347
|
+
print("\n" + "=" * 60)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Important Considerations
|
|
351
|
+
|
|
352
|
+
### Censoring in Competing Risks
|
|
353
|
+
|
|
354
|
+
- **Administrative censoring**: Subject still at risk at end of study
|
|
355
|
+
- **Loss to follow-up**: Subject leaves study before event
|
|
356
|
+
- **Competing event**: Other event occurred - NOT censored for CIF, but censored for cause-specific models
|
|
357
|
+
|
|
358
|
+
### Choosing Between Cause-Specific and Sub-distribution Models
|
|
359
|
+
|
|
360
|
+
**Cause-Specific Hazard Models:**
|
|
361
|
+
- Easier to interpret
|
|
362
|
+
- Direct effect on hazard rate
|
|
363
|
+
- Better for understanding etiology
|
|
364
|
+
- Can fit with scikit-survival
|
|
365
|
+
|
|
366
|
+
**Fine-Gray Sub-distribution Models:**
|
|
367
|
+
- Models cumulative incidence directly
|
|
368
|
+
- Better for prediction and risk stratification
|
|
369
|
+
- More appropriate for clinical decision-making
|
|
370
|
+
- Requires other packages
|
|
371
|
+
|
|
372
|
+
### Common Mistakes
|
|
373
|
+
|
|
374
|
+
**Mistake 1**: Using Kaplan-Meier to estimate event-specific probabilities
|
|
375
|
+
- **Wrong**: Kaplan-Meier for event type 1, treating type 2 as censored
|
|
376
|
+
- **Correct**: Cumulative incidence function accounting for competing risks
|
|
377
|
+
|
|
378
|
+
**Mistake 2**: Ignoring competing risks when they're substantial
|
|
379
|
+
- If competing event rate > 10-20%, should use competing risks methods
|
|
380
|
+
|
|
381
|
+
**Mistake 3**: Confusing cause-specific and sub-distribution hazards
|
|
382
|
+
- They answer different questions
|
|
383
|
+
- Use appropriate model for your research question
|
|
384
|
+
|
|
385
|
+
## Summary
|
|
386
|
+
|
|
387
|
+
**Key Functions:**
|
|
388
|
+
- `cumulative_incidence_competing_risks`: Estimate CIF for each event type
|
|
389
|
+
- Fit separate Cox models for cause-specific hazards
|
|
390
|
+
- Use stratified analysis to compare groups
|
|
391
|
+
|
|
392
|
+
**Best Practices:**
|
|
393
|
+
1. Always plot cumulative incidence functions
|
|
394
|
+
2. Report both event-specific and overall incidence
|
|
395
|
+
3. Use cause-specific models in scikit-survival
|
|
396
|
+
4. Consider Fine-Gray models (other packages) for prediction
|
|
397
|
+
5. Be explicit about which events are competing vs censored
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Cox Proportional Hazards Models
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Cox proportional hazards models are semi-parametric models that relate covariates to the time of an event. The hazard function for individual *i* is expressed as:
|
|
6
|
+
|
|
7
|
+
**h_i(t) = h_0(t) × exp(β^T x_i)**
|
|
8
|
+
|
|
9
|
+
where:
|
|
10
|
+
- h_0(t) is the baseline hazard function (unspecified)
|
|
11
|
+
- β is the vector of coefficients
|
|
12
|
+
- x_i is the covariate vector for individual *i*
|
|
13
|
+
|
|
14
|
+
The key assumption is that the hazard ratio between two individuals is constant over time (proportional hazards).
|
|
15
|
+
|
|
16
|
+
## CoxPHSurvivalAnalysis
|
|
17
|
+
|
|
18
|
+
Basic Cox proportional hazards model for survival analysis.
|
|
19
|
+
|
|
20
|
+
### When to Use
|
|
21
|
+
- Standard survival analysis with censored data
|
|
22
|
+
- Need interpretable coefficients (log hazard ratios)
|
|
23
|
+
- Proportional hazards assumption holds
|
|
24
|
+
- Dataset has relatively few features
|
|
25
|
+
|
|
26
|
+
### Key Parameters
|
|
27
|
+
- `alpha`: Regularization parameter (default: 0, no regularization)
|
|
28
|
+
- `ties`: Method for handling tied event times ('breslow' or 'efron')
|
|
29
|
+
- `n_iter`: Maximum number of iterations for optimization
|
|
30
|
+
|
|
31
|
+
### Example Usage
|
|
32
|
+
```python
|
|
33
|
+
from sksurv.linear_model import CoxPHSurvivalAnalysis
|
|
34
|
+
from sksurv.datasets import load_gbsg2
|
|
35
|
+
|
|
36
|
+
# Load data
|
|
37
|
+
X, y = load_gbsg2()
|
|
38
|
+
|
|
39
|
+
# Fit Cox model
|
|
40
|
+
estimator = CoxPHSurvivalAnalysis()
|
|
41
|
+
estimator.fit(X, y)
|
|
42
|
+
|
|
43
|
+
# Get coefficients (log hazard ratios)
|
|
44
|
+
coefficients = estimator.coef_
|
|
45
|
+
|
|
46
|
+
# Predict risk scores
|
|
47
|
+
risk_scores = estimator.predict(X)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## CoxnetSurvivalAnalysis
|
|
51
|
+
|
|
52
|
+
Cox model with elastic net penalty for feature selection and regularization.
|
|
53
|
+
|
|
54
|
+
### When to Use
|
|
55
|
+
- High-dimensional data (many features)
|
|
56
|
+
- Need automatic feature selection
|
|
57
|
+
- Want to handle multicollinearity
|
|
58
|
+
- Require sparse models
|
|
59
|
+
|
|
60
|
+
### Penalty Types
|
|
61
|
+
- **Ridge (L2)**: alpha_min_ratio=1.0, l1_ratio=0
|
|
62
|
+
- Shrinks all coefficients
|
|
63
|
+
- Good when all features are relevant
|
|
64
|
+
|
|
65
|
+
- **Lasso (L1)**: l1_ratio=1.0
|
|
66
|
+
- Performs feature selection (sets coefficients to zero)
|
|
67
|
+
- Good for sparse models
|
|
68
|
+
|
|
69
|
+
- **Elastic Net**: 0 < l1_ratio < 1
|
|
70
|
+
- Combination of L1 and L2
|
|
71
|
+
- Balances feature selection and grouping
|
|
72
|
+
|
|
73
|
+
### Key Parameters
|
|
74
|
+
- `l1_ratio`: Balance between L1 and L2 penalty (0=Ridge, 1=Lasso)
|
|
75
|
+
- `alpha_min_ratio`: Ratio of smallest to largest penalty in regularization path
|
|
76
|
+
- `n_alphas`: Number of alphas along regularization path
|
|
77
|
+
- `fit_baseline_model`: Whether to fit unpenalized baseline model
|
|
78
|
+
|
|
79
|
+
### Example Usage
|
|
80
|
+
```python
|
|
81
|
+
from sksurv.linear_model import CoxnetSurvivalAnalysis
|
|
82
|
+
|
|
83
|
+
# Fit with elastic net penalty
|
|
84
|
+
estimator = CoxnetSurvivalAnalysis(l1_ratio=0.5, alpha_min_ratio=0.01)
|
|
85
|
+
estimator.fit(X, y)
|
|
86
|
+
|
|
87
|
+
# Access regularization path
|
|
88
|
+
alphas = estimator.alphas_
|
|
89
|
+
coefficients_path = estimator.coef_path_
|
|
90
|
+
|
|
91
|
+
# Predict with specific alpha
|
|
92
|
+
risk_scores = estimator.predict(X, alpha=0.1)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Cross-Validation for Alpha Selection
|
|
96
|
+
```python
|
|
97
|
+
from sklearn.model_selection import GridSearchCV
|
|
98
|
+
from sksurv.metrics import concordance_index_censored
|
|
99
|
+
|
|
100
|
+
# Define parameter grid
|
|
101
|
+
param_grid = {'l1_ratio': [0.1, 0.5, 0.9],
|
|
102
|
+
'alpha_min_ratio': [0.01, 0.001]}
|
|
103
|
+
|
|
104
|
+
# Grid search with C-index
|
|
105
|
+
cv = GridSearchCV(CoxnetSurvivalAnalysis(),
|
|
106
|
+
param_grid,
|
|
107
|
+
scoring='concordance_index_ipcw',
|
|
108
|
+
cv=5)
|
|
109
|
+
cv.fit(X, y)
|
|
110
|
+
|
|
111
|
+
# Best parameters
|
|
112
|
+
best_params = cv.best_params_
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## IPCRidge
|
|
116
|
+
|
|
117
|
+
Inverse probability of censoring weighted Ridge regression for accelerated failure time models.
|
|
118
|
+
|
|
119
|
+
### When to Use
|
|
120
|
+
- Prefer accelerated failure time (AFT) framework over proportional hazards
|
|
121
|
+
- Need to model how features accelerate/decelerate survival time
|
|
122
|
+
- High censoring rates
|
|
123
|
+
- Want regularization with Ridge penalty
|
|
124
|
+
|
|
125
|
+
### Key Difference from Cox Models
|
|
126
|
+
AFT models assume features multiply survival time by a constant factor, rather than multiplying the hazard rate. The model predicts log survival time directly.
|
|
127
|
+
|
|
128
|
+
### Example Usage
|
|
129
|
+
```python
|
|
130
|
+
from sksurv.linear_model import IPCRidge
|
|
131
|
+
|
|
132
|
+
# Fit IPCRidge model
|
|
133
|
+
estimator = IPCRidge(alpha=1.0)
|
|
134
|
+
estimator.fit(X, y)
|
|
135
|
+
|
|
136
|
+
# Predict log survival time
|
|
137
|
+
log_time = estimator.predict(X)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Model Comparison and Selection
|
|
141
|
+
|
|
142
|
+
### Choosing Between Models
|
|
143
|
+
|
|
144
|
+
**Use CoxPHSurvivalAnalysis when:**
|
|
145
|
+
- Small to moderate number of features
|
|
146
|
+
- Want interpretable hazard ratios
|
|
147
|
+
- Standard survival analysis setting
|
|
148
|
+
|
|
149
|
+
**Use CoxnetSurvivalAnalysis when:**
|
|
150
|
+
- High-dimensional data (p >> n)
|
|
151
|
+
- Need feature selection
|
|
152
|
+
- Want to identify important predictors
|
|
153
|
+
- Presence of multicollinearity
|
|
154
|
+
|
|
155
|
+
**Use IPCRidge when:**
|
|
156
|
+
- AFT framework is more appropriate
|
|
157
|
+
- High censoring rates
|
|
158
|
+
- Want to model time directly rather than hazard
|
|
159
|
+
|
|
160
|
+
### Checking Proportional Hazards Assumption
|
|
161
|
+
|
|
162
|
+
The proportional hazards assumption should be verified using:
|
|
163
|
+
- Schoenfeld residuals
|
|
164
|
+
- Log-log survival plots
|
|
165
|
+
- Statistical tests (available in other packages like lifelines)
|
|
166
|
+
|
|
167
|
+
If violated, consider:
|
|
168
|
+
- Stratification by violating covariates
|
|
169
|
+
- Time-varying coefficients
|
|
170
|
+
- Alternative models (AFT, parametric models)
|
|
171
|
+
|
|
172
|
+
## Interpretation
|
|
173
|
+
|
|
174
|
+
### Cox Model Coefficients
|
|
175
|
+
- Positive coefficient: increased hazard (shorter survival)
|
|
176
|
+
- Negative coefficient: decreased hazard (longer survival)
|
|
177
|
+
- Hazard ratio = exp(β) for one-unit increase in covariate
|
|
178
|
+
- Example: β=0.693 → HR=2.0 (doubles the hazard)
|
|
179
|
+
|
|
180
|
+
### Risk Scores
|
|
181
|
+
- Higher risk score = higher risk of event = shorter expected survival
|
|
182
|
+
- Risk scores are relative; use survival functions for absolute predictions
|