@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.
Files changed (830) hide show
  1. package/bin/skills/adaptyv/SKILL.md +114 -0
  2. package/bin/skills/adaptyv/reference/api_reference.md +308 -0
  3. package/bin/skills/adaptyv/reference/examples.md +913 -0
  4. package/bin/skills/adaptyv/reference/experiments.md +360 -0
  5. package/bin/skills/adaptyv/reference/protein_optimization.md +637 -0
  6. package/bin/skills/aeon/SKILL.md +374 -0
  7. package/bin/skills/aeon/references/anomaly_detection.md +154 -0
  8. package/bin/skills/aeon/references/classification.md +144 -0
  9. package/bin/skills/aeon/references/clustering.md +123 -0
  10. package/bin/skills/aeon/references/datasets_benchmarking.md +387 -0
  11. package/bin/skills/aeon/references/distances.md +256 -0
  12. package/bin/skills/aeon/references/forecasting.md +140 -0
  13. package/bin/skills/aeon/references/networks.md +289 -0
  14. package/bin/skills/aeon/references/regression.md +118 -0
  15. package/bin/skills/aeon/references/segmentation.md +163 -0
  16. package/bin/skills/aeon/references/similarity_search.md +187 -0
  17. package/bin/skills/aeon/references/transformations.md +246 -0
  18. package/bin/skills/alphafold-database/SKILL.md +513 -0
  19. package/bin/skills/alphafold-database/references/api_reference.md +423 -0
  20. package/bin/skills/anndata/SKILL.md +400 -0
  21. package/bin/skills/anndata/references/best_practices.md +525 -0
  22. package/bin/skills/anndata/references/concatenation.md +396 -0
  23. package/bin/skills/anndata/references/data_structure.md +314 -0
  24. package/bin/skills/anndata/references/io_operations.md +404 -0
  25. package/bin/skills/anndata/references/manipulation.md +516 -0
  26. package/bin/skills/arboreto/SKILL.md +243 -0
  27. package/bin/skills/arboreto/references/algorithms.md +138 -0
  28. package/bin/skills/arboreto/references/basic_inference.md +151 -0
  29. package/bin/skills/arboreto/references/distributed_computing.md +242 -0
  30. package/bin/skills/arboreto/scripts/basic_grn_inference.py +97 -0
  31. package/bin/skills/astropy/SKILL.md +331 -0
  32. package/bin/skills/astropy/references/coordinates.md +273 -0
  33. package/bin/skills/astropy/references/cosmology.md +307 -0
  34. package/bin/skills/astropy/references/fits.md +396 -0
  35. package/bin/skills/astropy/references/tables.md +489 -0
  36. package/bin/skills/astropy/references/time.md +404 -0
  37. package/bin/skills/astropy/references/units.md +178 -0
  38. package/bin/skills/astropy/references/wcs_and_other_modules.md +373 -0
  39. package/bin/skills/benchling-integration/SKILL.md +480 -0
  40. package/bin/skills/benchling-integration/references/api_endpoints.md +883 -0
  41. package/bin/skills/benchling-integration/references/authentication.md +379 -0
  42. package/bin/skills/benchling-integration/references/sdk_reference.md +774 -0
  43. package/bin/skills/biopython/SKILL.md +443 -0
  44. package/bin/skills/biopython/references/advanced.md +577 -0
  45. package/bin/skills/biopython/references/alignment.md +362 -0
  46. package/bin/skills/biopython/references/blast.md +455 -0
  47. package/bin/skills/biopython/references/databases.md +484 -0
  48. package/bin/skills/biopython/references/phylogenetics.md +566 -0
  49. package/bin/skills/biopython/references/sequence_io.md +285 -0
  50. package/bin/skills/biopython/references/structure.md +564 -0
  51. package/bin/skills/biorxiv-database/SKILL.md +483 -0
  52. package/bin/skills/biorxiv-database/references/api_reference.md +280 -0
  53. package/bin/skills/biorxiv-database/scripts/biorxiv_search.py +445 -0
  54. package/bin/skills/bioservices/SKILL.md +361 -0
  55. package/bin/skills/bioservices/references/identifier_mapping.md +685 -0
  56. package/bin/skills/bioservices/references/services_reference.md +636 -0
  57. package/bin/skills/bioservices/references/workflow_patterns.md +811 -0
  58. package/bin/skills/bioservices/scripts/batch_id_converter.py +347 -0
  59. package/bin/skills/bioservices/scripts/compound_cross_reference.py +378 -0
  60. package/bin/skills/bioservices/scripts/pathway_analysis.py +309 -0
  61. package/bin/skills/bioservices/scripts/protein_analysis_workflow.py +408 -0
  62. package/bin/skills/brenda-database/SKILL.md +719 -0
  63. package/bin/skills/brenda-database/references/api_reference.md +537 -0
  64. package/bin/skills/brenda-database/scripts/brenda_queries.py +844 -0
  65. package/bin/skills/brenda-database/scripts/brenda_visualization.py +772 -0
  66. package/bin/skills/brenda-database/scripts/enzyme_pathway_builder.py +1053 -0
  67. package/bin/skills/cellxgene-census/SKILL.md +511 -0
  68. package/bin/skills/cellxgene-census/references/census_schema.md +182 -0
  69. package/bin/skills/cellxgene-census/references/common_patterns.md +351 -0
  70. package/bin/skills/chembl-database/SKILL.md +389 -0
  71. package/bin/skills/chembl-database/references/api_reference.md +272 -0
  72. package/bin/skills/chembl-database/scripts/example_queries.py +278 -0
  73. package/bin/skills/cirq/SKILL.md +346 -0
  74. package/bin/skills/cirq/references/building.md +307 -0
  75. package/bin/skills/cirq/references/experiments.md +572 -0
  76. package/bin/skills/cirq/references/hardware.md +515 -0
  77. package/bin/skills/cirq/references/noise.md +515 -0
  78. package/bin/skills/cirq/references/simulation.md +350 -0
  79. package/bin/skills/cirq/references/transformation.md +416 -0
  80. package/bin/skills/clinicaltrials-database/SKILL.md +507 -0
  81. package/bin/skills/clinicaltrials-database/references/api_reference.md +358 -0
  82. package/bin/skills/clinicaltrials-database/scripts/query_clinicaltrials.py +215 -0
  83. package/bin/skills/clinpgx-database/SKILL.md +638 -0
  84. package/bin/skills/clinpgx-database/references/api_reference.md +757 -0
  85. package/bin/skills/clinpgx-database/scripts/query_clinpgx.py +518 -0
  86. package/bin/skills/clinvar-database/SKILL.md +362 -0
  87. package/bin/skills/clinvar-database/references/api_reference.md +227 -0
  88. package/bin/skills/clinvar-database/references/clinical_significance.md +218 -0
  89. package/bin/skills/clinvar-database/references/data_formats.md +358 -0
  90. package/bin/skills/cobrapy/SKILL.md +463 -0
  91. package/bin/skills/cobrapy/references/api_quick_reference.md +655 -0
  92. package/bin/skills/cobrapy/references/workflows.md +593 -0
  93. package/bin/skills/cosmic-database/SKILL.md +336 -0
  94. package/bin/skills/cosmic-database/references/cosmic_data_reference.md +220 -0
  95. package/bin/skills/cosmic-database/scripts/download_cosmic.py +231 -0
  96. package/bin/skills/dask/SKILL.md +456 -0
  97. package/bin/skills/dask/references/arrays.md +497 -0
  98. package/bin/skills/dask/references/bags.md +468 -0
  99. package/bin/skills/dask/references/best-practices.md +277 -0
  100. package/bin/skills/dask/references/dataframes.md +368 -0
  101. package/bin/skills/dask/references/futures.md +541 -0
  102. package/bin/skills/dask/references/schedulers.md +504 -0
  103. package/bin/skills/datacommons-client/SKILL.md +255 -0
  104. package/bin/skills/datacommons-client/references/getting_started.md +417 -0
  105. package/bin/skills/datacommons-client/references/node.md +250 -0
  106. package/bin/skills/datacommons-client/references/observation.md +185 -0
  107. package/bin/skills/datacommons-client/references/resolve.md +246 -0
  108. package/bin/skills/datamol/SKILL.md +706 -0
  109. package/bin/skills/datamol/references/conformers_module.md +131 -0
  110. package/bin/skills/datamol/references/core_api.md +130 -0
  111. package/bin/skills/datamol/references/descriptors_viz.md +195 -0
  112. package/bin/skills/datamol/references/fragments_scaffolds.md +174 -0
  113. package/bin/skills/datamol/references/io_module.md +109 -0
  114. package/bin/skills/datamol/references/reactions_data.md +218 -0
  115. package/bin/skills/deepchem/SKILL.md +597 -0
  116. package/bin/skills/deepchem/references/api_reference.md +303 -0
  117. package/bin/skills/deepchem/references/workflows.md +491 -0
  118. package/bin/skills/deepchem/scripts/graph_neural_network.py +338 -0
  119. package/bin/skills/deepchem/scripts/predict_solubility.py +224 -0
  120. package/bin/skills/deepchem/scripts/transfer_learning.py +375 -0
  121. package/bin/skills/deeptools/SKILL.md +531 -0
  122. package/bin/skills/deeptools/assets/quick_reference.md +58 -0
  123. package/bin/skills/deeptools/references/effective_genome_sizes.md +116 -0
  124. package/bin/skills/deeptools/references/normalization_methods.md +410 -0
  125. package/bin/skills/deeptools/references/tools_reference.md +533 -0
  126. package/bin/skills/deeptools/references/workflows.md +474 -0
  127. package/bin/skills/deeptools/scripts/validate_files.py +195 -0
  128. package/bin/skills/deeptools/scripts/workflow_generator.py +454 -0
  129. package/bin/skills/denario/SKILL.md +215 -0
  130. package/bin/skills/denario/references/examples.md +494 -0
  131. package/bin/skills/denario/references/installation.md +213 -0
  132. package/bin/skills/denario/references/llm_configuration.md +265 -0
  133. package/bin/skills/denario/references/research_pipeline.md +471 -0
  134. package/bin/skills/diffdock/SKILL.md +483 -0
  135. package/bin/skills/diffdock/assets/batch_template.csv +4 -0
  136. package/bin/skills/diffdock/assets/custom_inference_config.yaml +90 -0
  137. package/bin/skills/diffdock/references/confidence_and_limitations.md +182 -0
  138. package/bin/skills/diffdock/references/parameters_reference.md +163 -0
  139. package/bin/skills/diffdock/references/workflows_examples.md +392 -0
  140. package/bin/skills/diffdock/scripts/analyze_results.py +334 -0
  141. package/bin/skills/diffdock/scripts/prepare_batch_csv.py +254 -0
  142. package/bin/skills/diffdock/scripts/setup_check.py +278 -0
  143. package/bin/skills/dnanexus-integration/SKILL.md +383 -0
  144. package/bin/skills/dnanexus-integration/references/app-development.md +247 -0
  145. package/bin/skills/dnanexus-integration/references/configuration.md +646 -0
  146. package/bin/skills/dnanexus-integration/references/data-operations.md +400 -0
  147. package/bin/skills/dnanexus-integration/references/job-execution.md +412 -0
  148. package/bin/skills/dnanexus-integration/references/python-sdk.md +523 -0
  149. package/bin/skills/document-skills/docx/LICENSE.txt +30 -0
  150. package/bin/skills/document-skills/docx/SKILL.md +233 -0
  151. package/bin/skills/document-skills/docx/docx-js.md +350 -0
  152. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  153. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  154. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  155. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  156. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  157. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  158. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  159. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  160. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  161. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  162. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  163. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  164. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  165. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  166. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  167. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  168. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  169. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  170. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  171. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  172. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  173. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  174. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  175. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  176. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  177. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  178. package/bin/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  179. package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  180. package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  181. package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  182. package/bin/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  183. package/bin/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  184. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  185. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  186. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  187. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  188. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  189. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  190. package/bin/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  191. package/bin/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
  192. package/bin/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
  193. package/bin/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
  194. package/bin/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  195. package/bin/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
  196. package/bin/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
  197. package/bin/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  198. package/bin/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  199. package/bin/skills/document-skills/docx/ooxml.md +610 -0
  200. package/bin/skills/document-skills/docx/scripts/__init__.py +1 -0
  201. package/bin/skills/document-skills/docx/scripts/document.py +1276 -0
  202. package/bin/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
  203. package/bin/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
  204. package/bin/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  205. package/bin/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
  206. package/bin/skills/document-skills/docx/scripts/templates/people.xml +3 -0
  207. package/bin/skills/document-skills/docx/scripts/utilities.py +374 -0
  208. package/bin/skills/document-skills/pdf/LICENSE.txt +30 -0
  209. package/bin/skills/document-skills/pdf/SKILL.md +330 -0
  210. package/bin/skills/document-skills/pdf/forms.md +205 -0
  211. package/bin/skills/document-skills/pdf/reference.md +612 -0
  212. package/bin/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
  213. package/bin/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  214. package/bin/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
  215. package/bin/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  216. package/bin/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
  217. package/bin/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
  218. package/bin/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
  219. package/bin/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  220. package/bin/skills/document-skills/pptx/LICENSE.txt +30 -0
  221. package/bin/skills/document-skills/pptx/SKILL.md +520 -0
  222. package/bin/skills/document-skills/pptx/html2pptx.md +625 -0
  223. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  224. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  225. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  226. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  227. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  228. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  229. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  230. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  231. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  232. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  233. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  234. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  235. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  236. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  237. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  238. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  239. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  240. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  241. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  242. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  243. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  244. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  245. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  246. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  247. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  248. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  249. package/bin/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  250. package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  251. package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  252. package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  253. package/bin/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  254. package/bin/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  255. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  256. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  257. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  258. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  259. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  260. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  261. package/bin/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  262. package/bin/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
  263. package/bin/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
  264. package/bin/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
  265. package/bin/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  266. package/bin/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
  267. package/bin/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  268. package/bin/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  269. package/bin/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  270. package/bin/skills/document-skills/pptx/ooxml.md +427 -0
  271. package/bin/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
  272. package/bin/skills/document-skills/pptx/scripts/inventory.py +1020 -0
  273. package/bin/skills/document-skills/pptx/scripts/rearrange.py +231 -0
  274. package/bin/skills/document-skills/pptx/scripts/replace.py +385 -0
  275. package/bin/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
  276. package/bin/skills/document-skills/xlsx/LICENSE.txt +30 -0
  277. package/bin/skills/document-skills/xlsx/SKILL.md +325 -0
  278. package/bin/skills/document-skills/xlsx/recalc.py +178 -0
  279. package/bin/skills/drugbank-database/SKILL.md +190 -0
  280. package/bin/skills/drugbank-database/references/chemical-analysis.md +590 -0
  281. package/bin/skills/drugbank-database/references/data-access.md +242 -0
  282. package/bin/skills/drugbank-database/references/drug-queries.md +386 -0
  283. package/bin/skills/drugbank-database/references/interactions.md +425 -0
  284. package/bin/skills/drugbank-database/references/targets-pathways.md +518 -0
  285. package/bin/skills/drugbank-database/scripts/drugbank_helper.py +350 -0
  286. package/bin/skills/ena-database/SKILL.md +204 -0
  287. package/bin/skills/ena-database/references/api_reference.md +490 -0
  288. package/bin/skills/ensembl-database/SKILL.md +311 -0
  289. package/bin/skills/ensembl-database/references/api_endpoints.md +346 -0
  290. package/bin/skills/ensembl-database/scripts/ensembl_query.py +427 -0
  291. package/bin/skills/esm/SKILL.md +306 -0
  292. package/bin/skills/esm/references/esm-c-api.md +583 -0
  293. package/bin/skills/esm/references/esm3-api.md +452 -0
  294. package/bin/skills/esm/references/forge-api.md +657 -0
  295. package/bin/skills/esm/references/workflows.md +685 -0
  296. package/bin/skills/etetoolkit/SKILL.md +623 -0
  297. package/bin/skills/etetoolkit/references/api_reference.md +583 -0
  298. package/bin/skills/etetoolkit/references/visualization.md +783 -0
  299. package/bin/skills/etetoolkit/references/workflows.md +774 -0
  300. package/bin/skills/etetoolkit/scripts/quick_visualize.py +214 -0
  301. package/bin/skills/etetoolkit/scripts/tree_operations.py +229 -0
  302. package/bin/skills/exploratory-data-analysis/SKILL.md +446 -0
  303. package/bin/skills/exploratory-data-analysis/assets/report_template.md +196 -0
  304. package/bin/skills/exploratory-data-analysis/references/bioinformatics_genomics_formats.md +664 -0
  305. package/bin/skills/exploratory-data-analysis/references/chemistry_molecular_formats.md +664 -0
  306. package/bin/skills/exploratory-data-analysis/references/general_scientific_formats.md +518 -0
  307. package/bin/skills/exploratory-data-analysis/references/microscopy_imaging_formats.md +620 -0
  308. package/bin/skills/exploratory-data-analysis/references/proteomics_metabolomics_formats.md +517 -0
  309. package/bin/skills/exploratory-data-analysis/references/spectroscopy_analytical_formats.md +633 -0
  310. package/bin/skills/exploratory-data-analysis/scripts/eda_analyzer.py +547 -0
  311. package/bin/skills/fda-database/SKILL.md +518 -0
  312. package/bin/skills/fda-database/references/animal_veterinary.md +377 -0
  313. package/bin/skills/fda-database/references/api_basics.md +687 -0
  314. package/bin/skills/fda-database/references/devices.md +632 -0
  315. package/bin/skills/fda-database/references/drugs.md +468 -0
  316. package/bin/skills/fda-database/references/foods.md +374 -0
  317. package/bin/skills/fda-database/references/other.md +472 -0
  318. package/bin/skills/fda-database/scripts/fda_examples.py +335 -0
  319. package/bin/skills/fda-database/scripts/fda_query.py +440 -0
  320. package/bin/skills/flowio/SKILL.md +608 -0
  321. package/bin/skills/flowio/references/api_reference.md +372 -0
  322. package/bin/skills/fluidsim/SKILL.md +349 -0
  323. package/bin/skills/fluidsim/references/advanced_features.md +398 -0
  324. package/bin/skills/fluidsim/references/installation.md +68 -0
  325. package/bin/skills/fluidsim/references/output_analysis.md +283 -0
  326. package/bin/skills/fluidsim/references/parameters.md +198 -0
  327. package/bin/skills/fluidsim/references/simulation_workflow.md +172 -0
  328. package/bin/skills/fluidsim/references/solvers.md +94 -0
  329. package/bin/skills/fred-economic-data/SKILL.md +433 -0
  330. package/bin/skills/fred-economic-data/references/api_basics.md +212 -0
  331. package/bin/skills/fred-economic-data/references/categories.md +442 -0
  332. package/bin/skills/fred-economic-data/references/geofred.md +588 -0
  333. package/bin/skills/fred-economic-data/references/releases.md +642 -0
  334. package/bin/skills/fred-economic-data/references/series.md +584 -0
  335. package/bin/skills/fred-economic-data/references/sources.md +423 -0
  336. package/bin/skills/fred-economic-data/references/tags.md +485 -0
  337. package/bin/skills/fred-economic-data/scripts/fred_examples.py +354 -0
  338. package/bin/skills/fred-economic-data/scripts/fred_query.py +590 -0
  339. package/bin/skills/gene-database/SKILL.md +179 -0
  340. package/bin/skills/gene-database/references/api_reference.md +404 -0
  341. package/bin/skills/gene-database/references/common_workflows.md +428 -0
  342. package/bin/skills/gene-database/scripts/batch_gene_lookup.py +298 -0
  343. package/bin/skills/gene-database/scripts/fetch_gene_data.py +277 -0
  344. package/bin/skills/gene-database/scripts/query_gene.py +251 -0
  345. package/bin/skills/geniml/SKILL.md +318 -0
  346. package/bin/skills/geniml/references/bedspace.md +127 -0
  347. package/bin/skills/geniml/references/consensus_peaks.md +238 -0
  348. package/bin/skills/geniml/references/region2vec.md +90 -0
  349. package/bin/skills/geniml/references/scembed.md +197 -0
  350. package/bin/skills/geniml/references/utilities.md +385 -0
  351. package/bin/skills/geo-database/SKILL.md +815 -0
  352. package/bin/skills/geo-database/references/geo_reference.md +829 -0
  353. package/bin/skills/geopandas/SKILL.md +251 -0
  354. package/bin/skills/geopandas/references/crs-management.md +243 -0
  355. package/bin/skills/geopandas/references/data-io.md +165 -0
  356. package/bin/skills/geopandas/references/data-structures.md +70 -0
  357. package/bin/skills/geopandas/references/geometric-operations.md +221 -0
  358. package/bin/skills/geopandas/references/spatial-analysis.md +184 -0
  359. package/bin/skills/geopandas/references/visualization.md +243 -0
  360. package/bin/skills/get-available-resources/SKILL.md +277 -0
  361. package/bin/skills/get-available-resources/scripts/detect_resources.py +401 -0
  362. package/bin/skills/gget/SKILL.md +871 -0
  363. package/bin/skills/gget/references/database_info.md +300 -0
  364. package/bin/skills/gget/references/module_reference.md +467 -0
  365. package/bin/skills/gget/references/workflows.md +814 -0
  366. package/bin/skills/gget/scripts/batch_sequence_analysis.py +191 -0
  367. package/bin/skills/gget/scripts/enrichment_pipeline.py +235 -0
  368. package/bin/skills/gget/scripts/gene_analysis.py +161 -0
  369. package/bin/skills/gtars/SKILL.md +285 -0
  370. package/bin/skills/gtars/references/cli.md +222 -0
  371. package/bin/skills/gtars/references/coverage.md +172 -0
  372. package/bin/skills/gtars/references/overlap.md +156 -0
  373. package/bin/skills/gtars/references/python-api.md +211 -0
  374. package/bin/skills/gtars/references/refget.md +147 -0
  375. package/bin/skills/gtars/references/tokenizers.md +103 -0
  376. package/bin/skills/gwas-database/SKILL.md +608 -0
  377. package/bin/skills/gwas-database/references/api_reference.md +793 -0
  378. package/bin/skills/histolab/SKILL.md +678 -0
  379. package/bin/skills/histolab/references/filters_preprocessing.md +514 -0
  380. package/bin/skills/histolab/references/slide_management.md +172 -0
  381. package/bin/skills/histolab/references/tile_extraction.md +421 -0
  382. package/bin/skills/histolab/references/tissue_masks.md +251 -0
  383. package/bin/skills/histolab/references/visualization.md +547 -0
  384. package/bin/skills/hmdb-database/SKILL.md +196 -0
  385. package/bin/skills/hmdb-database/references/hmdb_data_fields.md +267 -0
  386. package/bin/skills/hypogenic/SKILL.md +655 -0
  387. package/bin/skills/hypogenic/references/config_template.yaml +150 -0
  388. package/bin/skills/imaging-data-commons/SKILL.md +1182 -0
  389. package/bin/skills/imaging-data-commons/references/bigquery_guide.md +556 -0
  390. package/bin/skills/imaging-data-commons/references/cli_guide.md +272 -0
  391. package/bin/skills/imaging-data-commons/references/cloud_storage_guide.md +333 -0
  392. package/bin/skills/imaging-data-commons/references/dicomweb_guide.md +399 -0
  393. package/bin/skills/infographics/SKILL.md +563 -0
  394. package/bin/skills/infographics/references/color_palettes.md +496 -0
  395. package/bin/skills/infographics/references/design_principles.md +636 -0
  396. package/bin/skills/infographics/references/infographic_types.md +907 -0
  397. package/bin/skills/infographics/scripts/generate_infographic.py +234 -0
  398. package/bin/skills/infographics/scripts/generate_infographic_ai.py +1290 -0
  399. package/bin/skills/iso-13485-certification/SKILL.md +680 -0
  400. package/bin/skills/iso-13485-certification/assets/templates/procedures/CAPA-procedure-template.md +453 -0
  401. package/bin/skills/iso-13485-certification/assets/templates/procedures/document-control-procedure-template.md +567 -0
  402. package/bin/skills/iso-13485-certification/assets/templates/quality-manual-template.md +521 -0
  403. package/bin/skills/iso-13485-certification/references/gap-analysis-checklist.md +568 -0
  404. package/bin/skills/iso-13485-certification/references/iso-13485-requirements.md +610 -0
  405. package/bin/skills/iso-13485-certification/references/mandatory-documents.md +606 -0
  406. package/bin/skills/iso-13485-certification/references/quality-manual-guide.md +688 -0
  407. package/bin/skills/iso-13485-certification/scripts/gap_analyzer.py +440 -0
  408. package/bin/skills/kegg-database/SKILL.md +377 -0
  409. package/bin/skills/kegg-database/references/kegg_reference.md +326 -0
  410. package/bin/skills/kegg-database/scripts/kegg_api.py +251 -0
  411. package/bin/skills/labarchive-integration/SKILL.md +268 -0
  412. package/bin/skills/labarchive-integration/references/api_reference.md +342 -0
  413. package/bin/skills/labarchive-integration/references/authentication_guide.md +357 -0
  414. package/bin/skills/labarchive-integration/references/integrations.md +425 -0
  415. package/bin/skills/labarchive-integration/scripts/entry_operations.py +334 -0
  416. package/bin/skills/labarchive-integration/scripts/notebook_operations.py +269 -0
  417. package/bin/skills/labarchive-integration/scripts/setup_config.py +205 -0
  418. package/bin/skills/lamindb/SKILL.md +390 -0
  419. package/bin/skills/lamindb/references/annotation-validation.md +513 -0
  420. package/bin/skills/lamindb/references/core-concepts.md +380 -0
  421. package/bin/skills/lamindb/references/data-management.md +433 -0
  422. package/bin/skills/lamindb/references/integrations.md +642 -0
  423. package/bin/skills/lamindb/references/ontologies.md +497 -0
  424. package/bin/skills/lamindb/references/setup-deployment.md +733 -0
  425. package/bin/skills/latchbio-integration/SKILL.md +353 -0
  426. package/bin/skills/latchbio-integration/references/data-management.md +427 -0
  427. package/bin/skills/latchbio-integration/references/resource-configuration.md +429 -0
  428. package/bin/skills/latchbio-integration/references/verified-workflows.md +487 -0
  429. package/bin/skills/latchbio-integration/references/workflow-creation.md +254 -0
  430. package/bin/skills/matchms/SKILL.md +203 -0
  431. package/bin/skills/matchms/references/filtering.md +288 -0
  432. package/bin/skills/matchms/references/importing_exporting.md +416 -0
  433. package/bin/skills/matchms/references/similarity.md +380 -0
  434. package/bin/skills/matchms/references/workflows.md +647 -0
  435. package/bin/skills/matlab/SKILL.md +376 -0
  436. package/bin/skills/matlab/references/data-import-export.md +479 -0
  437. package/bin/skills/matlab/references/executing-scripts.md +444 -0
  438. package/bin/skills/matlab/references/graphics-visualization.md +579 -0
  439. package/bin/skills/matlab/references/mathematics.md +553 -0
  440. package/bin/skills/matlab/references/matrices-arrays.md +349 -0
  441. package/bin/skills/matlab/references/octave-compatibility.md +544 -0
  442. package/bin/skills/matlab/references/programming.md +672 -0
  443. package/bin/skills/matlab/references/python-integration.md +433 -0
  444. package/bin/skills/matplotlib/SKILL.md +361 -0
  445. package/bin/skills/matplotlib/references/api_reference.md +412 -0
  446. package/bin/skills/matplotlib/references/common_issues.md +563 -0
  447. package/bin/skills/matplotlib/references/plot_types.md +476 -0
  448. package/bin/skills/matplotlib/references/styling_guide.md +589 -0
  449. package/bin/skills/matplotlib/scripts/plot_template.py +401 -0
  450. package/bin/skills/matplotlib/scripts/style_configurator.py +409 -0
  451. package/bin/skills/medchem/SKILL.md +406 -0
  452. package/bin/skills/medchem/references/api_guide.md +600 -0
  453. package/bin/skills/medchem/references/rules_catalog.md +604 -0
  454. package/bin/skills/medchem/scripts/filter_molecules.py +418 -0
  455. package/bin/skills/metabolomics-workbench-database/SKILL.md +259 -0
  456. package/bin/skills/metabolomics-workbench-database/references/api_reference.md +494 -0
  457. package/bin/skills/modal-research-gpu/SKILL.md +238 -0
  458. package/bin/skills/molfeat/SKILL.md +511 -0
  459. package/bin/skills/molfeat/references/api_reference.md +428 -0
  460. package/bin/skills/molfeat/references/available_featurizers.md +333 -0
  461. package/bin/skills/molfeat/references/examples.md +723 -0
  462. package/bin/skills/networkx/SKILL.md +437 -0
  463. package/bin/skills/networkx/references/algorithms.md +383 -0
  464. package/bin/skills/networkx/references/generators.md +378 -0
  465. package/bin/skills/networkx/references/graph-basics.md +283 -0
  466. package/bin/skills/networkx/references/io.md +441 -0
  467. package/bin/skills/networkx/references/visualization.md +529 -0
  468. package/bin/skills/neurokit2/SKILL.md +356 -0
  469. package/bin/skills/neurokit2/references/bio_module.md +417 -0
  470. package/bin/skills/neurokit2/references/complexity.md +715 -0
  471. package/bin/skills/neurokit2/references/ecg_cardiac.md +355 -0
  472. package/bin/skills/neurokit2/references/eda.md +497 -0
  473. package/bin/skills/neurokit2/references/eeg.md +506 -0
  474. package/bin/skills/neurokit2/references/emg.md +408 -0
  475. package/bin/skills/neurokit2/references/eog.md +407 -0
  476. package/bin/skills/neurokit2/references/epochs_events.md +471 -0
  477. package/bin/skills/neurokit2/references/hrv.md +480 -0
  478. package/bin/skills/neurokit2/references/ppg.md +413 -0
  479. package/bin/skills/neurokit2/references/rsp.md +510 -0
  480. package/bin/skills/neurokit2/references/signal_processing.md +648 -0
  481. package/bin/skills/neuropixels-analysis/SKILL.md +350 -0
  482. package/bin/skills/neuropixels-analysis/assets/analysis_template.py +271 -0
  483. package/bin/skills/neuropixels-analysis/references/AI_CURATION.md +345 -0
  484. package/bin/skills/neuropixels-analysis/references/ANALYSIS.md +392 -0
  485. package/bin/skills/neuropixels-analysis/references/AUTOMATED_CURATION.md +358 -0
  486. package/bin/skills/neuropixels-analysis/references/MOTION_CORRECTION.md +323 -0
  487. package/bin/skills/neuropixels-analysis/references/PREPROCESSING.md +273 -0
  488. package/bin/skills/neuropixels-analysis/references/QUALITY_METRICS.md +359 -0
  489. package/bin/skills/neuropixels-analysis/references/SPIKE_SORTING.md +339 -0
  490. package/bin/skills/neuropixels-analysis/references/api_reference.md +415 -0
  491. package/bin/skills/neuropixels-analysis/references/plotting_guide.md +454 -0
  492. package/bin/skills/neuropixels-analysis/references/standard_workflow.md +385 -0
  493. package/bin/skills/neuropixels-analysis/scripts/compute_metrics.py +178 -0
  494. package/bin/skills/neuropixels-analysis/scripts/explore_recording.py +168 -0
  495. package/bin/skills/neuropixels-analysis/scripts/export_to_phy.py +79 -0
  496. package/bin/skills/neuropixels-analysis/scripts/neuropixels_pipeline.py +432 -0
  497. package/bin/skills/neuropixels-analysis/scripts/preprocess_recording.py +122 -0
  498. package/bin/skills/neuropixels-analysis/scripts/run_sorting.py +98 -0
  499. package/bin/skills/offer-k-dense-web/SKILL.md +21 -0
  500. package/bin/skills/omero-integration/SKILL.md +251 -0
  501. package/bin/skills/omero-integration/references/advanced.md +631 -0
  502. package/bin/skills/omero-integration/references/connection.md +369 -0
  503. package/bin/skills/omero-integration/references/data_access.md +544 -0
  504. package/bin/skills/omero-integration/references/image_processing.md +665 -0
  505. package/bin/skills/omero-integration/references/metadata.md +688 -0
  506. package/bin/skills/omero-integration/references/rois.md +648 -0
  507. package/bin/skills/omero-integration/references/scripts.md +637 -0
  508. package/bin/skills/omero-integration/references/tables.md +532 -0
  509. package/bin/skills/openalex-database/SKILL.md +494 -0
  510. package/bin/skills/openalex-database/references/api_guide.md +371 -0
  511. package/bin/skills/openalex-database/references/common_queries.md +381 -0
  512. package/bin/skills/openalex-database/scripts/openalex_client.py +337 -0
  513. package/bin/skills/openalex-database/scripts/query_helpers.py +306 -0
  514. package/bin/skills/opentargets-database/SKILL.md +373 -0
  515. package/bin/skills/opentargets-database/references/api_reference.md +249 -0
  516. package/bin/skills/opentargets-database/references/evidence_types.md +306 -0
  517. package/bin/skills/opentargets-database/references/target_annotations.md +401 -0
  518. package/bin/skills/opentargets-database/scripts/query_opentargets.py +403 -0
  519. package/bin/skills/opentrons-integration/SKILL.md +573 -0
  520. package/bin/skills/opentrons-integration/references/api_reference.md +366 -0
  521. package/bin/skills/opentrons-integration/scripts/basic_protocol_template.py +67 -0
  522. package/bin/skills/opentrons-integration/scripts/pcr_setup_template.py +154 -0
  523. package/bin/skills/opentrons-integration/scripts/serial_dilution_template.py +96 -0
  524. package/bin/skills/pathml/SKILL.md +166 -0
  525. package/bin/skills/pathml/references/data_management.md +742 -0
  526. package/bin/skills/pathml/references/graphs.md +653 -0
  527. package/bin/skills/pathml/references/image_loading.md +448 -0
  528. package/bin/skills/pathml/references/machine_learning.md +725 -0
  529. package/bin/skills/pathml/references/multiparametric.md +686 -0
  530. package/bin/skills/pathml/references/preprocessing.md +722 -0
  531. package/bin/skills/pdb-database/SKILL.md +309 -0
  532. package/bin/skills/pdb-database/references/api_reference.md +617 -0
  533. package/bin/skills/pennylane/SKILL.md +226 -0
  534. package/bin/skills/pennylane/references/advanced_features.md +667 -0
  535. package/bin/skills/pennylane/references/devices_backends.md +596 -0
  536. package/bin/skills/pennylane/references/getting_started.md +227 -0
  537. package/bin/skills/pennylane/references/optimization.md +671 -0
  538. package/bin/skills/pennylane/references/quantum_chemistry.md +567 -0
  539. package/bin/skills/pennylane/references/quantum_circuits.md +437 -0
  540. package/bin/skills/pennylane/references/quantum_ml.md +571 -0
  541. package/bin/skills/perplexity-search/SKILL.md +448 -0
  542. package/bin/skills/perplexity-search/assets/.env.example +16 -0
  543. package/bin/skills/perplexity-search/references/model_comparison.md +386 -0
  544. package/bin/skills/perplexity-search/references/openrouter_setup.md +454 -0
  545. package/bin/skills/perplexity-search/references/search_strategies.md +258 -0
  546. package/bin/skills/perplexity-search/scripts/perplexity_search.py +277 -0
  547. package/bin/skills/perplexity-search/scripts/setup_env.py +171 -0
  548. package/bin/skills/plotly/SKILL.md +267 -0
  549. package/bin/skills/plotly/references/chart-types.md +488 -0
  550. package/bin/skills/plotly/references/export-interactivity.md +453 -0
  551. package/bin/skills/plotly/references/graph-objects.md +302 -0
  552. package/bin/skills/plotly/references/layouts-styling.md +457 -0
  553. package/bin/skills/plotly/references/plotly-express.md +213 -0
  554. package/bin/skills/polars/SKILL.md +387 -0
  555. package/bin/skills/polars/references/best_practices.md +649 -0
  556. package/bin/skills/polars/references/core_concepts.md +378 -0
  557. package/bin/skills/polars/references/io_guide.md +557 -0
  558. package/bin/skills/polars/references/operations.md +602 -0
  559. package/bin/skills/polars/references/pandas_migration.md +417 -0
  560. package/bin/skills/polars/references/transformations.md +549 -0
  561. package/bin/skills/protocolsio-integration/SKILL.md +421 -0
  562. package/bin/skills/protocolsio-integration/references/additional_features.md +387 -0
  563. package/bin/skills/protocolsio-integration/references/authentication.md +100 -0
  564. package/bin/skills/protocolsio-integration/references/discussions.md +225 -0
  565. package/bin/skills/protocolsio-integration/references/file_manager.md +412 -0
  566. package/bin/skills/protocolsio-integration/references/protocols_api.md +294 -0
  567. package/bin/skills/protocolsio-integration/references/workspaces.md +293 -0
  568. package/bin/skills/pubchem-database/SKILL.md +574 -0
  569. package/bin/skills/pubchem-database/references/api_reference.md +440 -0
  570. package/bin/skills/pubchem-database/scripts/bioactivity_query.py +367 -0
  571. package/bin/skills/pubchem-database/scripts/compound_search.py +297 -0
  572. package/bin/skills/pubmed-database/SKILL.md +460 -0
  573. package/bin/skills/pubmed-database/references/api_reference.md +298 -0
  574. package/bin/skills/pubmed-database/references/common_queries.md +453 -0
  575. package/bin/skills/pubmed-database/references/search_syntax.md +436 -0
  576. package/bin/skills/pufferlib/SKILL.md +436 -0
  577. package/bin/skills/pufferlib/references/environments.md +508 -0
  578. package/bin/skills/pufferlib/references/integration.md +621 -0
  579. package/bin/skills/pufferlib/references/policies.md +653 -0
  580. package/bin/skills/pufferlib/references/training.md +360 -0
  581. package/bin/skills/pufferlib/references/vectorization.md +557 -0
  582. package/bin/skills/pufferlib/scripts/env_template.py +340 -0
  583. package/bin/skills/pufferlib/scripts/train_template.py +239 -0
  584. package/bin/skills/pydeseq2/SKILL.md +559 -0
  585. package/bin/skills/pydeseq2/references/api_reference.md +228 -0
  586. package/bin/skills/pydeseq2/references/workflow_guide.md +582 -0
  587. package/bin/skills/pydeseq2/scripts/run_deseq2_analysis.py +353 -0
  588. package/bin/skills/pydicom/SKILL.md +434 -0
  589. package/bin/skills/pydicom/references/common_tags.md +228 -0
  590. package/bin/skills/pydicom/references/transfer_syntaxes.md +352 -0
  591. package/bin/skills/pydicom/scripts/anonymize_dicom.py +137 -0
  592. package/bin/skills/pydicom/scripts/dicom_to_image.py +172 -0
  593. package/bin/skills/pydicom/scripts/extract_metadata.py +173 -0
  594. package/bin/skills/pyhealth/SKILL.md +491 -0
  595. package/bin/skills/pyhealth/references/datasets.md +178 -0
  596. package/bin/skills/pyhealth/references/medical_coding.md +284 -0
  597. package/bin/skills/pyhealth/references/models.md +594 -0
  598. package/bin/skills/pyhealth/references/preprocessing.md +638 -0
  599. package/bin/skills/pyhealth/references/tasks.md +379 -0
  600. package/bin/skills/pyhealth/references/training_evaluation.md +648 -0
  601. package/bin/skills/pylabrobot/SKILL.md +185 -0
  602. package/bin/skills/pylabrobot/references/analytical-equipment.md +464 -0
  603. package/bin/skills/pylabrobot/references/hardware-backends.md +480 -0
  604. package/bin/skills/pylabrobot/references/liquid-handling.md +403 -0
  605. package/bin/skills/pylabrobot/references/material-handling.md +620 -0
  606. package/bin/skills/pylabrobot/references/resources.md +489 -0
  607. package/bin/skills/pylabrobot/references/visualization.md +532 -0
  608. package/bin/skills/pymatgen/SKILL.md +691 -0
  609. package/bin/skills/pymatgen/references/analysis_modules.md +530 -0
  610. package/bin/skills/pymatgen/references/core_classes.md +318 -0
  611. package/bin/skills/pymatgen/references/io_formats.md +469 -0
  612. package/bin/skills/pymatgen/references/materials_project_api.md +517 -0
  613. package/bin/skills/pymatgen/references/transformations_workflows.md +591 -0
  614. package/bin/skills/pymatgen/scripts/phase_diagram_generator.py +233 -0
  615. package/bin/skills/pymatgen/scripts/structure_analyzer.py +266 -0
  616. package/bin/skills/pymatgen/scripts/structure_converter.py +169 -0
  617. package/bin/skills/pymc/SKILL.md +572 -0
  618. package/bin/skills/pymc/assets/hierarchical_model_template.py +333 -0
  619. package/bin/skills/pymc/assets/linear_regression_template.py +241 -0
  620. package/bin/skills/pymc/references/distributions.md +320 -0
  621. package/bin/skills/pymc/references/sampling_inference.md +424 -0
  622. package/bin/skills/pymc/references/workflows.md +526 -0
  623. package/bin/skills/pymc/scripts/model_comparison.py +387 -0
  624. package/bin/skills/pymc/scripts/model_diagnostics.py +350 -0
  625. package/bin/skills/pymoo/SKILL.md +571 -0
  626. package/bin/skills/pymoo/references/algorithms.md +180 -0
  627. package/bin/skills/pymoo/references/constraints_mcdm.md +417 -0
  628. package/bin/skills/pymoo/references/operators.md +345 -0
  629. package/bin/skills/pymoo/references/problems.md +265 -0
  630. package/bin/skills/pymoo/references/visualization.md +353 -0
  631. package/bin/skills/pymoo/scripts/custom_problem_example.py +181 -0
  632. package/bin/skills/pymoo/scripts/decision_making_example.py +161 -0
  633. package/bin/skills/pymoo/scripts/many_objective_example.py +72 -0
  634. package/bin/skills/pymoo/scripts/multi_objective_example.py +63 -0
  635. package/bin/skills/pymoo/scripts/single_objective_example.py +59 -0
  636. package/bin/skills/pyopenms/SKILL.md +217 -0
  637. package/bin/skills/pyopenms/references/data_structures.md +497 -0
  638. package/bin/skills/pyopenms/references/feature_detection.md +410 -0
  639. package/bin/skills/pyopenms/references/file_io.md +349 -0
  640. package/bin/skills/pyopenms/references/identification.md +422 -0
  641. package/bin/skills/pyopenms/references/metabolomics.md +482 -0
  642. package/bin/skills/pyopenms/references/signal_processing.md +433 -0
  643. package/bin/skills/pysam/SKILL.md +265 -0
  644. package/bin/skills/pysam/references/alignment_files.md +280 -0
  645. package/bin/skills/pysam/references/common_workflows.md +520 -0
  646. package/bin/skills/pysam/references/sequence_files.md +407 -0
  647. package/bin/skills/pysam/references/variant_files.md +365 -0
  648. package/bin/skills/pytdc/SKILL.md +460 -0
  649. package/bin/skills/pytdc/references/datasets.md +246 -0
  650. package/bin/skills/pytdc/references/oracles.md +400 -0
  651. package/bin/skills/pytdc/references/utilities.md +684 -0
  652. package/bin/skills/pytdc/scripts/benchmark_evaluation.py +327 -0
  653. package/bin/skills/pytdc/scripts/load_and_split_data.py +214 -0
  654. package/bin/skills/pytdc/scripts/molecular_generation.py +404 -0
  655. package/bin/skills/qiskit/SKILL.md +275 -0
  656. package/bin/skills/qiskit/references/algorithms.md +607 -0
  657. package/bin/skills/qiskit/references/backends.md +433 -0
  658. package/bin/skills/qiskit/references/circuits.md +197 -0
  659. package/bin/skills/qiskit/references/patterns.md +533 -0
  660. package/bin/skills/qiskit/references/primitives.md +277 -0
  661. package/bin/skills/qiskit/references/setup.md +99 -0
  662. package/bin/skills/qiskit/references/transpilation.md +286 -0
  663. package/bin/skills/qiskit/references/visualization.md +415 -0
  664. package/bin/skills/qutip/SKILL.md +318 -0
  665. package/bin/skills/qutip/references/advanced.md +555 -0
  666. package/bin/skills/qutip/references/analysis.md +523 -0
  667. package/bin/skills/qutip/references/core_concepts.md +293 -0
  668. package/bin/skills/qutip/references/time_evolution.md +348 -0
  669. package/bin/skills/qutip/references/visualization.md +431 -0
  670. package/bin/skills/rdkit/SKILL.md +780 -0
  671. package/bin/skills/rdkit/references/api_reference.md +432 -0
  672. package/bin/skills/rdkit/references/descriptors_reference.md +595 -0
  673. package/bin/skills/rdkit/references/smarts_patterns.md +668 -0
  674. package/bin/skills/rdkit/scripts/molecular_properties.py +243 -0
  675. package/bin/skills/rdkit/scripts/similarity_search.py +297 -0
  676. package/bin/skills/rdkit/scripts/substructure_filter.py +386 -0
  677. package/bin/skills/reactome-database/SKILL.md +278 -0
  678. package/bin/skills/reactome-database/references/api_reference.md +465 -0
  679. package/bin/skills/reactome-database/scripts/reactome_query.py +286 -0
  680. package/bin/skills/rowan/SKILL.md +427 -0
  681. package/bin/skills/rowan/references/api_reference.md +413 -0
  682. package/bin/skills/rowan/references/molecule_handling.md +429 -0
  683. package/bin/skills/rowan/references/proteins_and_organization.md +499 -0
  684. package/bin/skills/rowan/references/rdkit_native.md +438 -0
  685. package/bin/skills/rowan/references/results_interpretation.md +481 -0
  686. package/bin/skills/rowan/references/workflow_types.md +591 -0
  687. package/bin/skills/scanpy/SKILL.md +386 -0
  688. package/bin/skills/scanpy/assets/analysis_template.py +295 -0
  689. package/bin/skills/scanpy/references/api_reference.md +251 -0
  690. package/bin/skills/scanpy/references/plotting_guide.md +352 -0
  691. package/bin/skills/scanpy/references/standard_workflow.md +206 -0
  692. package/bin/skills/scanpy/scripts/qc_analysis.py +200 -0
  693. package/bin/skills/scientific-brainstorming/SKILL.md +191 -0
  694. package/bin/skills/scientific-brainstorming/references/brainstorming_methods.md +326 -0
  695. package/bin/skills/scientific-visualization/SKILL.md +779 -0
  696. package/bin/skills/scientific-visualization/assets/color_palettes.py +197 -0
  697. package/bin/skills/scientific-visualization/assets/nature.mplstyle +63 -0
  698. package/bin/skills/scientific-visualization/assets/presentation.mplstyle +61 -0
  699. package/bin/skills/scientific-visualization/assets/publication.mplstyle +68 -0
  700. package/bin/skills/scientific-visualization/references/color_palettes.md +348 -0
  701. package/bin/skills/scientific-visualization/references/journal_requirements.md +320 -0
  702. package/bin/skills/scientific-visualization/references/matplotlib_examples.md +620 -0
  703. package/bin/skills/scientific-visualization/references/publication_guidelines.md +205 -0
  704. package/bin/skills/scientific-visualization/scripts/figure_export.py +343 -0
  705. package/bin/skills/scientific-visualization/scripts/style_presets.py +416 -0
  706. package/bin/skills/scikit-bio/SKILL.md +437 -0
  707. package/bin/skills/scikit-bio/references/api_reference.md +749 -0
  708. package/bin/skills/scikit-learn/SKILL.md +521 -0
  709. package/bin/skills/scikit-learn/references/model_evaluation.md +592 -0
  710. package/bin/skills/scikit-learn/references/pipelines_and_composition.md +612 -0
  711. package/bin/skills/scikit-learn/references/preprocessing.md +606 -0
  712. package/bin/skills/scikit-learn/references/quick_reference.md +433 -0
  713. package/bin/skills/scikit-learn/references/supervised_learning.md +378 -0
  714. package/bin/skills/scikit-learn/references/unsupervised_learning.md +505 -0
  715. package/bin/skills/scikit-learn/scripts/classification_pipeline.py +257 -0
  716. package/bin/skills/scikit-learn/scripts/clustering_analysis.py +386 -0
  717. package/bin/skills/scikit-survival/SKILL.md +399 -0
  718. package/bin/skills/scikit-survival/references/competing-risks.md +397 -0
  719. package/bin/skills/scikit-survival/references/cox-models.md +182 -0
  720. package/bin/skills/scikit-survival/references/data-handling.md +494 -0
  721. package/bin/skills/scikit-survival/references/ensemble-models.md +327 -0
  722. package/bin/skills/scikit-survival/references/evaluation-metrics.md +378 -0
  723. package/bin/skills/scikit-survival/references/svm-models.md +411 -0
  724. package/bin/skills/scvi-tools/SKILL.md +190 -0
  725. package/bin/skills/scvi-tools/references/differential-expression.md +581 -0
  726. package/bin/skills/scvi-tools/references/models-atac-seq.md +321 -0
  727. package/bin/skills/scvi-tools/references/models-multimodal.md +367 -0
  728. package/bin/skills/scvi-tools/references/models-scrna-seq.md +330 -0
  729. package/bin/skills/scvi-tools/references/models-spatial.md +438 -0
  730. package/bin/skills/scvi-tools/references/models-specialized.md +408 -0
  731. package/bin/skills/scvi-tools/references/theoretical-foundations.md +438 -0
  732. package/bin/skills/scvi-tools/references/workflows.md +546 -0
  733. package/bin/skills/seaborn/SKILL.md +673 -0
  734. package/bin/skills/seaborn/references/examples.md +822 -0
  735. package/bin/skills/seaborn/references/function_reference.md +770 -0
  736. package/bin/skills/seaborn/references/objects_interface.md +964 -0
  737. package/bin/skills/shap/SKILL.md +566 -0
  738. package/bin/skills/shap/references/explainers.md +339 -0
  739. package/bin/skills/shap/references/plots.md +507 -0
  740. package/bin/skills/shap/references/theory.md +449 -0
  741. package/bin/skills/shap/references/workflows.md +605 -0
  742. package/bin/skills/simpy/SKILL.md +429 -0
  743. package/bin/skills/simpy/references/events.md +374 -0
  744. package/bin/skills/simpy/references/monitoring.md +475 -0
  745. package/bin/skills/simpy/references/process-interaction.md +424 -0
  746. package/bin/skills/simpy/references/real-time.md +395 -0
  747. package/bin/skills/simpy/references/resources.md +275 -0
  748. package/bin/skills/simpy/scripts/basic_simulation_template.py +193 -0
  749. package/bin/skills/simpy/scripts/resource_monitor.py +345 -0
  750. package/bin/skills/stable-baselines3/SKILL.md +299 -0
  751. package/bin/skills/stable-baselines3/references/algorithms.md +333 -0
  752. package/bin/skills/stable-baselines3/references/callbacks.md +556 -0
  753. package/bin/skills/stable-baselines3/references/custom_environments.md +526 -0
  754. package/bin/skills/stable-baselines3/references/vectorized_envs.md +568 -0
  755. package/bin/skills/stable-baselines3/scripts/custom_env_template.py +314 -0
  756. package/bin/skills/stable-baselines3/scripts/evaluate_agent.py +245 -0
  757. package/bin/skills/stable-baselines3/scripts/train_rl_agent.py +165 -0
  758. package/bin/skills/statistical-analysis/SKILL.md +632 -0
  759. package/bin/skills/statistical-analysis/references/assumptions_and_diagnostics.md +369 -0
  760. package/bin/skills/statistical-analysis/references/bayesian_statistics.md +661 -0
  761. package/bin/skills/statistical-analysis/references/effect_sizes_and_power.md +581 -0
  762. package/bin/skills/statistical-analysis/references/reporting_standards.md +469 -0
  763. package/bin/skills/statistical-analysis/references/test_selection_guide.md +129 -0
  764. package/bin/skills/statistical-analysis/scripts/assumption_checks.py +539 -0
  765. package/bin/skills/statsmodels/SKILL.md +614 -0
  766. package/bin/skills/statsmodels/references/discrete_choice.md +669 -0
  767. package/bin/skills/statsmodels/references/glm.md +619 -0
  768. package/bin/skills/statsmodels/references/linear_models.md +447 -0
  769. package/bin/skills/statsmodels/references/stats_diagnostics.md +859 -0
  770. package/bin/skills/statsmodels/references/time_series.md +716 -0
  771. package/bin/skills/string-database/SKILL.md +534 -0
  772. package/bin/skills/string-database/references/string_reference.md +455 -0
  773. package/bin/skills/string-database/scripts/string_api.py +369 -0
  774. package/bin/skills/sympy/SKILL.md +500 -0
  775. package/bin/skills/sympy/references/advanced-topics.md +635 -0
  776. package/bin/skills/sympy/references/code-generation-printing.md +599 -0
  777. package/bin/skills/sympy/references/core-capabilities.md +348 -0
  778. package/bin/skills/sympy/references/matrices-linear-algebra.md +526 -0
  779. package/bin/skills/sympy/references/physics-mechanics.md +592 -0
  780. package/bin/skills/torch_geometric/SKILL.md +676 -0
  781. package/bin/skills/torch_geometric/references/datasets_reference.md +574 -0
  782. package/bin/skills/torch_geometric/references/layers_reference.md +485 -0
  783. package/bin/skills/torch_geometric/references/transforms_reference.md +679 -0
  784. package/bin/skills/torch_geometric/scripts/benchmark_model.py +309 -0
  785. package/bin/skills/torch_geometric/scripts/create_gnn_template.py +529 -0
  786. package/bin/skills/torch_geometric/scripts/visualize_graph.py +313 -0
  787. package/bin/skills/torchdrug/SKILL.md +450 -0
  788. package/bin/skills/torchdrug/references/core_concepts.md +565 -0
  789. package/bin/skills/torchdrug/references/datasets.md +380 -0
  790. package/bin/skills/torchdrug/references/knowledge_graphs.md +320 -0
  791. package/bin/skills/torchdrug/references/models_architectures.md +541 -0
  792. package/bin/skills/torchdrug/references/molecular_generation.md +352 -0
  793. package/bin/skills/torchdrug/references/molecular_property_prediction.md +169 -0
  794. package/bin/skills/torchdrug/references/protein_modeling.md +272 -0
  795. package/bin/skills/torchdrug/references/retrosynthesis.md +436 -0
  796. package/bin/skills/transformers/SKILL.md +164 -0
  797. package/bin/skills/transformers/references/generation.md +467 -0
  798. package/bin/skills/transformers/references/models.md +361 -0
  799. package/bin/skills/transformers/references/pipelines.md +335 -0
  800. package/bin/skills/transformers/references/tokenizers.md +447 -0
  801. package/bin/skills/transformers/references/training.md +500 -0
  802. package/bin/skills/umap-learn/SKILL.md +479 -0
  803. package/bin/skills/umap-learn/references/api_reference.md +532 -0
  804. package/bin/skills/uniprot-database/SKILL.md +195 -0
  805. package/bin/skills/uniprot-database/references/api_examples.md +413 -0
  806. package/bin/skills/uniprot-database/references/api_fields.md +275 -0
  807. package/bin/skills/uniprot-database/references/id_mapping_databases.md +285 -0
  808. package/bin/skills/uniprot-database/references/query_syntax.md +256 -0
  809. package/bin/skills/uniprot-database/scripts/uniprot_client.py +341 -0
  810. package/bin/skills/uspto-database/SKILL.md +607 -0
  811. package/bin/skills/uspto-database/references/additional_apis.md +394 -0
  812. package/bin/skills/uspto-database/references/patentsearch_api.md +266 -0
  813. package/bin/skills/uspto-database/references/peds_api.md +212 -0
  814. package/bin/skills/uspto-database/references/trademark_api.md +358 -0
  815. package/bin/skills/uspto-database/scripts/patent_search.py +290 -0
  816. package/bin/skills/uspto-database/scripts/peds_client.py +285 -0
  817. package/bin/skills/uspto-database/scripts/trademark_client.py +311 -0
  818. package/bin/skills/vaex/SKILL.md +182 -0
  819. package/bin/skills/vaex/references/core_dataframes.md +367 -0
  820. package/bin/skills/vaex/references/data_processing.md +555 -0
  821. package/bin/skills/vaex/references/io_operations.md +703 -0
  822. package/bin/skills/vaex/references/machine_learning.md +728 -0
  823. package/bin/skills/vaex/references/performance.md +571 -0
  824. package/bin/skills/vaex/references/visualization.md +613 -0
  825. package/bin/skills/zarr-python/SKILL.md +779 -0
  826. package/bin/skills/zarr-python/references/api_reference.md +515 -0
  827. package/bin/skills/zinc-database/SKILL.md +404 -0
  828. package/bin/skills/zinc-database/references/api_reference.md +692 -0
  829. package/bin/synsc +0 -0
  830. package/package.json +1 -1
@@ -0,0 +1,1182 @@
1
+ ---
2
+ name: imaging-data-commons
3
+ description: Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index. Use for accessing large-scale radiology (CT, MR, PET) and pathology datasets for AI training or research. No authentication required. Query by metadata, visualize in browser, check licenses.
4
+ license: This skill is provided under the MIT License. IDC data itself has individual licensing (mostly CC-BY, some CC-NC) that must be respected when using the data.
5
+ metadata:
6
+ version: 1.2.0
7
+ skill-author: Andrey Fedorov, @fedorov
8
+ idc-index: "0.11.7"
9
+ repository: https://github.com/ImagingDataCommons/idc-claude-skill
10
+ ---
11
+
12
+ # Imaging Data Commons
13
+
14
+ ## Overview
15
+
16
+ Use the `idc-index` Python package to query and download public cancer imaging data from the National Cancer Institute Imaging Data Commons (IDC). No authentication required for data access.
17
+
18
+ **Primary tool:** `idc-index` ([GitHub](https://github.com/imagingdatacommons/idc-index))
19
+
20
+ **Check current data scale for the latest version:**
21
+
22
+ ```python
23
+ from idc_index import IDCClient
24
+ client = IDCClient()
25
+
26
+ # get IDC data version
27
+ print(client.get_idc_version())
28
+
29
+ # Get collection count and total series
30
+ stats = client.sql_query("""
31
+ SELECT
32
+ COUNT(DISTINCT collection_id) as collections,
33
+ COUNT(DISTINCT analysis_result_id) as analysis_results,
34
+ COUNT(DISTINCT PatientID) as patients,
35
+ COUNT(DISTINCT StudyInstanceUID) as studies,
36
+ COUNT(DISTINCT SeriesInstanceUID) as series,
37
+ SUM(instanceCount) as instances,
38
+ SUM(series_size_MB)/1000000 as size_TB
39
+ FROM index
40
+ """)
41
+ print(stats)
42
+ ```
43
+
44
+ **Core workflow:**
45
+ 1. Query metadata → `client.sql_query()`
46
+ 2. Download DICOM files → `client.download_from_selection()`
47
+ 3. Visualize in browser → `client.get_viewer_URL(seriesInstanceUID=...)`
48
+
49
+ ## When to Use This Skill
50
+
51
+ - Finding publicly available radiology (CT, MR, PET) or pathology (slide microscopy) images
52
+ - Selecting image subsets by cancer type, modality, anatomical site, or other metadata
53
+ - Downloading DICOM data from IDC
54
+ - Checking data licenses before use in research or commercial applications
55
+ - Visualizing medical images in a browser without local DICOM viewer software
56
+
57
+ ## IDC Data Model
58
+
59
+ IDC adds two grouping levels above the standard DICOM hierarchy (Patient → Study → Series → Instance):
60
+
61
+ - **collection_id**: Groups patients by disease, modality, or research focus (e.g., `tcga_luad`, `nlst`). A patient belongs to exactly one collection.
62
+ - **analysis_result_id**: Identifies derived objects (segmentations, annotations, radiomics features) across one or more original collections.
63
+
64
+ Use `collection_id` to find original imaging data, may include annotations deposited along with the images; use `analysis_result_id` to find AI-generated or expert annotations.
65
+
66
+ **Key identifiers for queries:**
67
+ | Identifier | Scope | Use for |
68
+ |------------|-------|---------|
69
+ | `collection_id` | Dataset grouping | Filtering by project/study |
70
+ | `PatientID` | Patient | Grouping images by patient |
71
+ | `StudyInstanceUID` | DICOM study | Grouping of related series, visualization |
72
+ | `SeriesInstanceUID` | DICOM series | Grouping of related series, visualization |
73
+
74
+ ## Index Tables
75
+
76
+ The `idc-index` package provides multiple metadata index tables, accessible via SQL or as pandas DataFrames.
77
+
78
+ **Important:** Use `client.indices_overview` to get current table descriptions and column schemas. This is the authoritative source for available columns and their types — always query it when writing SQL or exploring data structure.
79
+
80
+ ### Available Tables
81
+
82
+ | Table | Row Granularity | Loaded | Description |
83
+ |-------|-----------------|--------|-------------|
84
+ | `index` | 1 row = 1 DICOM series | Auto | Primary metadata for all current IDC data |
85
+ | `prior_versions_index` | 1 row = 1 DICOM series | Auto | Series from previous IDC releases; for downloading deprecated data |
86
+ | `collections_index` | 1 row = 1 collection | fetch_index() | Collection-level metadata and descriptions |
87
+ | `analysis_results_index` | 1 row = 1 analysis result collection | fetch_index() | Metadata about derived datasets (annotations, segmentations) |
88
+ | `clinical_index` | 1 row = 1 clinical data column | fetch_index() | Dictionary mapping clinical table columns to collections |
89
+ | `sm_index` | 1 row = 1 slide microscopy series | fetch_index() | Slide Microscopy (pathology) series metadata |
90
+ | `sm_instance_index` | 1 row = 1 slide microscopy instance | fetch_index() | Instance-level (SOPInstanceUID) metadata for slide microscopy |
91
+ | `seg_index` | 1 row = 1 DICOM Segmentation series | fetch_index() | Segmentation metadata: algorithm, segment count, reference to source image series |
92
+
93
+ **Auto** = loaded automatically when `IDCClient()` is instantiated
94
+ **fetch_index()** = requires `client.fetch_index("table_name")` to load
95
+
96
+ ### Joining Tables
97
+
98
+ **Key columns are not explicitly labeled, the following is a subset that can be used in joins.**
99
+
100
+ | Join Column | Tables | Use Case |
101
+ |-------------|--------|----------|
102
+ | `collection_id` | index, prior_versions_index, collections_index, clinical_index | Link series to collection metadata or clinical data |
103
+ | `SeriesInstanceUID` | index, prior_versions_index, sm_index, sm_instance_index | Link series across tables; connect to slide microscopy details |
104
+ | `StudyInstanceUID` | index, prior_versions_index | Link studies across current and historical data |
105
+ | `PatientID` | index, prior_versions_index | Link patients across current and historical data |
106
+ | `analysis_result_id` | index, analysis_results_index | Link series to analysis result metadata (annotations, segmentations) |
107
+ | `source_DOI` | index, analysis_results_index | Link by publication DOI |
108
+ | `crdc_series_uuid` | index, prior_versions_index | Link by CRDC unique identifier |
109
+ | `Modality` | index, prior_versions_index | Filter by imaging modality |
110
+ | `SeriesInstanceUID` | index, seg_index | Link segmentation series to its index metadata |
111
+ | `segmented_SeriesInstanceUID` | seg_index → index | Link segmentation to its source image series (join seg_index.segmented_SeriesInstanceUID = index.SeriesInstanceUID) |
112
+
113
+ **Note:** `Subjects`, `Updated`, and `Description` appear in multiple tables but have different meanings (counts vs identifiers, different update contexts).
114
+
115
+ **Example joins:**
116
+ ```python
117
+ from idc_index import IDCClient
118
+ client = IDCClient()
119
+
120
+ # Join index with collections_index to get cancer types
121
+ client.fetch_index("collections_index")
122
+ result = client.sql_query("""
123
+ SELECT i.SeriesInstanceUID, i.Modality, c.CancerTypes, c.TumorLocations
124
+ FROM index i
125
+ JOIN collections_index c ON i.collection_id = c.collection_id
126
+ WHERE i.Modality = 'MR'
127
+ LIMIT 10
128
+ """)
129
+
130
+ # Join index with sm_index for slide microscopy details
131
+ client.fetch_index("sm_index")
132
+ result = client.sql_query("""
133
+ SELECT i.collection_id, i.PatientID, s.ObjectiveLensPower, s.min_PixelSpacing_2sf
134
+ FROM index i
135
+ JOIN sm_index s ON i.SeriesInstanceUID = s.SeriesInstanceUID
136
+ LIMIT 10
137
+ """)
138
+
139
+ # Join seg_index with index to find segmentations and their source images
140
+ client.fetch_index("seg_index")
141
+ result = client.sql_query("""
142
+ SELECT
143
+ s.SeriesInstanceUID as seg_series,
144
+ s.AlgorithmName,
145
+ s.total_segments,
146
+ src.collection_id,
147
+ src.Modality as source_modality,
148
+ src.BodyPartExamined
149
+ FROM seg_index s
150
+ JOIN index src ON s.segmented_SeriesInstanceUID = src.SeriesInstanceUID
151
+ WHERE s.AlgorithmType = 'AUTOMATIC'
152
+ LIMIT 10
153
+ """)
154
+ ```
155
+
156
+ ### Accessing Index Tables
157
+
158
+ **Via SQL (recommended for filtering/aggregation):**
159
+ ```python
160
+ from idc_index import IDCClient
161
+ client = IDCClient()
162
+
163
+ # Query the primary index (always available)
164
+ results = client.sql_query("SELECT * FROM index WHERE Modality = 'CT' LIMIT 10")
165
+
166
+ # Fetch and query additional indices
167
+ client.fetch_index("collections_index")
168
+ collections = client.sql_query("SELECT collection_id, CancerTypes, TumorLocations FROM collections_index")
169
+
170
+ client.fetch_index("analysis_results_index")
171
+ analysis = client.sql_query("SELECT * FROM analysis_results_index LIMIT 5")
172
+ ```
173
+
174
+ **As pandas DataFrames (direct access):**
175
+ ```python
176
+ # Primary index (always available after client initialization)
177
+ df = client.index
178
+
179
+ # Fetch and access on-demand indices
180
+ client.fetch_index("sm_index")
181
+ sm_df = client.sm_index
182
+ ```
183
+
184
+ ### Discovering Table Schemas (Essential for Query Writing)
185
+
186
+ The `indices_overview` dictionary contains complete schema information for all tables. **Always consult this when writing queries or exploring data structure.**
187
+
188
+ **DICOM attribute mapping:** Many columns are populated directly from DICOM attributes in the source files. The column description in the schema indicates when a column corresponds to a DICOM attribute (e.g., "DICOM Modality attribute" or references a DICOM tag). This allows leveraging DICOM knowledge when querying — standard DICOM attribute names like `PatientID`, `StudyInstanceUID`, `Modality`, `BodyPartExamined` work as expected.
189
+
190
+ ```python
191
+ from idc_index import IDCClient
192
+ client = IDCClient()
193
+
194
+ # List all available indices with descriptions
195
+ for name, info in client.indices_overview.items():
196
+ print(f"\n{name}:")
197
+ print(f" Installed: {info['installed']}")
198
+ print(f" Description: {info['description']}")
199
+
200
+ # Get complete schema for a specific index (columns, types, descriptions)
201
+ schema = client.indices_overview["index"]["schema"]
202
+ print(f"\nTable: {schema['table_description']}")
203
+ print("\nColumns:")
204
+ for col in schema['columns']:
205
+ desc = col.get('description', 'No description')
206
+ # Description indicates if column is from DICOM attribute
207
+ print(f" {col['name']} ({col['type']}): {desc}")
208
+
209
+ # Find columns that are DICOM attributes (check description for "DICOM" reference)
210
+ dicom_cols = [c['name'] for c in schema['columns'] if 'DICOM' in c.get('description', '').upper()]
211
+ print(f"\nDICOM-sourced columns: {dicom_cols}")
212
+ ```
213
+
214
+ **Alternative: use `get_index_schema()` method:**
215
+ ```python
216
+ schema = client.get_index_schema("index")
217
+ # Returns same schema dict: {'table_description': ..., 'columns': [...]}
218
+ ```
219
+
220
+ ### Key Columns in Primary `index` Table
221
+
222
+ Most common columns for queries (use `indices_overview` for complete list and descriptions):
223
+
224
+ | Column | Type | DICOM | Description |
225
+ |--------|------|-------|-------------|
226
+ | `collection_id` | STRING | No | IDC collection identifier |
227
+ | `analysis_result_id` | STRING | No | If applicable, indicates what analysis results collection given series is part of |
228
+ | `source_DOI` | STRING | No | DOI linking to dataset details; use for learning more about the content and for attribution (see citations below) |
229
+ | `PatientID` | STRING | Yes | Patient identifier |
230
+ | `StudyInstanceUID` | STRING | Yes | DICOM Study UID |
231
+ | `SeriesInstanceUID` | STRING | Yes | DICOM Series UID — use for downloads/viewing |
232
+ | `Modality` | STRING | Yes | Imaging modality (CT, MR, PT, SM, etc.) |
233
+ | `BodyPartExamined` | STRING | Yes | Anatomical region |
234
+ | `SeriesDescription` | STRING | Yes | Description of the series |
235
+ | `Manufacturer` | STRING | Yes | Equipment manufacturer |
236
+ | `StudyDate` | STRING | Yes | Date study was performed |
237
+ | `PatientSex` | STRING | Yes | Patient sex |
238
+ | `PatientAge` | STRING | Yes | Patient age at time of study |
239
+ | `license_short_name` | STRING | No | License type (CC BY 4.0, CC BY-NC 4.0, etc.) |
240
+ | `series_size_MB` | FLOAT | No | Size of series in megabytes |
241
+ | `instanceCount` | INTEGER | No | Number of DICOM instances in series |
242
+
243
+ **DICOM = Yes**: Column value extracted from the DICOM attribute with the same name. Refer to the [DICOM standard](https://dicom.nema.org/medical/dicom/current/output/chtml/part06/chapter_6.html) for numeric tag mappings. Use standard DICOM knowledge for expected values and formats.
244
+
245
+ ### Clinical Data Access
246
+
247
+ ```python
248
+ # Fetch clinical index (also downloads clinical data tables)
249
+ client.fetch_index("clinical_index")
250
+
251
+ # Query clinical index to find available tables and their columns
252
+ tables = client.sql_query("SELECT DISTINCT table_name, column_label FROM clinical_index")
253
+
254
+ # Load a specific clinical table as DataFrame
255
+ clinical_df = client.get_clinical_table("table_name")
256
+ ```
257
+
258
+ See `references/clinical_data_guide.md` for detailed workflows including value mapping patterns and joining clinical data with imaging.
259
+
260
+ ## Data Access Options
261
+
262
+ | Method | Auth Required | Best For |
263
+ |--------|---------------|----------|
264
+ | `idc-index` | No | Key queries and downloads (recommended) |
265
+ | IDC Portal | No | Interactive exploration, manual selection, browser-based download |
266
+ | BigQuery | Yes (GCP account) | Complex queries, full DICOM metadata |
267
+ | DICOMweb proxy | No | Tool integration via DICOMweb API |
268
+ | Cloud storage (S3/GCS) | No | Direct file access, bulk downloads, custom pipelines |
269
+
270
+ **Cloud storage organization**
271
+
272
+ IDC maintains all DICOM files in public cloud storage buckets mirrored between AWS S3 and Google Cloud Storage. Files are organized by CRDC UUIDs (not DICOM UIDs) to support versioning.
273
+
274
+ | Bucket (AWS / GCS) | License | Content |
275
+ |--------------------|---------|---------|
276
+ | `idc-open-data` / `idc-open-data` | No commercial restriction | >90% of IDC data |
277
+ | `idc-open-data-two` / `idc-open-idc1` | No commercial restriction | Collections with potential head scans |
278
+ | `idc-open-data-cr` / `idc-open-cr` | Commercial use restricted (CC BY-NC) | ~4% of data |
279
+
280
+ Files are stored as `<crdc_series_uuid>/<crdc_instance_uuid>.dcm`. Access is free (no egress fees) via AWS CLI, gsutil, or s5cmd with anonymous access. Use `series_aws_url` column from the index for S3 URLs; GCS uses the same path structure.
281
+
282
+ See `references/cloud_storage_guide.md` for bucket details, access commands, UUID mapping, and versioning.
283
+
284
+ **DICOMweb access**
285
+
286
+ IDC data is available via DICOMweb interface (Google Cloud Healthcare API implementation) for integration with PACS systems and DICOMweb-compatible tools.
287
+
288
+ | Endpoint | Auth | Use Case |
289
+ |----------|------|----------|
290
+ | Public proxy | No | Testing, moderate queries, daily quota |
291
+ | Google Healthcare | Yes (GCP) | Production use, higher quotas |
292
+
293
+ See `references/dicomweb_guide.md` for endpoint URLs, code examples, supported operations, and implementation details.
294
+
295
+ ## Installation and Setup
296
+
297
+ **Required (for basic access):**
298
+ ```bash
299
+ pip install --upgrade idc-index
300
+ ```
301
+
302
+ **Important:** New IDC data release will always trigger a new version of `idc-index`. Always use `--upgrade` flag while installing, unless an older version is needed for reproducibility.
303
+
304
+ **Tested with:** idc-index 0.11.7 (IDC data version v23)
305
+
306
+ **Optional (for data analysis):**
307
+ ```bash
308
+ pip install pandas numpy pydicom
309
+ ```
310
+
311
+ ## Core Capabilities
312
+
313
+ ### 1. Data Discovery and Exploration
314
+
315
+ Discover what imaging collections and data are available in IDC:
316
+
317
+ ```python
318
+ from idc_index import IDCClient
319
+
320
+ client = IDCClient()
321
+
322
+ # Get summary statistics from primary index
323
+ query = """
324
+ SELECT
325
+ collection_id,
326
+ COUNT(DISTINCT PatientID) as patients,
327
+ COUNT(DISTINCT SeriesInstanceUID) as series,
328
+ SUM(series_size_MB) as size_mb
329
+ FROM index
330
+ GROUP BY collection_id
331
+ ORDER BY patients DESC
332
+ """
333
+ collections_summary = client.sql_query(query)
334
+
335
+ # For richer collection metadata, use collections_index
336
+ client.fetch_index("collections_index")
337
+ collections_info = client.sql_query("""
338
+ SELECT collection_id, CancerTypes, TumorLocations, Species, Subjects, SupportingData
339
+ FROM collections_index
340
+ """)
341
+
342
+ # For analysis results (annotations, segmentations), use analysis_results_index
343
+ client.fetch_index("analysis_results_index")
344
+ analysis_info = client.sql_query("""
345
+ SELECT analysis_result_id, analysis_result_title, Subjects, Collections, Modalities
346
+ FROM analysis_results_index
347
+ """)
348
+ ```
349
+
350
+ **`collections_index`** provides curated metadata per collection: cancer types, tumor locations, species, subject counts, and supporting data types — without needing to aggregate from the primary index.
351
+
352
+ **`analysis_results_index`** lists derived datasets (AI segmentations, expert annotations, radiomics features) with their source collections and modalities.
353
+
354
+ ### 2. Querying Metadata with SQL
355
+
356
+ Query the IDC mini-index using SQL to find specific datasets.
357
+
358
+ **First, explore available values for filter columns:**
359
+ ```python
360
+ from idc_index import IDCClient
361
+
362
+ client = IDCClient()
363
+
364
+ # Check what Modality values exist
365
+ modalities = client.sql_query("""
366
+ SELECT DISTINCT Modality, COUNT(*) as series_count
367
+ FROM index
368
+ GROUP BY Modality
369
+ ORDER BY series_count DESC
370
+ """)
371
+ print(modalities)
372
+
373
+ # Check what BodyPartExamined values exist for MR modality
374
+ body_parts = client.sql_query("""
375
+ SELECT DISTINCT BodyPartExamined, COUNT(*) as series_count
376
+ FROM index
377
+ WHERE Modality = 'MR' AND BodyPartExamined IS NOT NULL
378
+ GROUP BY BodyPartExamined
379
+ ORDER BY series_count DESC
380
+ LIMIT 20
381
+ """)
382
+ print(body_parts)
383
+ ```
384
+
385
+ **Then query with validated filter values:**
386
+ ```python
387
+ # Find breast MRI scans (use actual values from exploration above)
388
+ results = client.sql_query("""
389
+ SELECT
390
+ collection_id,
391
+ PatientID,
392
+ SeriesInstanceUID,
393
+ Modality,
394
+ SeriesDescription,
395
+ license_short_name
396
+ FROM index
397
+ WHERE Modality = 'MR'
398
+ AND BodyPartExamined = 'BREAST'
399
+ LIMIT 20
400
+ """)
401
+
402
+ # Access results as pandas DataFrame
403
+ for idx, row in results.iterrows():
404
+ print(f"Patient: {row['PatientID']}, Series: {row['SeriesInstanceUID']}")
405
+ ```
406
+
407
+ **To filter by cancer type, join with `collections_index`:**
408
+ ```python
409
+ client.fetch_index("collections_index")
410
+ results = client.sql_query("""
411
+ SELECT i.collection_id, i.PatientID, i.SeriesInstanceUID, i.Modality
412
+ FROM index i
413
+ JOIN collections_index c ON i.collection_id = c.collection_id
414
+ WHERE c.CancerTypes LIKE '%Breast%'
415
+ AND i.Modality = 'MR'
416
+ LIMIT 20
417
+ """)
418
+ ```
419
+
420
+ **Available metadata fields** (use `client.indices_overview` for complete list):
421
+ - Identifiers: collection_id, PatientID, StudyInstanceUID, SeriesInstanceUID
422
+ - Imaging: Modality, BodyPartExamined, Manufacturer, ManufacturerModelName
423
+ - Clinical: PatientAge, PatientSex, StudyDate
424
+ - Descriptions: StudyDescription, SeriesDescription
425
+ - Licensing: license_short_name
426
+
427
+ **Note:** Cancer type is in `collections_index.CancerTypes`, not in the primary `index` table.
428
+
429
+ ### 3. Downloading DICOM Files
430
+
431
+ Download imaging data efficiently from IDC's cloud storage:
432
+
433
+ **Download entire collection:**
434
+ ```python
435
+ from idc_index import IDCClient
436
+
437
+ client = IDCClient()
438
+
439
+ # Download small collection (RIDER Pilot ~1GB)
440
+ client.download_from_selection(
441
+ collection_id="rider_pilot",
442
+ downloadDir="./data/rider"
443
+ )
444
+ ```
445
+
446
+ **Download specific series:**
447
+ ```python
448
+ # First, query for series UIDs
449
+ series_df = client.sql_query("""
450
+ SELECT SeriesInstanceUID
451
+ FROM index
452
+ WHERE Modality = 'CT'
453
+ AND BodyPartExamined = 'CHEST'
454
+ AND collection_id = 'nlst'
455
+ LIMIT 5
456
+ """)
457
+
458
+ # Download only those series
459
+ client.download_from_selection(
460
+ seriesInstanceUID=list(series_df['SeriesInstanceUID'].values),
461
+ downloadDir="./data/lung_ct"
462
+ )
463
+ ```
464
+
465
+ **Custom directory structure:**
466
+
467
+ Default `dirTemplate`: `%collection_id/%PatientID/%StudyInstanceUID/%Modality_%SeriesInstanceUID`
468
+
469
+ ```python
470
+ # Simplified hierarchy (omit StudyInstanceUID level)
471
+ client.download_from_selection(
472
+ collection_id="tcga_luad",
473
+ downloadDir="./data",
474
+ dirTemplate="%collection_id/%PatientID/%Modality"
475
+ )
476
+ # Results in: ./data/tcga_luad/TCGA-05-4244/CT/
477
+
478
+ # Flat structure (all files in one directory)
479
+ client.download_from_selection(
480
+ seriesInstanceUID=list(series_df['SeriesInstanceUID'].values),
481
+ downloadDir="./data/flat",
482
+ dirTemplate=""
483
+ )
484
+ # Results in: ./data/flat/*.dcm
485
+ ```
486
+
487
+ ### Command-Line Download
488
+
489
+ The `idc download` command provides command-line access to download functionality without writing Python code. Available after installing `idc-index`.
490
+
491
+ **Auto-detects input type:** manifest file path, or identifiers (collection_id, PatientID, StudyInstanceUID, SeriesInstanceUID, crdc_series_uuid).
492
+
493
+ ```bash
494
+ # Download entire collection
495
+ idc download rider_pilot --download-dir ./data
496
+
497
+ # Download specific series by UID
498
+ idc download "1.3.6.1.4.1.9328.50.1.69736" --download-dir ./data
499
+
500
+ # Download multiple items (comma-separated)
501
+ idc download "tcga_luad,tcga_lusc" --download-dir ./data
502
+
503
+ # Download from manifest file (auto-detected)
504
+ idc download manifest.txt --download-dir ./data
505
+ ```
506
+
507
+ **Options:**
508
+
509
+ | Option | Description |
510
+ |--------|-------------|
511
+ | `--download-dir` | Output directory (default: current directory) |
512
+ | `--dir-template` | Directory hierarchy template (default: `%collection_id/%PatientID/%StudyInstanceUID/%Modality_%SeriesInstanceUID`) |
513
+ | `--log-level` | Verbosity: debug, info, warning, error, critical |
514
+
515
+ **Manifest files:**
516
+
517
+ Manifest files contain S3 URLs (one per line) and can be:
518
+ - Exported from the IDC Portal after cohort selection
519
+ - Shared by collaborators for reproducible data access
520
+ - Generated programmatically from query results
521
+
522
+ Format (one S3 URL per line):
523
+ ```
524
+ s3://idc-open-data/cb09464a-c5cc-4428-9339-d7fa87cfe837/*
525
+ s3://idc-open-data/88f3990d-bdef-49cd-9b2b-4787767240f2/*
526
+ ```
527
+
528
+ **Example: Generate manifest from Python query:**
529
+
530
+ ```python
531
+ from idc_index import IDCClient
532
+
533
+ client = IDCClient()
534
+
535
+ # Query for series URLs
536
+ results = client.sql_query("""
537
+ SELECT series_aws_url
538
+ FROM index
539
+ WHERE collection_id = 'rider_pilot' AND Modality = 'CT'
540
+ """)
541
+
542
+ # Save as manifest file
543
+ with open('ct_manifest.txt', 'w') as f:
544
+ for url in results['series_aws_url']:
545
+ f.write(url + '\n')
546
+ ```
547
+
548
+ Then download:
549
+ ```bash
550
+ idc download ct_manifest.txt --download-dir ./ct_data
551
+ ```
552
+
553
+ ### 4. Visualizing IDC Images
554
+
555
+ View DICOM data in browser without downloading:
556
+
557
+ ```python
558
+ from idc_index import IDCClient
559
+ import webbrowser
560
+
561
+ client = IDCClient()
562
+
563
+ # First query to get valid UIDs
564
+ results = client.sql_query("""
565
+ SELECT SeriesInstanceUID, StudyInstanceUID
566
+ FROM index
567
+ WHERE collection_id = 'rider_pilot' AND Modality = 'CT'
568
+ LIMIT 1
569
+ """)
570
+
571
+ # View single series
572
+ viewer_url = client.get_viewer_URL(seriesInstanceUID=results.iloc[0]['SeriesInstanceUID'])
573
+ webbrowser.open(viewer_url)
574
+
575
+ # View all series in a study (useful for multi-series exams like MRI protocols)
576
+ viewer_url = client.get_viewer_URL(studyInstanceUID=results.iloc[0]['StudyInstanceUID'])
577
+ webbrowser.open(viewer_url)
578
+ ```
579
+
580
+ The method automatically selects OHIF v3 for radiology or SLIM for slide microscopy. Viewing by study is useful when a DICOM Study contains multiple Series (e.g., T1, T2, DWI sequences from a single MRI session).
581
+
582
+ ### 5. Understanding and Checking Licenses
583
+
584
+ Check data licensing before use (critical for commercial applications):
585
+
586
+ ```python
587
+ from idc_index import IDCClient
588
+
589
+ client = IDCClient()
590
+
591
+ # Check licenses for all collections
592
+ query = """
593
+ SELECT DISTINCT
594
+ collection_id,
595
+ license_short_name,
596
+ COUNT(DISTINCT SeriesInstanceUID) as series_count
597
+ FROM index
598
+ GROUP BY collection_id, license_short_name
599
+ ORDER BY collection_id
600
+ """
601
+
602
+ licenses = client.sql_query(query)
603
+ print(licenses)
604
+ ```
605
+
606
+ **License types in IDC:**
607
+ - **CC BY 4.0** / **CC BY 3.0** (~97% of data) - Allows commercial use with attribution
608
+ - **CC BY-NC 4.0** / **CC BY-NC 3.0** (~3% of data) - Non-commercial use only
609
+ - **Custom licenses** (rare) - Some collections have specific terms (e.g., NLM Terms and Conditions)
610
+
611
+ **Important:** Always check the license before using IDC data in publications or commercial applications. Each DICOM file is tagged with its specific license in metadata.
612
+
613
+ ### Generating Citations for Attribution
614
+
615
+ The `source_DOI` column contains DOIs linking to publications describing how the data was generated. To satisfy attribution requirements, use `citations_from_selection()` to generate properly formatted citations:
616
+
617
+ ```python
618
+ from idc_index import IDCClient
619
+
620
+ client = IDCClient()
621
+
622
+ # Get citations for a collection (APA format by default)
623
+ citations = client.citations_from_selection(collection_id="rider_pilot")
624
+ for citation in citations:
625
+ print(citation)
626
+
627
+ # Get citations for specific series
628
+ results = client.sql_query("""
629
+ SELECT SeriesInstanceUID FROM index
630
+ WHERE collection_id = 'tcga_luad' LIMIT 5
631
+ """)
632
+ citations = client.citations_from_selection(
633
+ seriesInstanceUID=list(results['SeriesInstanceUID'].values)
634
+ )
635
+
636
+ # Alternative format: BibTeX (for LaTeX documents)
637
+ bibtex_citations = client.citations_from_selection(
638
+ collection_id="tcga_luad",
639
+ citation_format=IDCClient.CITATION_FORMAT_BIBTEX
640
+ )
641
+ ```
642
+
643
+ **Parameters:**
644
+ - `collection_id`: Filter by collection(s)
645
+ - `patientId`: Filter by patient ID(s)
646
+ - `studyInstanceUID`: Filter by study UID(s)
647
+ - `seriesInstanceUID`: Filter by series UID(s)
648
+ - `citation_format`: Use `IDCClient.CITATION_FORMAT_*` constants:
649
+ - `CITATION_FORMAT_APA` (default) - APA style
650
+ - `CITATION_FORMAT_BIBTEX` - BibTeX for LaTeX
651
+ - `CITATION_FORMAT_JSON` - CSL JSON
652
+ - `CITATION_FORMAT_TURTLE` - RDF Turtle
653
+
654
+ **Best practice:** When publishing results using IDC data, include the generated citations to properly attribute the data sources and satisfy license requirements.
655
+
656
+ ### 6. Batch Processing and Filtering
657
+
658
+ Process large datasets efficiently with filtering:
659
+
660
+ ```python
661
+ from idc_index import IDCClient
662
+ import pandas as pd
663
+
664
+ client = IDCClient()
665
+
666
+ # Find chest CT scans from GE scanners
667
+ query = """
668
+ SELECT
669
+ SeriesInstanceUID,
670
+ PatientID,
671
+ collection_id,
672
+ ManufacturerModelName
673
+ FROM index
674
+ WHERE Modality = 'CT'
675
+ AND BodyPartExamined = 'CHEST'
676
+ AND Manufacturer = 'GE MEDICAL SYSTEMS'
677
+ AND license_short_name = 'CC BY 4.0'
678
+ LIMIT 100
679
+ """
680
+
681
+ results = client.sql_query(query)
682
+
683
+ # Save manifest for later
684
+ results.to_csv('lung_ct_manifest.csv', index=False)
685
+
686
+ # Download in batches to avoid timeout
687
+ batch_size = 10
688
+ for i in range(0, len(results), batch_size):
689
+ batch = results.iloc[i:i+batch_size]
690
+ client.download_from_selection(
691
+ seriesInstanceUID=list(batch['SeriesInstanceUID'].values),
692
+ downloadDir=f"./data/batch_{i//batch_size}"
693
+ )
694
+ ```
695
+
696
+ ### 7. Advanced Queries with BigQuery
697
+
698
+ For queries requiring full DICOM metadata, complex JOINs, clinical data tables, or private DICOM elements, use Google BigQuery. Requires GCP account with billing enabled.
699
+
700
+ **Quick reference:**
701
+ - Dataset: `bigquery-public-data.idc_current.*`
702
+ - Main table: `dicom_all` (combined metadata)
703
+ - Full metadata: `dicom_metadata` (all DICOM tags)
704
+ - Private elements: `OtherElements` column (vendor-specific tags like diffusion b-values)
705
+
706
+ See `references/bigquery_guide.md` for setup, table schemas, query patterns, private element access, and cost optimization.
707
+
708
+ ### 8. Tool Selection Guide
709
+
710
+ | Task | Tool | Reference |
711
+ |------|------|-----------|
712
+ | Programmatic queries & downloads | `idc-index` | This document |
713
+ | Interactive exploration | IDC Portal | https://portal.imaging.datacommons.cancer.gov/ |
714
+ | Complex metadata queries | BigQuery | `references/bigquery_guide.md` |
715
+ | 3D visualization & analysis | SlicerIDCBrowser | https://github.com/ImagingDataCommons/SlicerIDCBrowser |
716
+
717
+ **Default choice:** Use `idc-index` for most tasks (no auth, easy API, batch downloads).
718
+
719
+ ### 9. Integration with Analysis Pipelines
720
+
721
+ Integrate IDC data into imaging analysis workflows:
722
+
723
+ **Read downloaded DICOM files:**
724
+ ```python
725
+ import pydicom
726
+ import os
727
+
728
+ # Read DICOM files from downloaded series
729
+ series_dir = "./data/rider/rider_pilot/RIDER-1007893286/CT_1.3.6.1..."
730
+
731
+ dicom_files = [os.path.join(series_dir, f) for f in os.listdir(series_dir)
732
+ if f.endswith('.dcm')]
733
+
734
+ # Load first image
735
+ ds = pydicom.dcmread(dicom_files[0])
736
+ print(f"Patient ID: {ds.PatientID}")
737
+ print(f"Modality: {ds.Modality}")
738
+ print(f"Image shape: {ds.pixel_array.shape}")
739
+ ```
740
+
741
+ **Build 3D volume from CT series:**
742
+ ```python
743
+ import pydicom
744
+ import numpy as np
745
+ from pathlib import Path
746
+
747
+ def load_ct_series(series_path):
748
+ """Load CT series as 3D numpy array"""
749
+ files = sorted(Path(series_path).glob('*.dcm'))
750
+ slices = [pydicom.dcmread(str(f)) for f in files]
751
+
752
+ # Sort by slice location
753
+ slices.sort(key=lambda x: float(x.ImagePositionPatient[2]))
754
+
755
+ # Stack into 3D array
756
+ volume = np.stack([s.pixel_array for s in slices])
757
+
758
+ return volume, slices[0] # Return volume and first slice for metadata
759
+
760
+ volume, metadata = load_ct_series("./data/lung_ct/series_dir")
761
+ print(f"Volume shape: {volume.shape}") # (z, y, x)
762
+ ```
763
+
764
+ **Integrate with SimpleITK:**
765
+ ```python
766
+ import SimpleITK as sitk
767
+ from pathlib import Path
768
+
769
+ # Read DICOM series
770
+ series_path = "./data/ct_series"
771
+ reader = sitk.ImageSeriesReader()
772
+ dicom_names = reader.GetGDCMSeriesFileNames(series_path)
773
+ reader.SetFileNames(dicom_names)
774
+ image = reader.Execute()
775
+
776
+ # Apply processing
777
+ smoothed = sitk.CurvatureFlow(image1=image, timeStep=0.125, numberOfIterations=5)
778
+
779
+ # Save as NIfTI
780
+ sitk.WriteImage(smoothed, "processed_volume.nii.gz")
781
+ ```
782
+
783
+ ## Common Use Cases
784
+
785
+ ### Use Case 1: Find and Download Lung CT Scans for Deep Learning
786
+
787
+ **Objective:** Build training dataset of lung CT scans from NLST collection
788
+
789
+ **Steps:**
790
+ ```python
791
+ from idc_index import IDCClient
792
+
793
+ client = IDCClient()
794
+
795
+ # 1. Query for lung CT scans with specific criteria
796
+ query = """
797
+ SELECT
798
+ PatientID,
799
+ SeriesInstanceUID,
800
+ SeriesDescription
801
+ FROM index
802
+ WHERE collection_id = 'nlst'
803
+ AND Modality = 'CT'
804
+ AND BodyPartExamined = 'CHEST'
805
+ AND license_short_name = 'CC BY 4.0'
806
+ ORDER BY PatientID
807
+ LIMIT 100
808
+ """
809
+
810
+ results = client.sql_query(query)
811
+ print(f"Found {len(results)} series from {results['PatientID'].nunique()} patients")
812
+
813
+ # 2. Download data organized by patient
814
+ client.download_from_selection(
815
+ seriesInstanceUID=list(results['SeriesInstanceUID'].values),
816
+ downloadDir="./training_data",
817
+ dirTemplate="%collection_id/%PatientID/%SeriesInstanceUID"
818
+ )
819
+
820
+ # 3. Save manifest for reproducibility
821
+ results.to_csv('training_manifest.csv', index=False)
822
+ ```
823
+
824
+ ### Use Case 2: Query Brain MRI by Manufacturer for Quality Study
825
+
826
+ **Objective:** Compare image quality across different MRI scanner manufacturers
827
+
828
+ **Steps:**
829
+ ```python
830
+ from idc_index import IDCClient
831
+ import pandas as pd
832
+
833
+ client = IDCClient()
834
+
835
+ # Query for brain MRI grouped by manufacturer
836
+ query = """
837
+ SELECT
838
+ Manufacturer,
839
+ ManufacturerModelName,
840
+ COUNT(DISTINCT SeriesInstanceUID) as num_series,
841
+ COUNT(DISTINCT PatientID) as num_patients
842
+ FROM index
843
+ WHERE Modality = 'MR'
844
+ AND BodyPartExamined LIKE '%BRAIN%'
845
+ GROUP BY Manufacturer, ManufacturerModelName
846
+ HAVING num_series >= 10
847
+ ORDER BY num_series DESC
848
+ """
849
+
850
+ manufacturers = client.sql_query(query)
851
+ print(manufacturers)
852
+
853
+ # Download sample from each manufacturer for comparison
854
+ for _, row in manufacturers.head(3).iterrows():
855
+ mfr = row['Manufacturer']
856
+ model = row['ManufacturerModelName']
857
+
858
+ query = f"""
859
+ SELECT SeriesInstanceUID
860
+ FROM index
861
+ WHERE Manufacturer = '{mfr}'
862
+ AND ManufacturerModelName = '{model}'
863
+ AND Modality = 'MR'
864
+ AND BodyPartExamined LIKE '%BRAIN%'
865
+ LIMIT 5
866
+ """
867
+
868
+ series = client.sql_query(query)
869
+ client.download_from_selection(
870
+ seriesInstanceUID=list(series['SeriesInstanceUID'].values),
871
+ downloadDir=f"./quality_study/{mfr.replace(' ', '_')}"
872
+ )
873
+ ```
874
+
875
+ ### Use Case 3: Visualize Series Without Downloading
876
+
877
+ **Objective:** Preview imaging data before committing to download
878
+
879
+ ```python
880
+ from idc_index import IDCClient
881
+ import webbrowser
882
+
883
+ client = IDCClient()
884
+
885
+ series_list = client.sql_query("""
886
+ SELECT SeriesInstanceUID, PatientID, SeriesDescription
887
+ FROM index
888
+ WHERE collection_id = 'acrin_nsclc_fdg_pet' AND Modality = 'PT'
889
+ LIMIT 10
890
+ """)
891
+
892
+ # Preview each in browser
893
+ for _, row in series_list.iterrows():
894
+ viewer_url = client.get_viewer_URL(seriesInstanceUID=row['SeriesInstanceUID'])
895
+ print(f"Patient {row['PatientID']}: {row['SeriesDescription']}")
896
+ print(f" View at: {viewer_url}")
897
+ # webbrowser.open(viewer_url) # Uncomment to open automatically
898
+ ```
899
+
900
+ For additional visualization options, see the [IDC Portal getting started guide](https://learn.canceridc.dev/portal/getting-started) or [SlicerIDCBrowser](https://github.com/ImagingDataCommons/SlicerIDCBrowser) for 3D Slicer integration.
901
+
902
+ ### Use Case 4: License-Aware Batch Download for Commercial Use
903
+
904
+ **Objective:** Download only CC-BY licensed data suitable for commercial applications
905
+
906
+ **Steps:**
907
+ ```python
908
+ from idc_index import IDCClient
909
+
910
+ client = IDCClient()
911
+
912
+ # Query ONLY for CC BY licensed data (allows commercial use with attribution)
913
+ query = """
914
+ SELECT
915
+ SeriesInstanceUID,
916
+ collection_id,
917
+ PatientID,
918
+ Modality
919
+ FROM index
920
+ WHERE license_short_name LIKE 'CC BY%'
921
+ AND license_short_name NOT LIKE '%NC%'
922
+ AND Modality IN ('CT', 'MR')
923
+ AND BodyPartExamined IN ('CHEST', 'BRAIN', 'ABDOMEN')
924
+ LIMIT 200
925
+ """
926
+
927
+ cc_by_data = client.sql_query(query)
928
+
929
+ print(f"Found {len(cc_by_data)} CC BY licensed series")
930
+ print(f"Collections: {cc_by_data['collection_id'].unique()}")
931
+
932
+ # Download with license verification
933
+ client.download_from_selection(
934
+ seriesInstanceUID=list(cc_by_data['SeriesInstanceUID'].values),
935
+ downloadDir="./commercial_dataset",
936
+ dirTemplate="%collection_id/%Modality/%PatientID/%SeriesInstanceUID"
937
+ )
938
+
939
+ # Save license information
940
+ cc_by_data.to_csv('commercial_dataset_manifest_CC-BY_ONLY.csv', index=False)
941
+ ```
942
+
943
+ ## Best Practices
944
+
945
+ - **Check licenses before use** - Always query the `license_short_name` field and respect licensing terms (CC BY vs CC BY-NC)
946
+ - **Generate citations for attribution** - Use `citations_from_selection()` to get properly formatted citations from `source_DOI` values; include these in publications
947
+ - **Start with small queries** - Use `LIMIT` clause when exploring to avoid long downloads and understand data structure
948
+ - **Use mini-index for simple queries** - Only use BigQuery when you need comprehensive metadata or complex JOINs
949
+ - **Organize downloads with dirTemplate** - Use meaningful directory structures like `%collection_id/%PatientID/%Modality`
950
+ - **Cache query results** - Save DataFrames to CSV files to avoid re-querying and ensure reproducibility
951
+ - **Estimate size first** - Check collection size before downloading - some collection sizes are in terabytes!
952
+ - **Save manifests** - Always save query results with Series UIDs for reproducibility and data provenance
953
+ - **Read documentation** - IDC data structure and metadata fields are documented at https://learn.canceridc.dev/
954
+ - **Use IDC forum** - Search for questons/answers and ask your questions to the IDC maintainers and users at https://discourse.canceridc.dev/
955
+
956
+ ## Troubleshooting
957
+
958
+ **Issue: `ModuleNotFoundError: No module named 'idc_index'`**
959
+ - **Cause:** idc-index package not installed
960
+ - **Solution:** Install with `pip install --upgrade idc-index`
961
+
962
+ **Issue: Download fails with connection timeout**
963
+ - **Cause:** Network instability or large download size
964
+ - **Solution:**
965
+ - Download smaller batches (e.g., 10-20 series at a time)
966
+ - Check network connection
967
+ - Use `dirTemplate` to organize downloads by batch
968
+ - Implement retry logic with delays
969
+
970
+ **Issue: `BigQuery quota exceeded` or billing errors**
971
+ - **Cause:** BigQuery requires billing-enabled GCP project
972
+ - **Solution:** Use idc-index mini-index for simple queries (no billing required), or see `references/bigquery_guide.md` for cost optimization tips
973
+
974
+ **Issue: Series UID not found or no data returned**
975
+ - **Cause:** Typo in UID, data not in current IDC version, or wrong field name
976
+ - **Solution:**
977
+ - Check if data is in current IDC version (some old data may be deprecated)
978
+ - Use `LIMIT 5` to test query first
979
+ - Check field names against metadata schema documentation
980
+
981
+ **Issue: Downloaded DICOM files won't open**
982
+ - **Cause:** Corrupted download or incompatible viewer
983
+ - **Solution:**
984
+ - Check DICOM object type (Modality and SOPClassUID attributes) - some object types require specialized tools
985
+ - Verify file integrity (check file sizes)
986
+ - Use pydicom to validate: `pydicom.dcmread(file, force=True)`
987
+ - Try different DICOM viewer (3D Slicer, Horos, RadiAnt, QuPath)
988
+ - Re-download the series
989
+
990
+ ## Common SQL Query Patterns
991
+
992
+ Quick reference for common queries. For detailed examples with context, see the Core Capabilities section above.
993
+
994
+ ### Discover available filter values
995
+ ```python
996
+ # What modalities exist?
997
+ client.sql_query("SELECT DISTINCT Modality FROM index")
998
+
999
+ # What body parts for a specific modality?
1000
+ client.sql_query("""
1001
+ SELECT DISTINCT BodyPartExamined, COUNT(*) as n
1002
+ FROM index WHERE Modality = 'CT' AND BodyPartExamined IS NOT NULL
1003
+ GROUP BY BodyPartExamined ORDER BY n DESC
1004
+ """)
1005
+
1006
+ # What manufacturers for MR?
1007
+ client.sql_query("""
1008
+ SELECT DISTINCT Manufacturer, COUNT(*) as n
1009
+ FROM index WHERE Modality = 'MR'
1010
+ GROUP BY Manufacturer ORDER BY n DESC
1011
+ """)
1012
+ ```
1013
+
1014
+ ### Find annotations and segmentations
1015
+
1016
+ **Note:** Not all image-derived objects belong to analysis result collections. Some annotations are deposited alongside original images. Use DICOM Modality or SOPClassUID to find all derived objects regardless of collection type.
1017
+
1018
+ ```python
1019
+ # Find ALL segmentations and structure sets by DICOM Modality
1020
+ # SEG = DICOM Segmentation, RTSTRUCT = Radiotherapy Structure Set
1021
+ client.sql_query("""
1022
+ SELECT collection_id, Modality, COUNT(*) as series_count
1023
+ FROM index
1024
+ WHERE Modality IN ('SEG', 'RTSTRUCT')
1025
+ GROUP BY collection_id, Modality
1026
+ ORDER BY series_count DESC
1027
+ """)
1028
+
1029
+ # Find segmentations for a specific collection (includes non-analysis-result items)
1030
+ client.sql_query("""
1031
+ SELECT SeriesInstanceUID, SeriesDescription, analysis_result_id
1032
+ FROM index
1033
+ WHERE collection_id = 'tcga_luad' AND Modality = 'SEG'
1034
+ """)
1035
+
1036
+ # List analysis result collections (curated derived datasets)
1037
+ client.fetch_index("analysis_results_index")
1038
+ client.sql_query("""
1039
+ SELECT analysis_result_id, analysis_result_title, Collections, Modalities
1040
+ FROM analysis_results_index
1041
+ """)
1042
+
1043
+ # Find analysis results for a specific source collection
1044
+ client.sql_query("""
1045
+ SELECT analysis_result_id, analysis_result_title
1046
+ FROM analysis_results_index
1047
+ WHERE Collections LIKE '%tcga_luad%'
1048
+ """)
1049
+
1050
+ # Use seg_index for detailed DICOM Segmentation metadata
1051
+ client.fetch_index("seg_index")
1052
+
1053
+ # Get segmentation statistics by algorithm
1054
+ client.sql_query("""
1055
+ SELECT AlgorithmName, AlgorithmType, COUNT(*) as seg_count
1056
+ FROM seg_index
1057
+ WHERE AlgorithmName IS NOT NULL
1058
+ GROUP BY AlgorithmName, AlgorithmType
1059
+ ORDER BY seg_count DESC
1060
+ LIMIT 10
1061
+ """)
1062
+
1063
+ # Find segmentations for specific source images (e.g., chest CT)
1064
+ client.sql_query("""
1065
+ SELECT
1066
+ s.SeriesInstanceUID as seg_series,
1067
+ s.AlgorithmName,
1068
+ s.total_segments,
1069
+ s.segmented_SeriesInstanceUID as source_series
1070
+ FROM seg_index s
1071
+ JOIN index src ON s.segmented_SeriesInstanceUID = src.SeriesInstanceUID
1072
+ WHERE src.Modality = 'CT' AND src.BodyPartExamined = 'CHEST'
1073
+ LIMIT 10
1074
+ """)
1075
+
1076
+ # Find TotalSegmentator results with source image context
1077
+ client.sql_query("""
1078
+ SELECT
1079
+ seg_info.collection_id,
1080
+ COUNT(DISTINCT s.SeriesInstanceUID) as seg_count,
1081
+ SUM(s.total_segments) as total_segments
1082
+ FROM seg_index s
1083
+ JOIN index seg_info ON s.SeriesInstanceUID = seg_info.SeriesInstanceUID
1084
+ WHERE s.AlgorithmName LIKE '%TotalSegmentator%'
1085
+ GROUP BY seg_info.collection_id
1086
+ ORDER BY seg_count DESC
1087
+ """)
1088
+ ```
1089
+
1090
+ ### Query slide microscopy data
1091
+ ```python
1092
+ # sm_index has detailed metadata; join with index for collection_id
1093
+ client.fetch_index("sm_index")
1094
+ client.sql_query("""
1095
+ SELECT i.collection_id, COUNT(*) as slides,
1096
+ MIN(s.min_PixelSpacing_2sf) as min_resolution
1097
+ FROM sm_index s
1098
+ JOIN index i ON s.SeriesInstanceUID = i.SeriesInstanceUID
1099
+ GROUP BY i.collection_id
1100
+ ORDER BY slides DESC
1101
+ """)
1102
+ ```
1103
+
1104
+ ### Estimate download size
1105
+ ```python
1106
+ # Size for specific criteria
1107
+ client.sql_query("""
1108
+ SELECT SUM(series_size_MB) as total_mb, COUNT(*) as series_count
1109
+ FROM index
1110
+ WHERE collection_id = 'nlst' AND Modality = 'CT'
1111
+ """)
1112
+ ```
1113
+
1114
+ ### Link to clinical data
1115
+ ```python
1116
+ client.fetch_index("clinical_index")
1117
+
1118
+ # Find collections with clinical data and their tables
1119
+ client.sql_query("""
1120
+ SELECT collection_id, table_name, COUNT(DISTINCT column_label) as columns
1121
+ FROM clinical_index
1122
+ GROUP BY collection_id, table_name
1123
+ ORDER BY collection_id
1124
+ """)
1125
+ ```
1126
+
1127
+ See `references/clinical_data_guide.md` for complete patterns including value mapping and patient cohort selection.
1128
+
1129
+ ## Related Skills
1130
+
1131
+ The following skills complement IDC workflows for downstream analysis and visualization:
1132
+
1133
+ ### DICOM Processing
1134
+ - **pydicom** - Read, write, and manipulate downloaded DICOM files. Use for extracting pixel data, reading metadata, anonymization, and format conversion. Essential for working with IDC radiology data (CT, MR, PET).
1135
+
1136
+ ### Pathology and Slide Microscopy
1137
+ - **histolab** - Lightweight tile extraction and preprocessing for whole slide images. Use for basic slide processing, tissue detection, and dataset preparation from IDC slide microscopy data.
1138
+ - **pathml** - Full-featured computational pathology toolkit. Use for advanced WSI analysis including multiplexed imaging, nucleus segmentation, and ML model training on pathology data downloaded from IDC.
1139
+
1140
+ ### Metadata Visualization
1141
+ - **matplotlib** - Low-level plotting for full customization. Use for creating static figures summarizing IDC query results (bar charts of modalities, histograms of series counts, etc.).
1142
+ - **seaborn** - Statistical visualization with pandas integration. Use for quick exploration of IDC metadata distributions, relationships between variables, and categorical comparisons with attractive defaults.
1143
+ - **plotly** - Interactive visualization. Use when you need hover info, zoom, and pan for exploring IDC metadata, or for creating web-embeddable dashboards of collection statistics.
1144
+
1145
+ ### Data Exploration
1146
+ - **exploratory-data-analysis** - Comprehensive EDA on scientific data files. Use after downloading IDC data to understand file structure, quality, and characteristics before analysis.
1147
+
1148
+ ## Resources
1149
+
1150
+ ### Schema Reference (Primary Source)
1151
+
1152
+ **Always use `client.indices_overview` for current column schemas.** This ensures accuracy with the installed idc-index version:
1153
+
1154
+ ```python
1155
+ # Get all column names and types for any table
1156
+ schema = client.indices_overview["index"]["schema"]
1157
+ columns = [(c['name'], c['type'], c.get('description', '')) for c in schema['columns']]
1158
+ ```
1159
+
1160
+ ### Reference Documentation
1161
+
1162
+ - **clinical_data_guide.md** - Clinical/tabular data navigation, value mapping, and joining with imaging data
1163
+ - **cloud_storage_guide.md** - Direct cloud bucket access (S3/GCS), file organization, CRDC UUIDs, versioning, and reproducibility
1164
+ - **cli_guide.md** - Complete idc-index command-line interface reference (`idc download`, `idc download-from-manifest`, `idc download-from-selection`)
1165
+ - **bigquery_guide.md** - Advanced BigQuery usage guide for complex metadata queries
1166
+ - **dicomweb_guide.md** - DICOMweb endpoint URLs, code examples, and Google Healthcare API implementation details
1167
+ - **[indices_reference](https://idc-index.readthedocs.io/en/latest/indices_reference.html)** - External documentation for index tables (may be ahead of the installed version)
1168
+
1169
+ ### External Links
1170
+
1171
+ - **IDC Portal**: https://portal.imaging.datacommons.cancer.gov/explore/
1172
+ - **Documentation**: https://learn.canceridc.dev/
1173
+ - **Tutorials**: https://github.com/ImagingDataCommons/IDC-Tutorials
1174
+ - **User Forum**: https://discourse.canceridc.dev/
1175
+ - **idc-index GitHub**: https://github.com/ImagingDataCommons/idc-index
1176
+ - **Citation**: Fedorov, A., et al. "National Cancer Institute Imaging Data Commons: Toward Transparency, Reproducibility, and Scalability in Imaging Artificial Intelligence." RadioGraphics 43.12 (2023). https://doi.org/10.1148/rg.230180
1177
+
1178
+ ### Skill Updates
1179
+
1180
+ This skill version is available in skill metadata. To check for updates:
1181
+ - Visit the [releases page](https://github.com/ImagingDataCommons/idc-claude-skill/releases)
1182
+ - Watch the repository on GitHub (Watch → Custom → Releases)