@synsci/cli-darwin-x64-baseline 1.1.77 → 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,514 @@
|
|
|
1
|
+
# Filters and Preprocessing
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Histolab provides a comprehensive set of filters for preprocessing whole slide images and tiles. Filters can be applied to images for visualization, quality control, tissue detection, and artifact removal. They are composable and can be chained together to create sophisticated preprocessing pipelines.
|
|
6
|
+
|
|
7
|
+
## Filter Categories
|
|
8
|
+
|
|
9
|
+
### Image Filters
|
|
10
|
+
Color space conversions, thresholding, and intensity adjustments
|
|
11
|
+
|
|
12
|
+
### Morphological Filters
|
|
13
|
+
Structural operations like dilation, erosion, opening, and closing
|
|
14
|
+
|
|
15
|
+
### Composition Filters
|
|
16
|
+
Utilities for combining multiple filters
|
|
17
|
+
|
|
18
|
+
## Image Filters
|
|
19
|
+
|
|
20
|
+
### RgbToGrayscale
|
|
21
|
+
|
|
22
|
+
Convert RGB images to grayscale.
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from histolab.filters.image_filters import RgbToGrayscale
|
|
26
|
+
|
|
27
|
+
gray_filter = RgbToGrayscale()
|
|
28
|
+
gray_image = gray_filter(rgb_image)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Use cases:**
|
|
32
|
+
- Preprocessing for intensity-based operations
|
|
33
|
+
- Simplifying color complexity
|
|
34
|
+
- Input for morphological operations
|
|
35
|
+
|
|
36
|
+
### RgbToHsv
|
|
37
|
+
|
|
38
|
+
Convert RGB to HSV (Hue, Saturation, Value) color space.
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from histolab.filters.image_filters import RgbToHsv
|
|
42
|
+
|
|
43
|
+
hsv_filter = RgbToHsv()
|
|
44
|
+
hsv_image = hsv_filter(rgb_image)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Use cases:**
|
|
48
|
+
- Color-based tissue segmentation
|
|
49
|
+
- Detecting pen markings by hue
|
|
50
|
+
- Separating chromatic from achromatic content
|
|
51
|
+
|
|
52
|
+
### RgbToHed
|
|
53
|
+
|
|
54
|
+
Convert RGB to HED (Hematoxylin-Eosin-DAB) color space for stain deconvolution.
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
from histolab.filters.image_filters import RgbToHed
|
|
58
|
+
|
|
59
|
+
hed_filter = RgbToHed()
|
|
60
|
+
hed_image = hed_filter(rgb_image)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Use cases:**
|
|
64
|
+
- Separating H&E stain components
|
|
65
|
+
- Analyzing nuclear (hematoxylin) vs. cytoplasmic (eosin) staining
|
|
66
|
+
- Quantifying stain intensity
|
|
67
|
+
|
|
68
|
+
### OtsuThreshold
|
|
69
|
+
|
|
70
|
+
Apply Otsu's automatic thresholding method to create binary images.
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
from histolab.filters.image_filters import OtsuThreshold
|
|
74
|
+
|
|
75
|
+
otsu_filter = OtsuThreshold()
|
|
76
|
+
binary_image = otsu_filter(grayscale_image)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**How it works:**
|
|
80
|
+
- Automatically determines optimal threshold
|
|
81
|
+
- Separates foreground from background
|
|
82
|
+
- Minimizes intra-class variance
|
|
83
|
+
|
|
84
|
+
**Use cases:**
|
|
85
|
+
- Tissue detection
|
|
86
|
+
- Nuclei segmentation
|
|
87
|
+
- Binary mask creation
|
|
88
|
+
|
|
89
|
+
### AdaptiveThreshold
|
|
90
|
+
|
|
91
|
+
Apply adaptive thresholding for local intensity variations.
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
from histolab.filters.image_filters import AdaptiveThreshold
|
|
95
|
+
|
|
96
|
+
adaptive_filter = AdaptiveThreshold(
|
|
97
|
+
block_size=11, # Size of local neighborhood
|
|
98
|
+
offset=2 # Constant subtracted from mean
|
|
99
|
+
)
|
|
100
|
+
binary_image = adaptive_filter(grayscale_image)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Use cases:**
|
|
104
|
+
- Non-uniform illumination
|
|
105
|
+
- Local contrast enhancement
|
|
106
|
+
- Handling variable staining intensity
|
|
107
|
+
|
|
108
|
+
### Invert
|
|
109
|
+
|
|
110
|
+
Invert image intensity values.
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
from histolab.filters.image_filters import Invert
|
|
114
|
+
|
|
115
|
+
invert_filter = Invert()
|
|
116
|
+
inverted_image = invert_filter(image)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Use cases:**
|
|
120
|
+
- Preprocessing for certain segmentation algorithms
|
|
121
|
+
- Visualization adjustments
|
|
122
|
+
|
|
123
|
+
### StretchContrast
|
|
124
|
+
|
|
125
|
+
Enhance image contrast by stretching intensity range.
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
from histolab.filters.image_filters import StretchContrast
|
|
129
|
+
|
|
130
|
+
contrast_filter = StretchContrast()
|
|
131
|
+
enhanced_image = contrast_filter(image)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Use cases:**
|
|
135
|
+
- Improving visibility of low-contrast features
|
|
136
|
+
- Preprocessing for visualization
|
|
137
|
+
- Enhancing faint structures
|
|
138
|
+
|
|
139
|
+
### HistogramEqualization
|
|
140
|
+
|
|
141
|
+
Equalize image histogram for contrast enhancement.
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
from histolab.filters.image_filters import HistogramEqualization
|
|
145
|
+
|
|
146
|
+
hist_eq_filter = HistogramEqualization()
|
|
147
|
+
equalized_image = hist_eq_filter(grayscale_image)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Use cases:**
|
|
151
|
+
- Standardizing image contrast
|
|
152
|
+
- Revealing hidden details
|
|
153
|
+
- Preprocessing for feature extraction
|
|
154
|
+
|
|
155
|
+
## Morphological Filters
|
|
156
|
+
|
|
157
|
+
### BinaryDilation
|
|
158
|
+
|
|
159
|
+
Expand white regions in binary images.
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
from histolab.filters.morphological_filters import BinaryDilation
|
|
163
|
+
|
|
164
|
+
dilation_filter = BinaryDilation(disk_size=5)
|
|
165
|
+
dilated_image = dilation_filter(binary_image)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Parameters:**
|
|
169
|
+
- `disk_size`: Size of structuring element (default: 5)
|
|
170
|
+
|
|
171
|
+
**Use cases:**
|
|
172
|
+
- Connecting nearby tissue regions
|
|
173
|
+
- Filling small gaps
|
|
174
|
+
- Expanding tissue masks
|
|
175
|
+
|
|
176
|
+
### BinaryErosion
|
|
177
|
+
|
|
178
|
+
Shrink white regions in binary images.
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
from histolab.filters.morphological_filters import BinaryErosion
|
|
182
|
+
|
|
183
|
+
erosion_filter = BinaryErosion(disk_size=5)
|
|
184
|
+
eroded_image = erosion_filter(binary_image)
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Use cases:**
|
|
188
|
+
- Removing small protrusions
|
|
189
|
+
- Separating connected objects
|
|
190
|
+
- Shrinking tissue boundaries
|
|
191
|
+
|
|
192
|
+
### BinaryOpening
|
|
193
|
+
|
|
194
|
+
Erosion followed by dilation (removes small objects).
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
from histolab.filters.morphological_filters import BinaryOpening
|
|
198
|
+
|
|
199
|
+
opening_filter = BinaryOpening(disk_size=3)
|
|
200
|
+
opened_image = opening_filter(binary_image)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Use cases:**
|
|
204
|
+
- Removing small artifacts
|
|
205
|
+
- Smoothing object boundaries
|
|
206
|
+
- Noise reduction
|
|
207
|
+
|
|
208
|
+
### BinaryClosing
|
|
209
|
+
|
|
210
|
+
Dilation followed by erosion (fills small holes).
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
from histolab.filters.morphological_filters import BinaryClosing
|
|
214
|
+
|
|
215
|
+
closing_filter = BinaryClosing(disk_size=5)
|
|
216
|
+
closed_image = closing_filter(binary_image)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Use cases:**
|
|
220
|
+
- Filling small holes in tissue regions
|
|
221
|
+
- Connecting nearby objects
|
|
222
|
+
- Smoothing internal boundaries
|
|
223
|
+
|
|
224
|
+
### RemoveSmallObjects
|
|
225
|
+
|
|
226
|
+
Remove connected components smaller than a threshold.
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
from histolab.filters.morphological_filters import RemoveSmallObjects
|
|
230
|
+
|
|
231
|
+
remove_small_filter = RemoveSmallObjects(
|
|
232
|
+
area_threshold=500 # Minimum area in pixels
|
|
233
|
+
)
|
|
234
|
+
cleaned_image = remove_small_filter(binary_image)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Use cases:**
|
|
238
|
+
- Removing dust and artifacts
|
|
239
|
+
- Filtering noise
|
|
240
|
+
- Cleaning tissue masks
|
|
241
|
+
|
|
242
|
+
### RemoveSmallHoles
|
|
243
|
+
|
|
244
|
+
Fill holes smaller than a threshold.
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
from histolab.filters.morphological_filters import RemoveSmallHoles
|
|
248
|
+
|
|
249
|
+
fill_holes_filter = RemoveSmallHoles(
|
|
250
|
+
area_threshold=1000 # Maximum hole size to fill
|
|
251
|
+
)
|
|
252
|
+
filled_image = fill_holes_filter(binary_image)
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Use cases:**
|
|
256
|
+
- Filling small gaps in tissue
|
|
257
|
+
- Creating continuous tissue regions
|
|
258
|
+
- Removing internal artifacts
|
|
259
|
+
|
|
260
|
+
## Filter Composition
|
|
261
|
+
|
|
262
|
+
### Chaining Filters
|
|
263
|
+
|
|
264
|
+
Combine multiple filters in sequence:
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
268
|
+
from histolab.filters.morphological_filters import BinaryDilation, RemoveSmallObjects
|
|
269
|
+
from histolab.filters.compositions import Compose
|
|
270
|
+
|
|
271
|
+
# Create filter pipeline
|
|
272
|
+
tissue_detection_pipeline = Compose([
|
|
273
|
+
RgbToGrayscale(),
|
|
274
|
+
OtsuThreshold(),
|
|
275
|
+
BinaryDilation(disk_size=5),
|
|
276
|
+
RemoveSmallHoles(area_threshold=1000),
|
|
277
|
+
RemoveSmallObjects(area_threshold=500)
|
|
278
|
+
])
|
|
279
|
+
|
|
280
|
+
# Apply pipeline
|
|
281
|
+
result = tissue_detection_pipeline(rgb_image)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Lambda Filters
|
|
285
|
+
|
|
286
|
+
Create custom filters inline:
|
|
287
|
+
|
|
288
|
+
```python
|
|
289
|
+
from histolab.filters.image_filters import Lambda
|
|
290
|
+
import numpy as np
|
|
291
|
+
|
|
292
|
+
# Custom brightness adjustment
|
|
293
|
+
brightness_filter = Lambda(lambda img: np.clip(img * 1.2, 0, 255).astype(np.uint8))
|
|
294
|
+
|
|
295
|
+
# Custom color channel extraction
|
|
296
|
+
red_channel_filter = Lambda(lambda img: img[:, :, 0])
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Common Preprocessing Pipelines
|
|
300
|
+
|
|
301
|
+
### Standard Tissue Detection
|
|
302
|
+
|
|
303
|
+
```python
|
|
304
|
+
from histolab.filters.compositions import Compose
|
|
305
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
306
|
+
from histolab.filters.morphological_filters import (
|
|
307
|
+
BinaryDilation, RemoveSmallHoles, RemoveSmallObjects
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
tissue_detection = Compose([
|
|
311
|
+
RgbToGrayscale(),
|
|
312
|
+
OtsuThreshold(),
|
|
313
|
+
BinaryDilation(disk_size=5),
|
|
314
|
+
RemoveSmallHoles(area_threshold=1000),
|
|
315
|
+
RemoveSmallObjects(area_threshold=500)
|
|
316
|
+
])
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Pen Mark Removal
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
from histolab.filters.image_filters import RgbToHsv, Lambda
|
|
323
|
+
import numpy as np
|
|
324
|
+
|
|
325
|
+
def remove_pen_marks(hsv_image):
|
|
326
|
+
"""Remove blue/green pen markings."""
|
|
327
|
+
h, s, v = hsv_image[:, :, 0], hsv_image[:, :, 1], hsv_image[:, :, 2]
|
|
328
|
+
# Mask for blue/green hues (common pen colors)
|
|
329
|
+
pen_mask = ((h > 0.45) & (h < 0.7) & (s > 0.3))
|
|
330
|
+
# Set pen regions to white
|
|
331
|
+
hsv_image[pen_mask] = [0, 0, 1]
|
|
332
|
+
return hsv_image
|
|
333
|
+
|
|
334
|
+
pen_removal = Compose([
|
|
335
|
+
RgbToHsv(),
|
|
336
|
+
Lambda(remove_pen_marks)
|
|
337
|
+
])
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Nuclei Enhancement
|
|
341
|
+
|
|
342
|
+
```python
|
|
343
|
+
from histolab.filters.image_filters import RgbToHed, HistogramEqualization
|
|
344
|
+
from histolab.filters.compositions import Compose
|
|
345
|
+
|
|
346
|
+
nuclei_enhancement = Compose([
|
|
347
|
+
RgbToHed(),
|
|
348
|
+
Lambda(lambda hed: hed[:, :, 0]), # Extract hematoxylin channel
|
|
349
|
+
HistogramEqualization()
|
|
350
|
+
])
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Contrast Normalization
|
|
354
|
+
|
|
355
|
+
```python
|
|
356
|
+
from histolab.filters.image_filters import StretchContrast, HistogramEqualization
|
|
357
|
+
|
|
358
|
+
contrast_normalization = Compose([
|
|
359
|
+
RgbToGrayscale(),
|
|
360
|
+
StretchContrast(),
|
|
361
|
+
HistogramEqualization()
|
|
362
|
+
])
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## Applying Filters to Tiles
|
|
366
|
+
|
|
367
|
+
Filters can be applied to individual tiles:
|
|
368
|
+
|
|
369
|
+
```python
|
|
370
|
+
from histolab.tile import Tile
|
|
371
|
+
from histolab.filters.image_filters import RgbToGrayscale
|
|
372
|
+
|
|
373
|
+
# Load or extract tile
|
|
374
|
+
tile = Tile(image=pil_image, coords=(x, y))
|
|
375
|
+
|
|
376
|
+
# Apply filter
|
|
377
|
+
gray_filter = RgbToGrayscale()
|
|
378
|
+
filtered_tile = tile.apply_filters(gray_filter)
|
|
379
|
+
|
|
380
|
+
# Chain multiple filters
|
|
381
|
+
from histolab.filters.compositions import Compose
|
|
382
|
+
from histolab.filters.image_filters import StretchContrast
|
|
383
|
+
|
|
384
|
+
filter_chain = Compose([
|
|
385
|
+
RgbToGrayscale(),
|
|
386
|
+
StretchContrast()
|
|
387
|
+
])
|
|
388
|
+
processed_tile = tile.apply_filters(filter_chain)
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
## Custom Mask Filters
|
|
392
|
+
|
|
393
|
+
Integrate custom filters with tissue masks:
|
|
394
|
+
|
|
395
|
+
```python
|
|
396
|
+
from histolab.masks import TissueMask
|
|
397
|
+
from histolab.filters.compositions import Compose
|
|
398
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
399
|
+
from histolab.filters.morphological_filters import BinaryDilation
|
|
400
|
+
|
|
401
|
+
# Custom aggressive tissue detection
|
|
402
|
+
aggressive_filters = Compose([
|
|
403
|
+
RgbToGrayscale(),
|
|
404
|
+
OtsuThreshold(),
|
|
405
|
+
BinaryDilation(disk_size=10), # Larger dilation
|
|
406
|
+
RemoveSmallObjects(area_threshold=5000) # Remove only large artifacts
|
|
407
|
+
])
|
|
408
|
+
|
|
409
|
+
# Create mask with custom filters
|
|
410
|
+
custom_mask = TissueMask(filters=aggressive_filters)
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Stain Normalization
|
|
414
|
+
|
|
415
|
+
While histolab doesn't have built-in stain normalization, filters can be used for basic normalization:
|
|
416
|
+
|
|
417
|
+
```python
|
|
418
|
+
from histolab.filters.image_filters import RgbToHed, Lambda
|
|
419
|
+
import numpy as np
|
|
420
|
+
|
|
421
|
+
def normalize_hed(hed_image, target_means=[0.65, 0.70], target_stds=[0.15, 0.13]):
|
|
422
|
+
"""Simple H&E normalization."""
|
|
423
|
+
h_channel = hed_image[:, :, 0]
|
|
424
|
+
e_channel = hed_image[:, :, 1]
|
|
425
|
+
|
|
426
|
+
# Normalize hematoxylin
|
|
427
|
+
h_normalized = (h_channel - h_channel.mean()) / h_channel.std()
|
|
428
|
+
h_normalized = h_normalized * target_stds[0] + target_means[0]
|
|
429
|
+
|
|
430
|
+
# Normalize eosin
|
|
431
|
+
e_normalized = (e_channel - e_channel.mean()) / e_channel.std()
|
|
432
|
+
e_normalized = e_normalized * target_stds[1] + target_means[1]
|
|
433
|
+
|
|
434
|
+
hed_image[:, :, 0] = h_normalized
|
|
435
|
+
hed_image[:, :, 1] = e_normalized
|
|
436
|
+
|
|
437
|
+
return hed_image
|
|
438
|
+
|
|
439
|
+
normalization_pipeline = Compose([
|
|
440
|
+
RgbToHed(),
|
|
441
|
+
Lambda(normalize_hed)
|
|
442
|
+
# Convert back to RGB if needed
|
|
443
|
+
])
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
## Best Practices
|
|
447
|
+
|
|
448
|
+
1. **Preview filters**: Visualize filter outputs on thumbnails before applying to tiles
|
|
449
|
+
2. **Chain efficiently**: Order filters logically (e.g., color conversion before thresholding)
|
|
450
|
+
3. **Tune parameters**: Adjust thresholds and structuring element sizes for specific tissues
|
|
451
|
+
4. **Use composition**: Build reusable filter pipelines with `Compose`
|
|
452
|
+
5. **Consider performance**: Complex filter chains increase processing time
|
|
453
|
+
6. **Validate on diverse slides**: Test filters across different scanners, stains, and tissue types
|
|
454
|
+
7. **Document custom filters**: Clearly describe purpose and parameters of custom pipelines
|
|
455
|
+
|
|
456
|
+
## Quality Control Filters
|
|
457
|
+
|
|
458
|
+
### Blur Detection
|
|
459
|
+
|
|
460
|
+
```python
|
|
461
|
+
from histolab.filters.image_filters import Lambda
|
|
462
|
+
import cv2
|
|
463
|
+
import numpy as np
|
|
464
|
+
|
|
465
|
+
def laplacian_blur_score(gray_image):
|
|
466
|
+
"""Calculate Laplacian variance (blur metric)."""
|
|
467
|
+
return cv2.Laplacian(np.array(gray_image), cv2.CV_64F).var()
|
|
468
|
+
|
|
469
|
+
blur_detector = Lambda(lambda img: laplacian_blur_score(
|
|
470
|
+
RgbToGrayscale()(img)
|
|
471
|
+
))
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Tissue Coverage
|
|
475
|
+
|
|
476
|
+
```python
|
|
477
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
478
|
+
from histolab.filters.compositions import Compose
|
|
479
|
+
|
|
480
|
+
def tissue_coverage(image):
|
|
481
|
+
"""Calculate percentage of tissue in image."""
|
|
482
|
+
tissue_mask = Compose([
|
|
483
|
+
RgbToGrayscale(),
|
|
484
|
+
OtsuThreshold()
|
|
485
|
+
])(image)
|
|
486
|
+
return tissue_mask.sum() / tissue_mask.size * 100
|
|
487
|
+
|
|
488
|
+
coverage_filter = Lambda(tissue_coverage)
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
## Troubleshooting
|
|
492
|
+
|
|
493
|
+
### Issue: Tissue detection misses valid tissue
|
|
494
|
+
**Solutions:**
|
|
495
|
+
- Reduce `area_threshold` in `RemoveSmallObjects`
|
|
496
|
+
- Decrease erosion/opening disk size
|
|
497
|
+
- Try adaptive thresholding instead of Otsu
|
|
498
|
+
|
|
499
|
+
### Issue: Too many artifacts included
|
|
500
|
+
**Solutions:**
|
|
501
|
+
- Increase `area_threshold` in `RemoveSmallObjects`
|
|
502
|
+
- Add opening/closing operations
|
|
503
|
+
- Use custom color-based filtering for specific artifacts
|
|
504
|
+
|
|
505
|
+
### Issue: Tissue boundaries too rough
|
|
506
|
+
**Solutions:**
|
|
507
|
+
- Add `BinaryClosing` or `BinaryOpening` for smoothing
|
|
508
|
+
- Adjust disk_size for morphological operations
|
|
509
|
+
|
|
510
|
+
### Issue: Variable staining quality
|
|
511
|
+
**Solutions:**
|
|
512
|
+
- Apply histogram equalization
|
|
513
|
+
- Use adaptive thresholding
|
|
514
|
+
- Implement stain normalization pipeline
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Slide Management
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `Slide` class is the primary interface for working with whole slide images (WSI) in histolab. It provides methods to load, inspect, and process large histopathology images stored in various formats.
|
|
6
|
+
|
|
7
|
+
## Initialization
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from histolab.slide import Slide
|
|
11
|
+
|
|
12
|
+
# Initialize a slide with a WSI file and output directory
|
|
13
|
+
slide = Slide(processed_path="path/to/processed/output",
|
|
14
|
+
slide_path="path/to/slide.svs")
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Parameters:**
|
|
18
|
+
- `slide_path`: Path to the whole slide image file (supports multiple formats: SVS, TIFF, NDPI, etc.)
|
|
19
|
+
- `processed_path`: Directory where processed outputs (tiles, thumbnails, etc.) will be saved
|
|
20
|
+
|
|
21
|
+
## Loading Sample Data
|
|
22
|
+
|
|
23
|
+
Histolab provides built-in sample datasets from TCGA for testing and demonstration:
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
from histolab.data import prostate_tissue, ovarian_tissue, breast_tissue, heart_tissue, kidney_tissue
|
|
27
|
+
|
|
28
|
+
# Load prostate tissue sample
|
|
29
|
+
prostate_svs, prostate_path = prostate_tissue()
|
|
30
|
+
slide = Slide(prostate_path, processed_path="output/")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Available sample datasets:
|
|
34
|
+
- `prostate_tissue()`: Prostate tissue sample
|
|
35
|
+
- `ovarian_tissue()`: Ovarian tissue sample
|
|
36
|
+
- `breast_tissue()`: Breast tissue sample
|
|
37
|
+
- `heart_tissue()`: Heart tissue sample
|
|
38
|
+
- `kidney_tissue()`: Kidney tissue sample
|
|
39
|
+
|
|
40
|
+
## Key Properties
|
|
41
|
+
|
|
42
|
+
### Slide Dimensions
|
|
43
|
+
```python
|
|
44
|
+
# Get slide dimensions at level 0 (highest resolution)
|
|
45
|
+
width, height = slide.dimensions
|
|
46
|
+
|
|
47
|
+
# Get dimensions at specific pyramid level
|
|
48
|
+
level_dimensions = slide.level_dimensions
|
|
49
|
+
# Returns tuple of (width, height) for each level
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Magnification Information
|
|
53
|
+
```python
|
|
54
|
+
# Get base magnification (e.g., 40x, 20x)
|
|
55
|
+
base_mag = slide.base_mpp # Microns per pixel at level 0
|
|
56
|
+
|
|
57
|
+
# Get all available levels
|
|
58
|
+
num_levels = slide.levels # Number of pyramid levels
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Slide Properties
|
|
62
|
+
```python
|
|
63
|
+
# Access OpenSlide properties dictionary
|
|
64
|
+
properties = slide.properties
|
|
65
|
+
|
|
66
|
+
# Common properties include:
|
|
67
|
+
# - slide.properties['openslide.objective-power']: Objective power
|
|
68
|
+
# - slide.properties['openslide.mpp-x']: Microns per pixel in X
|
|
69
|
+
# - slide.properties['openslide.mpp-y']: Microns per pixel in Y
|
|
70
|
+
# - slide.properties['openslide.vendor']: Scanner vendor
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Thumbnail Generation
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
# Get thumbnail at specific size
|
|
77
|
+
thumbnail = slide.thumbnail
|
|
78
|
+
|
|
79
|
+
# Save thumbnail to disk
|
|
80
|
+
slide.save_thumbnail() # Saves to processed_path
|
|
81
|
+
|
|
82
|
+
# Get scaled thumbnail
|
|
83
|
+
scaled_thumbnail = slide.scaled_image(scale_factor=32)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Slide Visualization
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
# Display slide thumbnail with matplotlib
|
|
90
|
+
import matplotlib.pyplot as plt
|
|
91
|
+
|
|
92
|
+
plt.figure(figsize=(10, 10))
|
|
93
|
+
plt.imshow(slide.thumbnail)
|
|
94
|
+
plt.title(f"Slide: {slide.name}")
|
|
95
|
+
plt.axis('off')
|
|
96
|
+
plt.show()
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Extracting Regions
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
# Extract region at specific coordinates and level
|
|
103
|
+
region = slide.extract_region(
|
|
104
|
+
location=(x, y), # Top-left coordinates at level 0
|
|
105
|
+
size=(width, height), # Region size
|
|
106
|
+
level=0 # Pyramid level
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Working with Pyramid Levels
|
|
111
|
+
|
|
112
|
+
WSI files use a pyramidal structure with multiple resolution levels:
|
|
113
|
+
- Level 0: Highest resolution (native scan resolution)
|
|
114
|
+
- Level 1+: Progressively lower resolutions for faster access
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
# Check available levels
|
|
118
|
+
for level in range(slide.levels):
|
|
119
|
+
dims = slide.level_dimensions[level]
|
|
120
|
+
downsample = slide.level_downsamples[level]
|
|
121
|
+
print(f"Level {level}: {dims}, downsample: {downsample}x")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Slide Name and Path
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
# Get slide filename without extension
|
|
128
|
+
slide_name = slide.name
|
|
129
|
+
|
|
130
|
+
# Get full path to slide file
|
|
131
|
+
slide_path = slide.scaled_image
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Best Practices
|
|
135
|
+
|
|
136
|
+
1. **Always specify processed_path**: Organize outputs in dedicated directories
|
|
137
|
+
2. **Check dimensions before processing**: Large slides can exceed memory limits
|
|
138
|
+
3. **Use appropriate pyramid levels**: Extract tiles at levels matching your analysis resolution
|
|
139
|
+
4. **Preview with thumbnails**: Use thumbnails for quick visualization before heavy processing
|
|
140
|
+
5. **Monitor memory usage**: Level 0 operations on large slides require significant RAM
|
|
141
|
+
|
|
142
|
+
## Common Workflows
|
|
143
|
+
|
|
144
|
+
### Slide Inspection Workflow
|
|
145
|
+
```python
|
|
146
|
+
from histolab.slide import Slide
|
|
147
|
+
|
|
148
|
+
# Load slide
|
|
149
|
+
slide = Slide("slide.svs", processed_path="output/")
|
|
150
|
+
|
|
151
|
+
# Inspect properties
|
|
152
|
+
print(f"Dimensions: {slide.dimensions}")
|
|
153
|
+
print(f"Levels: {slide.levels}")
|
|
154
|
+
print(f"Magnification: {slide.properties.get('openslide.objective-power', 'N/A')}")
|
|
155
|
+
|
|
156
|
+
# Save thumbnail for review
|
|
157
|
+
slide.save_thumbnail()
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Multi-Slide Processing
|
|
161
|
+
```python
|
|
162
|
+
import os
|
|
163
|
+
from pathlib import Path
|
|
164
|
+
|
|
165
|
+
slide_dir = Path("slides/")
|
|
166
|
+
output_dir = Path("processed/")
|
|
167
|
+
|
|
168
|
+
for slide_path in slide_dir.glob("*.svs"):
|
|
169
|
+
slide = Slide(slide_path, processed_path=output_dir / slide_path.stem)
|
|
170
|
+
# Process each slide
|
|
171
|
+
print(f"Processing: {slide.name}")
|
|
172
|
+
```
|