@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,421 @@
|
|
|
1
|
+
# Tile Extraction
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Tile extraction is the process of cropping smaller, manageable regions from large whole slide images. Histolab provides three main extraction strategies, each suited for different analysis needs. All tilers share common parameters and provide methods for previewing and extracting tiles.
|
|
6
|
+
|
|
7
|
+
## Common Parameters
|
|
8
|
+
|
|
9
|
+
All tiler classes accept these parameters:
|
|
10
|
+
|
|
11
|
+
```python
|
|
12
|
+
tile_size: tuple = (512, 512) # Tile dimensions in pixels (width, height)
|
|
13
|
+
level: int = 0 # Pyramid level for extraction (0=highest resolution)
|
|
14
|
+
check_tissue: bool = True # Filter tiles by tissue content
|
|
15
|
+
tissue_percent: float = 80.0 # Minimum tissue coverage (0-100)
|
|
16
|
+
pixel_overlap: int = 0 # Overlap between adjacent tiles (GridTiler only)
|
|
17
|
+
prefix: str = "" # Prefix for saved tile filenames
|
|
18
|
+
suffix: str = ".png" # File extension for saved tiles
|
|
19
|
+
extraction_mask: BinaryMask = BiggestTissueBoxMask() # Mask defining extraction region
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## RandomTiler
|
|
23
|
+
|
|
24
|
+
**Purpose:** Extract a fixed number of randomly positioned tiles from tissue regions.
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from histolab.tiler import RandomTiler
|
|
28
|
+
|
|
29
|
+
random_tiler = RandomTiler(
|
|
30
|
+
tile_size=(512, 512),
|
|
31
|
+
n_tiles=100, # Number of random tiles to extract
|
|
32
|
+
level=0,
|
|
33
|
+
seed=42, # Random seed for reproducibility
|
|
34
|
+
check_tissue=True,
|
|
35
|
+
tissue_percent=80.0
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# Extract tiles
|
|
39
|
+
random_tiler.extract(slide, extraction_mask=TissueMask())
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Key Parameters:**
|
|
43
|
+
- `n_tiles`: Number of random tiles to extract
|
|
44
|
+
- `seed`: Random seed for reproducible tile selection
|
|
45
|
+
- `max_iter`: Maximum attempts to find valid tiles (default 1000)
|
|
46
|
+
|
|
47
|
+
**Use cases:**
|
|
48
|
+
- Exploratory analysis of slide content
|
|
49
|
+
- Sampling diverse regions for training data
|
|
50
|
+
- Quick assessment of tissue characteristics
|
|
51
|
+
- Balanced dataset creation from multiple slides
|
|
52
|
+
|
|
53
|
+
**Advantages:**
|
|
54
|
+
- Computationally efficient
|
|
55
|
+
- Good for sampling diverse tissue morphologies
|
|
56
|
+
- Reproducible with seed parameter
|
|
57
|
+
- Fast execution
|
|
58
|
+
|
|
59
|
+
**Limitations:**
|
|
60
|
+
- May miss rare tissue patterns
|
|
61
|
+
- No guarantee of coverage
|
|
62
|
+
- Random distribution may not capture structured features
|
|
63
|
+
|
|
64
|
+
## GridTiler
|
|
65
|
+
|
|
66
|
+
**Purpose:** Extract tiles systematically across tissue regions following a grid pattern.
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
from histolab.tiler import GridTiler
|
|
70
|
+
|
|
71
|
+
grid_tiler = GridTiler(
|
|
72
|
+
tile_size=(512, 512),
|
|
73
|
+
level=0,
|
|
74
|
+
check_tissue=True,
|
|
75
|
+
tissue_percent=80.0,
|
|
76
|
+
pixel_overlap=0 # Overlap in pixels between adjacent tiles
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# Extract tiles
|
|
80
|
+
grid_tiler.extract(slide)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Key Parameters:**
|
|
84
|
+
- `pixel_overlap`: Number of overlapping pixels between adjacent tiles
|
|
85
|
+
- `pixel_overlap=0`: Non-overlapping tiles
|
|
86
|
+
- `pixel_overlap=128`: 128-pixel overlap on each side
|
|
87
|
+
- Can be used for sliding window approaches
|
|
88
|
+
|
|
89
|
+
**Use cases:**
|
|
90
|
+
- Comprehensive slide coverage
|
|
91
|
+
- Spatial analysis requiring positional information
|
|
92
|
+
- Image reconstruction from tiles
|
|
93
|
+
- Semantic segmentation tasks
|
|
94
|
+
- Region-based analysis
|
|
95
|
+
|
|
96
|
+
**Advantages:**
|
|
97
|
+
- Complete tissue coverage
|
|
98
|
+
- Preserves spatial relationships
|
|
99
|
+
- Predictable tile positions
|
|
100
|
+
- Suitable for whole-slide analysis
|
|
101
|
+
|
|
102
|
+
**Limitations:**
|
|
103
|
+
- Computationally intensive for large slides
|
|
104
|
+
- May generate many background-heavy tiles (mitigated by `check_tissue`)
|
|
105
|
+
- Larger output datasets
|
|
106
|
+
|
|
107
|
+
**Grid Pattern:**
|
|
108
|
+
```
|
|
109
|
+
[Tile 1][Tile 2][Tile 3]
|
|
110
|
+
[Tile 4][Tile 5][Tile 6]
|
|
111
|
+
[Tile 7][Tile 8][Tile 9]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
With `pixel_overlap=64`:
|
|
115
|
+
```
|
|
116
|
+
[Tile 1-overlap-Tile 2-overlap-Tile 3]
|
|
117
|
+
[ overlap overlap overlap]
|
|
118
|
+
[Tile 4-overlap-Tile 5-overlap-Tile 6]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## ScoreTiler
|
|
122
|
+
|
|
123
|
+
**Purpose:** Extract top-ranked tiles based on custom scoring functions.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
from histolab.tiler import ScoreTiler
|
|
127
|
+
from histolab.scorer import NucleiScorer
|
|
128
|
+
|
|
129
|
+
score_tiler = ScoreTiler(
|
|
130
|
+
tile_size=(512, 512),
|
|
131
|
+
n_tiles=50, # Number of top-scoring tiles to extract
|
|
132
|
+
level=0,
|
|
133
|
+
scorer=NucleiScorer(), # Scoring function
|
|
134
|
+
check_tissue=True
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Extract top-scoring tiles
|
|
138
|
+
score_tiler.extract(slide)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Key Parameters:**
|
|
142
|
+
- `n_tiles`: Number of top-scoring tiles to extract
|
|
143
|
+
- `scorer`: Scoring function (e.g., `NucleiScorer`, `CellularityScorer`, custom scorer)
|
|
144
|
+
|
|
145
|
+
**Use cases:**
|
|
146
|
+
- Extracting most informative regions
|
|
147
|
+
- Prioritizing tiles with specific features (nuclei, cells, etc.)
|
|
148
|
+
- Quality-based tile selection
|
|
149
|
+
- Focusing on diagnostically relevant areas
|
|
150
|
+
- Training data curation
|
|
151
|
+
|
|
152
|
+
**Advantages:**
|
|
153
|
+
- Focuses on most informative tiles
|
|
154
|
+
- Reduces dataset size while maintaining quality
|
|
155
|
+
- Customizable with different scorers
|
|
156
|
+
- Efficient for targeted analysis
|
|
157
|
+
|
|
158
|
+
**Limitations:**
|
|
159
|
+
- Slower than RandomTiler (must score all candidate tiles)
|
|
160
|
+
- Requires appropriate scorer for task
|
|
161
|
+
- May miss low-scoring but relevant regions
|
|
162
|
+
|
|
163
|
+
## Available Scorers
|
|
164
|
+
|
|
165
|
+
### NucleiScorer
|
|
166
|
+
|
|
167
|
+
Scores tiles based on nuclei detection and density.
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
from histolab.scorer import NucleiScorer
|
|
171
|
+
|
|
172
|
+
nuclei_scorer = NucleiScorer()
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**How it works:**
|
|
176
|
+
1. Converts tile to grayscale
|
|
177
|
+
2. Applies thresholding to detect nuclei
|
|
178
|
+
3. Counts nuclei-like structures
|
|
179
|
+
4. Assigns score based on nuclei density
|
|
180
|
+
|
|
181
|
+
**Best for:**
|
|
182
|
+
- Cell-rich tissue regions
|
|
183
|
+
- Tumor detection
|
|
184
|
+
- Mitosis analysis
|
|
185
|
+
- Areas with high cellular content
|
|
186
|
+
|
|
187
|
+
### CellularityScorer
|
|
188
|
+
|
|
189
|
+
Scores tiles based on overall cellular content.
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
from histolab.scorer import CellularityScorer
|
|
193
|
+
|
|
194
|
+
cellularity_scorer = CellularityScorer()
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Best for:**
|
|
198
|
+
- Identifying cellular vs. stromal regions
|
|
199
|
+
- Tumor cellularity assessment
|
|
200
|
+
- Separating dense from sparse tissue areas
|
|
201
|
+
|
|
202
|
+
### Custom Scorers
|
|
203
|
+
|
|
204
|
+
Create custom scoring functions for specific needs:
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
from histolab.scorer import Scorer
|
|
208
|
+
import numpy as np
|
|
209
|
+
|
|
210
|
+
class ColorVarianceScorer(Scorer):
|
|
211
|
+
def __call__(self, tile):
|
|
212
|
+
"""Score tiles based on color variance."""
|
|
213
|
+
tile_array = np.array(tile.image)
|
|
214
|
+
# Calculate color variance
|
|
215
|
+
variance = np.var(tile_array, axis=(0, 1)).sum()
|
|
216
|
+
return variance
|
|
217
|
+
|
|
218
|
+
# Use custom scorer
|
|
219
|
+
variance_scorer = ColorVarianceScorer()
|
|
220
|
+
score_tiler = ScoreTiler(
|
|
221
|
+
tile_size=(512, 512),
|
|
222
|
+
n_tiles=30,
|
|
223
|
+
scorer=variance_scorer
|
|
224
|
+
)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Tile Preview with locate_tiles()
|
|
228
|
+
|
|
229
|
+
Preview tile locations before extraction to validate tiler configuration:
|
|
230
|
+
|
|
231
|
+
```python
|
|
232
|
+
# Preview random tile locations
|
|
233
|
+
random_tiler.locate_tiles(
|
|
234
|
+
slide=slide,
|
|
235
|
+
extraction_mask=TissueMask(),
|
|
236
|
+
n_tiles=20 # Number of tiles to preview (for RandomTiler)
|
|
237
|
+
)
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
This displays the slide thumbnail with colored rectangles indicating tile positions.
|
|
241
|
+
|
|
242
|
+
## Extraction Workflow
|
|
243
|
+
|
|
244
|
+
### Basic Extraction
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
from histolab.slide import Slide
|
|
248
|
+
from histolab.tiler import RandomTiler
|
|
249
|
+
|
|
250
|
+
# Load slide
|
|
251
|
+
slide = Slide("slide.svs", processed_path="output/tiles/")
|
|
252
|
+
|
|
253
|
+
# Configure tiler
|
|
254
|
+
tiler = RandomTiler(
|
|
255
|
+
tile_size=(512, 512),
|
|
256
|
+
n_tiles=100,
|
|
257
|
+
level=0,
|
|
258
|
+
seed=42
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
# Extract tiles (saved to processed_path)
|
|
262
|
+
tiler.extract(slide)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Extraction with Logging
|
|
266
|
+
|
|
267
|
+
```python
|
|
268
|
+
import logging
|
|
269
|
+
|
|
270
|
+
# Enable logging
|
|
271
|
+
logging.basicConfig(level=logging.INFO)
|
|
272
|
+
|
|
273
|
+
# Extract tiles with progress information
|
|
274
|
+
tiler.extract(slide)
|
|
275
|
+
# Output: INFO: Tile 1/100 saved...
|
|
276
|
+
# Output: INFO: Tile 2/100 saved...
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Extraction with Report
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
# Generate CSV report with tile information
|
|
283
|
+
score_tiler = ScoreTiler(
|
|
284
|
+
tile_size=(512, 512),
|
|
285
|
+
n_tiles=50,
|
|
286
|
+
scorer=NucleiScorer()
|
|
287
|
+
)
|
|
288
|
+
|
|
289
|
+
# Extract and save report
|
|
290
|
+
score_tiler.extract(slide, report_path="tiles_report.csv")
|
|
291
|
+
|
|
292
|
+
# Report contains: tile name, coordinates, score, tissue percentage
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Report format:
|
|
296
|
+
```csv
|
|
297
|
+
tile_name,x_coord,y_coord,level,score,tissue_percent
|
|
298
|
+
tile_001.png,10240,5120,0,0.89,95.2
|
|
299
|
+
tile_002.png,15360,7680,0,0.85,91.7
|
|
300
|
+
...
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Advanced Extraction Patterns
|
|
304
|
+
|
|
305
|
+
### Multi-Level Extraction
|
|
306
|
+
|
|
307
|
+
Extract tiles at different magnification levels:
|
|
308
|
+
|
|
309
|
+
```python
|
|
310
|
+
# High resolution tiles (level 0)
|
|
311
|
+
high_res_tiler = RandomTiler(tile_size=(512, 512), n_tiles=50, level=0)
|
|
312
|
+
high_res_tiler.extract(slide)
|
|
313
|
+
|
|
314
|
+
# Medium resolution tiles (level 1)
|
|
315
|
+
med_res_tiler = RandomTiler(tile_size=(512, 512), n_tiles=50, level=1)
|
|
316
|
+
med_res_tiler.extract(slide)
|
|
317
|
+
|
|
318
|
+
# Low resolution tiles (level 2)
|
|
319
|
+
low_res_tiler = RandomTiler(tile_size=(512, 512), n_tiles=50, level=2)
|
|
320
|
+
low_res_tiler.extract(slide)
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Hierarchical Extraction
|
|
324
|
+
|
|
325
|
+
Extract at multiple scales from same locations:
|
|
326
|
+
|
|
327
|
+
```python
|
|
328
|
+
# Extract random locations at level 0
|
|
329
|
+
random_tiler_l0 = RandomTiler(
|
|
330
|
+
tile_size=(512, 512),
|
|
331
|
+
n_tiles=30,
|
|
332
|
+
level=0,
|
|
333
|
+
seed=42,
|
|
334
|
+
prefix="level0_"
|
|
335
|
+
)
|
|
336
|
+
random_tiler_l0.extract(slide)
|
|
337
|
+
|
|
338
|
+
# Extract same locations at level 1 (use same seed)
|
|
339
|
+
random_tiler_l1 = RandomTiler(
|
|
340
|
+
tile_size=(512, 512),
|
|
341
|
+
n_tiles=30,
|
|
342
|
+
level=1,
|
|
343
|
+
seed=42,
|
|
344
|
+
prefix="level1_"
|
|
345
|
+
)
|
|
346
|
+
random_tiler_l1.extract(slide)
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Custom Tile Filtering
|
|
350
|
+
|
|
351
|
+
Apply additional filtering after extraction:
|
|
352
|
+
|
|
353
|
+
```python
|
|
354
|
+
from PIL import Image
|
|
355
|
+
import numpy as np
|
|
356
|
+
from pathlib import Path
|
|
357
|
+
|
|
358
|
+
def filter_blurry_tiles(tile_dir, threshold=100):
|
|
359
|
+
"""Remove blurry tiles using Laplacian variance."""
|
|
360
|
+
for tile_path in Path(tile_dir).glob("*.png"):
|
|
361
|
+
img = Image.open(tile_path)
|
|
362
|
+
gray = np.array(img.convert('L'))
|
|
363
|
+
laplacian_var = cv2.Laplacian(gray, cv2.CV_64F).var()
|
|
364
|
+
|
|
365
|
+
if laplacian_var < threshold:
|
|
366
|
+
tile_path.unlink() # Remove blurry tile
|
|
367
|
+
print(f"Removed blurry tile: {tile_path.name}")
|
|
368
|
+
|
|
369
|
+
# Use after extraction
|
|
370
|
+
tiler.extract(slide)
|
|
371
|
+
filter_blurry_tiles("output/tiles/")
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## Best Practices
|
|
375
|
+
|
|
376
|
+
1. **Preview before extraction**: Always use `locate_tiles()` to verify tile placement
|
|
377
|
+
2. **Use appropriate level**: Match extraction level to analysis resolution requirements
|
|
378
|
+
3. **Set tissue_percent threshold**: Adjust based on staining and tissue type (70-90% typical)
|
|
379
|
+
4. **Choose right tiler**:
|
|
380
|
+
- RandomTiler for sampling and exploration
|
|
381
|
+
- GridTiler for comprehensive coverage
|
|
382
|
+
- ScoreTiler for targeted, quality-driven extraction
|
|
383
|
+
5. **Enable logging**: Monitor extraction progress for large datasets
|
|
384
|
+
6. **Use seeds for reproducibility**: Set random seeds in RandomTiler
|
|
385
|
+
7. **Consider storage**: GridTiler can generate thousands of tiles per slide
|
|
386
|
+
8. **Validate tile quality**: Check extracted tiles for artifacts, blur, or focus issues
|
|
387
|
+
|
|
388
|
+
## Performance Optimization
|
|
389
|
+
|
|
390
|
+
1. **Extract at appropriate level**: Lower levels (1, 2) extract faster
|
|
391
|
+
2. **Adjust tissue_percent**: Higher thresholds reduce invalid tile attempts
|
|
392
|
+
3. **Use BiggestTissueBoxMask**: Faster than TissueMask for single tissue sections
|
|
393
|
+
4. **Limit n_tiles**: For RandomTiler and ScoreTiler
|
|
394
|
+
5. **Use pixel_overlap=0**: For non-overlapping GridTiler extraction
|
|
395
|
+
|
|
396
|
+
## Troubleshooting
|
|
397
|
+
|
|
398
|
+
### Issue: No tiles extracted
|
|
399
|
+
**Solutions:**
|
|
400
|
+
- Lower `tissue_percent` threshold
|
|
401
|
+
- Verify slide contains tissue (check thumbnail)
|
|
402
|
+
- Ensure extraction_mask captures tissue regions
|
|
403
|
+
- Check that tile_size is appropriate for slide resolution
|
|
404
|
+
|
|
405
|
+
### Issue: Many background tiles extracted
|
|
406
|
+
**Solutions:**
|
|
407
|
+
- Enable `check_tissue=True`
|
|
408
|
+
- Increase `tissue_percent` threshold
|
|
409
|
+
- Use appropriate mask (TissueMask vs. BiggestTissueBoxMask)
|
|
410
|
+
|
|
411
|
+
### Issue: Extraction is very slow
|
|
412
|
+
**Solutions:**
|
|
413
|
+
- Extract at lower pyramid level (level=1 or 2)
|
|
414
|
+
- Reduce `n_tiles` for RandomTiler/ScoreTiler
|
|
415
|
+
- Use RandomTiler instead of GridTiler for sampling
|
|
416
|
+
- Use BiggestTissueBoxMask instead of TissueMask
|
|
417
|
+
|
|
418
|
+
### Issue: Tiles have too much overlap (GridTiler)
|
|
419
|
+
**Solutions:**
|
|
420
|
+
- Set `pixel_overlap=0` for non-overlapping tiles
|
|
421
|
+
- Reduce `pixel_overlap` value
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Tissue Masks
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Tissue masks are binary representations that identify tissue regions within whole slide images. They are essential for filtering out background, artifacts, and non-tissue areas during tile extraction. Histolab provides several mask classes to accommodate different tissue segmentation needs.
|
|
6
|
+
|
|
7
|
+
## Mask Classes
|
|
8
|
+
|
|
9
|
+
### BinaryMask
|
|
10
|
+
|
|
11
|
+
**Purpose:** Generic base class for creating custom binary masks.
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from histolab.masks import BinaryMask
|
|
15
|
+
|
|
16
|
+
class CustomMask(BinaryMask):
|
|
17
|
+
def _mask(self, obj):
|
|
18
|
+
# Implement custom masking logic
|
|
19
|
+
# Return binary numpy array
|
|
20
|
+
pass
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Use cases:**
|
|
24
|
+
- Custom tissue segmentation algorithms
|
|
25
|
+
- Region-specific analysis (e.g., excluding annotations)
|
|
26
|
+
- Integration with external segmentation models
|
|
27
|
+
|
|
28
|
+
### TissueMask
|
|
29
|
+
|
|
30
|
+
**Purpose:** Segments all tissue regions in the slide using automated filters.
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from histolab.masks import TissueMask
|
|
34
|
+
|
|
35
|
+
# Create tissue mask
|
|
36
|
+
tissue_mask = TissueMask()
|
|
37
|
+
|
|
38
|
+
# Apply to slide
|
|
39
|
+
mask_array = tissue_mask(slide)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**How it works:**
|
|
43
|
+
1. Converts image to grayscale
|
|
44
|
+
2. Applies Otsu thresholding to separate tissue from background
|
|
45
|
+
3. Performs binary dilation to connect nearby tissue regions
|
|
46
|
+
4. Removes small holes within tissue regions
|
|
47
|
+
5. Filters out small objects (artifacts)
|
|
48
|
+
|
|
49
|
+
**Returns:** Binary NumPy array where:
|
|
50
|
+
- `True` (or 1): Tissue pixels
|
|
51
|
+
- `False` (or 0): Background pixels
|
|
52
|
+
|
|
53
|
+
**Best for:**
|
|
54
|
+
- Slides with multiple separate tissue sections
|
|
55
|
+
- Comprehensive tissue analysis
|
|
56
|
+
- When all tissue regions are important
|
|
57
|
+
|
|
58
|
+
### BiggestTissueBoxMask (Default)
|
|
59
|
+
|
|
60
|
+
**Purpose:** Identifies and returns the bounding box of the largest connected tissue region.
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
from histolab.masks import BiggestTissueBoxMask
|
|
64
|
+
|
|
65
|
+
# Create mask for largest tissue region
|
|
66
|
+
biggest_mask = BiggestTissueBoxMask()
|
|
67
|
+
|
|
68
|
+
# Apply to slide
|
|
69
|
+
mask_array = biggest_mask(slide)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**How it works:**
|
|
73
|
+
1. Applies same filtering pipeline as TissueMask
|
|
74
|
+
2. Identifies all connected tissue components
|
|
75
|
+
3. Selects the largest connected component
|
|
76
|
+
4. Returns bounding box encompassing that region
|
|
77
|
+
|
|
78
|
+
**Best for:**
|
|
79
|
+
- Slides with a single primary tissue section
|
|
80
|
+
- Excluding small artifacts or tissue fragments
|
|
81
|
+
- Focusing on main tissue area (default for most tilers)
|
|
82
|
+
|
|
83
|
+
## Customizing Masks with Filters
|
|
84
|
+
|
|
85
|
+
Masks accept custom filter chains for specialized tissue detection:
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
from histolab.masks import TissueMask
|
|
89
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
90
|
+
from histolab.filters.morphological_filters import BinaryDilation, RemoveSmallHoles
|
|
91
|
+
|
|
92
|
+
# Define custom filter composition
|
|
93
|
+
custom_mask = TissueMask(
|
|
94
|
+
filters=[
|
|
95
|
+
RgbToGrayscale(),
|
|
96
|
+
OtsuThreshold(),
|
|
97
|
+
BinaryDilation(disk_size=5),
|
|
98
|
+
RemoveSmallHoles(area_threshold=500)
|
|
99
|
+
]
|
|
100
|
+
)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Visualizing Masks
|
|
104
|
+
|
|
105
|
+
### Using locate_mask()
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
from histolab.slide import Slide
|
|
109
|
+
from histolab.masks import TissueMask
|
|
110
|
+
|
|
111
|
+
slide = Slide("slide.svs", processed_path="output/")
|
|
112
|
+
mask = TissueMask()
|
|
113
|
+
|
|
114
|
+
# Visualize mask boundaries on thumbnail
|
|
115
|
+
slide.locate_mask(mask)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
This displays the slide thumbnail with mask boundaries overlaid in a contrasting color.
|
|
119
|
+
|
|
120
|
+
### Manual Visualization
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
import matplotlib.pyplot as plt
|
|
124
|
+
from histolab.masks import TissueMask
|
|
125
|
+
|
|
126
|
+
slide = Slide("slide.svs", processed_path="output/")
|
|
127
|
+
tissue_mask = TissueMask()
|
|
128
|
+
|
|
129
|
+
# Generate mask
|
|
130
|
+
mask_array = tissue_mask(slide)
|
|
131
|
+
|
|
132
|
+
# Plot side by side
|
|
133
|
+
fig, axes = plt.subplots(1, 2, figsize=(15, 7))
|
|
134
|
+
|
|
135
|
+
axes[0].imshow(slide.thumbnail)
|
|
136
|
+
axes[0].set_title("Original Slide")
|
|
137
|
+
axes[0].axis('off')
|
|
138
|
+
|
|
139
|
+
axes[1].imshow(mask_array, cmap='gray')
|
|
140
|
+
axes[1].set_title("Tissue Mask")
|
|
141
|
+
axes[1].axis('off')
|
|
142
|
+
|
|
143
|
+
plt.show()
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Creating Custom Rectangular Masks
|
|
147
|
+
|
|
148
|
+
Define specific regions of interest:
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from histolab.masks import BinaryMask
|
|
152
|
+
import numpy as np
|
|
153
|
+
|
|
154
|
+
class RectangularMask(BinaryMask):
|
|
155
|
+
def __init__(self, x_start, y_start, width, height):
|
|
156
|
+
self.x_start = x_start
|
|
157
|
+
self.y_start = y_start
|
|
158
|
+
self.width = width
|
|
159
|
+
self.height = height
|
|
160
|
+
|
|
161
|
+
def _mask(self, obj):
|
|
162
|
+
# Create mask with specified rectangular region
|
|
163
|
+
thumb = obj.thumbnail
|
|
164
|
+
mask = np.zeros(thumb.shape[:2], dtype=bool)
|
|
165
|
+
mask[self.y_start:self.y_start+self.height,
|
|
166
|
+
self.x_start:self.x_start+self.width] = True
|
|
167
|
+
return mask
|
|
168
|
+
|
|
169
|
+
# Use custom mask
|
|
170
|
+
roi_mask = RectangularMask(x_start=1000, y_start=500, width=2000, height=1500)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Excluding Annotations
|
|
174
|
+
|
|
175
|
+
Pathology slides often contain pen markings or digital annotations. Exclude them using custom masks:
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
from histolab.masks import TissueMask
|
|
179
|
+
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
|
|
180
|
+
from histolab.filters.morphological_filters import BinaryDilation
|
|
181
|
+
|
|
182
|
+
class AnnotationExclusionMask(BinaryMask):
|
|
183
|
+
def _mask(self, obj):
|
|
184
|
+
thumb = obj.thumbnail
|
|
185
|
+
|
|
186
|
+
# Convert to HSV to detect pen marks (often blue/green)
|
|
187
|
+
hsv = cv2.cvtColor(np.array(thumb), cv2.COLOR_RGB2HSV)
|
|
188
|
+
|
|
189
|
+
# Define color ranges for pen marks
|
|
190
|
+
lower_blue = np.array([100, 50, 50])
|
|
191
|
+
upper_blue = np.array([130, 255, 255])
|
|
192
|
+
|
|
193
|
+
# Create mask excluding pen marks
|
|
194
|
+
pen_mask = cv2.inRange(hsv, lower_blue, upper_blue)
|
|
195
|
+
|
|
196
|
+
# Apply standard tissue detection
|
|
197
|
+
tissue_mask = TissueMask()(obj)
|
|
198
|
+
|
|
199
|
+
# Combine: keep tissue, exclude pen marks
|
|
200
|
+
final_mask = tissue_mask & ~pen_mask.astype(bool)
|
|
201
|
+
|
|
202
|
+
return final_mask
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Integration with Tile Extraction
|
|
206
|
+
|
|
207
|
+
Masks integrate seamlessly with tilers through the `extraction_mask` parameter:
|
|
208
|
+
|
|
209
|
+
```python
|
|
210
|
+
from histolab.tiler import RandomTiler
|
|
211
|
+
from histolab.masks import TissueMask, BiggestTissueBoxMask
|
|
212
|
+
|
|
213
|
+
# Use TissueMask to extract from all tissue
|
|
214
|
+
random_tiler = RandomTiler(
|
|
215
|
+
tile_size=(512, 512),
|
|
216
|
+
n_tiles=100,
|
|
217
|
+
level=0,
|
|
218
|
+
extraction_mask=TissueMask() # Extract from all tissue regions
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
# Or use default BiggestTissueBoxMask
|
|
222
|
+
random_tiler = RandomTiler(
|
|
223
|
+
tile_size=(512, 512),
|
|
224
|
+
n_tiles=100,
|
|
225
|
+
level=0,
|
|
226
|
+
extraction_mask=BiggestTissueBoxMask() # Default behavior
|
|
227
|
+
)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Best Practices
|
|
231
|
+
|
|
232
|
+
1. **Preview masks before extraction**: Use `locate_mask()` or manual visualization to verify mask quality
|
|
233
|
+
2. **Choose appropriate mask type**: Use `TissueMask` for multiple tissue sections, `BiggestTissueBoxMask` for single main sections
|
|
234
|
+
3. **Customize for specific stains**: Different stains (H&E, IHC) may require adjusted threshold parameters
|
|
235
|
+
4. **Handle artifacts**: Use custom filters or masks to exclude pen marks, bubbles, or folds
|
|
236
|
+
5. **Test on diverse slides**: Validate mask performance across slides with varying quality and artifacts
|
|
237
|
+
6. **Consider computational cost**: `TissueMask` is more comprehensive but computationally intensive than `BiggestTissueBoxMask`
|
|
238
|
+
|
|
239
|
+
## Common Issues and Solutions
|
|
240
|
+
|
|
241
|
+
### Issue: Mask includes too much background
|
|
242
|
+
**Solution:** Adjust Otsu threshold or increase small object removal threshold
|
|
243
|
+
|
|
244
|
+
### Issue: Mask excludes valid tissue
|
|
245
|
+
**Solution:** Reduce small object removal threshold or modify dilation parameters
|
|
246
|
+
|
|
247
|
+
### Issue: Multiple tissue sections, but only largest is captured
|
|
248
|
+
**Solution:** Switch from `BiggestTissueBoxMask` to `TissueMask`
|
|
249
|
+
|
|
250
|
+
### Issue: Pen annotations included in mask
|
|
251
|
+
**Solution:** Implement custom annotation exclusion mask (see example above)
|