scientific-agent-skills 之 imaging-data-commons 技能:IDC 影像数据 SQL 查询模式全解(idc-index 0.12.5)
scientific-agent-skills 之 imaging-data-commons 技能IDC 影像数据 SQL 查询模式全解idc-index 0.12.5【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills本篇围绕scientific-agent-skills仓库中imaging-data-commons技能的参考文档references/sql_patterns.md展开系统讲解基于idc-index包的client.sql_query()访问 NCI 影像数据仓库IDC元数据索引的八类高频 SQL 模式数据规模统计、过滤值发现、分割与注释查找、病理切片查询、下载体积估算、临床数据关联、版本追踪以及采集参数筛选。读完本文你可以直接复制这些查询模式在本地 DuckDB 索引上完成 IDC 队列筛选、下载前体积核验与多表 JOIN并理解fetch_index()、SeriesInstanceUID通用连接键、版本追踪列等关键机制的底层约定。适用场景与文档定位该速查手册经 idc-index 0.12.5、IDC 数据版本 v24 实测验证在以下场景中加载使用发现可用的过滤值模态、身体部位、设备厂商跨集合查找注释annotation与分割segmentation数据查询病理切片slide microscopy及其注释数据下载前估算数据体积将影像数据与临床数据关联按 3D 体积几何有效性过滤volume_geometry_index查找放疗结构集RT Structure Set序列与 ROI 元数据rtstruct_index按 CT/MR/PET 采集参数过滤ct_index、mr_index、pt_index。它与同目录下的 index_tables_guide.md 形成分工后者覆盖表结构、schema 发现、DataFrame 访问与连接列参考本文对应的 SQL 模式文档则提供可直接运行的查询示例带上下文的完整工作流见 SKILL.md 的 Core Capabilities 章节。前提条件安装 idc-index 并校验版本所有模式都依赖idc-indexPython 包本地 DuckDB 索引查询无需联网。技能的约定做法是先运行版本检查脚本 check_version.pypython scripts/check_version.py该脚本的行为可以从源码直接确认它从不自行安装或升级任何东西。当idc_index缺失或低于固定下限MIN_VERSION源码中为0.12.5与 SKILL.md frontmatter 中metadata.idc-index: 0.12.5保持一致时它只打印针对当前解释器的安装命令检测到uv时优先给出uv pip install --python 解释器形式否则给出解释器 -m pip install并以非零退出码结束把环境选择权留给调用方见 check_version.py版本号比较使用parse_version()数值三元组而非字符串比较避免多位数字段的误排序且对预发布后缀如0.13.0rc1取前导数字、与基线版本视为相等使更新提示保持保守见 check_version.py联网检查PyPI 与技能仓库的最新版本是尽力而为的离线时静默跳过。通过检查后标准的客户端初始化模式为from idc_index import IDCClient client IDCClient()SKILL.md 还建议在会话开始时用client.get_idc_version()核对数据版本本手册对应的版本是 v24索引过期时按check_version.py打印的命令升级。另外两点从主技能文档可确认的约定client.sql_query()返回的是pandas DataFrame写 SQL 前可用client.get_index_schema(index)只读缓存元数据、不执行 SQL或client.indices_overview核对列名与类型查询任何非主索引表之前必须先调用client.fetch_index(table_name)。对已自动加载的表调用它也是安全且幂等的因此拿不准就 fetch 一遍不会带来副作用。总体数据规模与分集合统计以下查询用于给使用者一个全局量级感也可用来做索引是否加载了预期版本的健全性检查stats client.sql_query( SELECT COUNT(DISTINCT collection_id) as collections, COUNT(DISTINCT analysis_result_id) as analysis_results, COUNT(DISTINCT PatientID) as patients, COUNT(DISTINCT StudyInstanceUID) as studies, COUNT(DISTINCT SeriesInstanceUID) as series, SUM(instanceCount) as instances, SUM(series_size_MB)/1000000 as size_TB FROM index ) print(stats)按集合collection拆分时# Get summary statistics from primary index collections_summary client.sql_query( SELECT collection_id, COUNT(DISTINCT PatientID) as patients, COUNT(DISTINCT SeriesInstanceUID) as series, SUM(series_size_MB) as size_mb FROM index GROUP BY collection_id ORDER BY patients DESC )如需更丰富的集合级元数据——癌种cancer types、肿瘤部位、物种、支撑数据——应改查collections_index对派生数据集分割、注释、影像组学特征等则查analysis_results_index。两者都需要先client.fetch_index(...)client.fetch_index(collections_index) collections_info client.sql_query( SELECT collection_id, cancer_types, tumor_locations, species, subjects, supporting_data FROM collections_index ) client.fetch_index(analysis_results_index) analysis_info client.sql_query( SELECT analysis_result_id, analysis_result_title, subjects, collections, modalities FROM analysis_results_index )一个容易踩的坑SKILL.md 在 Core Capabilities 中专门点名癌种信息在collections_index.cancer_types中主表index里没有这一列。按癌种过滤必须做 JOINclient.fetch_index(collections_index) results client.sql_query( SELECT i.collection_id, i.PatientID, i.SeriesInstanceUID, i.Modality FROM index i JOIN collections_index c ON i.collection_id c.collection_id WHERE c.cancer_types LIKE %Breast% AND i.Modality MR LIMIT 20 )发现可用的过滤值猜一个Modality或BodyPartExamined字符串然后直接过滤是空结果集最常见的成因正确做法是先枚举实际存在的值再过滤。以下三个查询是三种典型枚举# What modalities exist? client.sql_query(SELECT DISTINCT Modality FROM index) # What body parts for a specific modality? client.sql_query( SELECT DISTINCT BodyPartExamined, COUNT(*) as n FROM index WHERE Modality CT AND BodyPartExamined IS NOT NULL GROUP BY BodyPartExamined ORDER BY n DESC ) # What manufacturers for MR? client.sql_query( SELECT DISTINCT Manufacturer, COUNT(*) as n FROM index WHERE Modality MR GROUP BY Manufacturer ORDER BY n DESC )同一模式可以套用到任意过滤列并可选地用另一列收窄范围例如在某个Modality内枚举BodyPartExamined、某个集合内的collection_id。注意BodyPartExamined IS NOT NULL这种写法——该列在部分序列上为空不做非空过滤会混入空值行。查找注释与分割数据关键前提并非所有派生影像对象都归属于 analysis result 集合——一部分注释是随原始影像一起入库的。因此查找全部派生对象时应使用 DICOMModality或SOPClassUID而不是依赖analysis_result_id非空。# Find ALL segmentations and structure sets by DICOM Modality # SEG DICOM Segmentation, RTSTRUCT Radiotherapy Structure Set client.sql_query( SELECT collection_id, Modality, COUNT(*) as series_count FROM index WHERE Modality IN (SEG, RTSTRUCT) GROUP BY collection_id, Modality ORDER BY series_count DESC ) # Find segmentations for a specific collection (includes non-analysis-result items) client.sql_query( SELECT SeriesInstanceUID, SeriesDescription, analysis_result_id FROM index WHERE collection_id tcga_luad AND Modality SEG ) # List analysis result collections (curated derived datasets) client.fetch_index(analysis_results_index) client.sql_query( SELECT analysis_result_id, analysis_result_title, collections, modalities FROM analysis_results_index ) # Find analysis results for a specific source collection client.sql_query( SELECT analysis_result_id, analysis_result_title FROM analysis_results_index WHERE Collections LIKE %tcga_luad% )用 seg_index 查分割细节seg_index一行对应一个 DICOM Segmentation 序列携带算法名、片段数、以及对源影像序列的引用segmented_SeriesInstanceUID。按算法统计分割规模# Use seg_index for detailed DICOM Segmentation metadata client.fetch_index(seg_index) # Get segmentation statistics by algorithm client.sql_query( SELECT AlgorithmName, AlgorithmType, COUNT(*) as seg_count FROM seg_index WHERE AlgorithmName IS NOT NULL GROUP BY AlgorithmName, AlgorithmType ORDER BY seg_count DESC LIMIT 10 )通过segmented_SeriesInstanceUID回连主表可以只找针对特定源影像的分割例如胸部 CT 的分割# Find segmentations for specific source images (e.g., chest CT) client.sql_query( SELECT s.SeriesInstanceUID as seg_series, s.AlgorithmName, s.total_segments, s.segmented_SeriesInstanceUID as source_series FROM seg_index s JOIN index src ON s.segmented_SeriesInstanceUID src.SeriesInstanceUID WHERE src.Modality CT AND src.BodyPartExamined CHEST LIMIT 10 )这个 JOIN 方向值得单独强调分割序列本身也是一个序列所以存在两个可连的 UID——seg_index.SeriesInstanceUID连到的是分割序列自己的主表行可取到collection_idseg_index.segmented_SeriesInstanceUID连到的才是被分割的源影像行。带源影像上下文的 TotalSegmentator 结果统计演示了前一种连法# Find TotalSegmentator results with source image context client.sql_query( SELECT seg_info.collection_id, COUNT(DISTINCT s.SeriesInstanceUID) as seg_count, SUM(s.total_segments) as total_segments FROM seg_index s JOIN index seg_info ON s.SeriesInstanceUID seg_info.SeriesInstanceUID WHERE s.AlgorithmName LIKE %TotalSegmentator% GROUP BY seg_info.collection_id ORDER BY seg_count DESC )用 ann_index / ann_group_index 查病理注释Microscopy Bulk Simple AnnotationsDICOM ANN 对象由两张表描述ann_index一行 一个 ANN 序列含referenced_SeriesInstanceUID指向被注释的切片ann_group_index一行 一个注释组含AnnotationGroupLabel、GraphicType、NumberOfAnnotations、AlgorithmName# Use ann_index and ann_group_index for Microscopy Bulk Simple Annotations # ann_group_index has AnnotationGroupLabel, GraphicType, NumberOfAnnotations, AlgorithmName client.fetch_index(ann_index) client.fetch_index(ann_group_index) client.sql_query( SELECT g.AnnotationGroupLabel, g.GraphicType, g.NumberOfAnnotations, i.collection_id FROM ann_group_index g JOIN ann_index a ON g.SeriesInstanceUID a.SeriesInstanceUID JOIN index i ON a.SeriesInstanceUID i.SeriesInstanceUID WHERE g.AlgorithmName IS NOT NULL LIMIT 10 )按AnnotationGroupLabel过滤注释名、SMANN 交叉引用等更细的病理模式见 digital_pathology_guide.md。查询切片显微与注释数据sm_index承载切片显微Slide Microscopy元数据容器/玻片 ID、组织类型、解剖结构、诊断、物镜倍率、像素间距、图像尺寸等ann_index/ann_group_index承载切片上的 DICOM ANN 注释。按注释组标签找特定名称的注释client.fetch_index(sm_index) client.fetch_index(ann_index) client.fetch_index(ann_group_index) # Example: find annotation groups by label within a collection client.sql_query( SELECT g.AnnotationGroupLabel, g.GraphicType, g.NumberOfAnnotations FROM ann_group_index g JOIN index i ON g.SeriesInstanceUID i.SeriesInstanceUID WHERE i.collection_id your_collection_id AND LOWER(g.AnnotationGroupLabel) LIKE %keyword% )注意这里用LOWER(...)做大小写不敏感匹配——这正是后文故障排查一节针对 LIKE 模式的通用建议。SM 查询、ANN 过滤、染色/包埋介质数组列需array_to_string()LIKE或list_contains()等完整模式见 digital_pathology_guide.md。估算下载体积下载前先算体积是技能强调的最佳实践之一部分集合可达 TB 级。用series_size_MB列即可# Size for specific criteria client.sql_query( SELECT SUM(series_size_MB) as total_mb, COUNT(*) as series_count FROM index WHERE collection_id nlst AND Modality CT )本地idc-index路径下该查询不受行数上限约束若走 RESTPOST /sql则max_rows默认 5 000、上限 10 000 且以truncated标记截断见 SKILL.md 的 Data Access Options因此大规模核验体积时应优先本地查询。关联临床数据临床非影像数据——分期、人口学、治疗——存放在每个集合各自的表中。clinical_index是一张字典表一行对应一个集合表列三元组client.get_clinical_table(name)可把某个临床表直接取回为 DataFrame。发现哪些集合带临床数据及其表结构client.fetch_index(clinical_index) # Find collections with clinical data and their tables client.sql_query( SELECT collection_id, table_name, COUNT(DISTINCT column_label) as columns FROM clinical_index GROUP BY collection_id, table_name ORDER BY collection_id )三个必须记住的特性clinical_data_guide.md临床数据跨集合不统一术语与格式各异、并非每个集合都有先查可用性、所有数据已匿名化dicom_patient_id是通往影像侧的桥。完整的值映射coded value 解码、患者队列选择与影像临床 JOIN 模式见 clinical_data_guide.md。版本追踪IDC vX 新增了什么回答某版本新增了哪些序列这类问题时必须使用主表index中的series_init_idc_version与series_revised_idc_version列不要使用prior_versions_index——后者只收录已从 IDC 中永久移除的序列与index零重叠仅用于复现旧版本工作其min_idc_version/max_idc_version列名与主表的版本列也不等价SKILL.md 与 index_tables_guide.md 均对此有专门警告。VERSION 24 # Replace with target version # Series added for the first time in vVERSION client.sql_query(f SELECT collection_id, COUNT(DISTINCT SeriesInstanceUID) as new_series, ROUND(SUM(series_size_MB)/1000, 2) as size_GB FROM index WHERE series_init_idc_version {VERSION} GROUP BY collection_id ORDER BY new_series DESC ) # Series revised (updated content) in vVERSION but originally added earlier client.sql_query(f SELECT collection_id, COUNT(DISTINCT SeriesInstanceUID) as revised_series FROM index WHERE series_revised_idc_version {VERSION} AND series_init_idc_version {VERSION} GROUP BY collection_id ORDER BY revised_series DESC ) # When was each collection first added to IDC? client.fetch_index(version_metadata_index) client.sql_query( WITH first_versions AS ( SELECT collection_id, MIN(series_init_idc_version) as first_version FROM index GROUP BY collection_id ) SELECT f.collection_id, f.first_version, v.version_timestamp as first_release_date FROM first_versions f JOIN version_metadata_index v ON f.first_version v.idc_version ORDER BY f.first_version DESC )第二个查询中series_init_idc_version {VERSION}这个条件是关键它把本版本首次加入与本版本内容被修订但更早加入两类序列区分开第三个查询用version_metadata_index一行 一个 IDC 发布版本把版本号翻译成时间戳。体积几何校验volume_geometry_index做 3D 深度学习或无需重采样的体数据流程前需要确认序列是否构成规则间隔的 3D 体积。volume_geometry_index覆盖单帧 CT、MR 和 PT 序列查询前先 fetchclient.fetch_index(volume_geometry_index) # Series that form a regularly-spaced 3D volume (no resampling needed) client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, i.BodyPartExamined, v.obliquity_degrees FROM index i JOIN volume_geometry_index v ON i.SeriesInstanceUID v.SeriesInstanceUID WHERE i.Modality CT AND v.regularly_spaced_3d_volume TRUE LIMIT 10 ) # Fraction of 3D-valid CT per collection client.sql_query( SELECT i.collection_id, COUNT(*) as total_ct, SUM(CASE WHEN v.regularly_spaced_3d_volume THEN 1 ELSE 0 END) as valid_3d, ROUND(100.0 * SUM(CASE WHEN v.regularly_spaced_3d_volume THEN 1 ELSE 0 END) / COUNT(*), 1) as pct_valid FROM index i JOIN volume_geometry_index v ON i.SeriesInstanceUID v.SeriesInstanceUID WHERE i.Modality CT GROUP BY i.collection_id ORDER BY total_ct DESC LIMIT 10 )关键列语义regularly_spaced_3d_volume综合布尔标志为 TRUE 即无需重采样obliquity_degrees0 表示纯轴位/矢状位/冠状位正交取向单项布尔检查single_orientation、orthogonal_orientation、unique_slice_positions、consistent_pixel_spacing、consistent_image_dimensions、uniform_slice_spacing——综合标志不满足时可用它们定位具体是哪一项失败。RT Structure Set 查询rtstruct_indexrtstruct_index一行对应一个 RTSTRUCT 序列注意其数组列ROINames、ROIGenerationAlgorithms、RTROIInterpretedTypes以字符串形式存储不要按数组类型处理。client.fetch_index(rtstruct_index) # RTSTRUCT series with ROI counts and names client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, r.total_rois, r.ROINames, r.RTROIInterpretedTypes, r.referenced_SeriesInstanceUID FROM index i JOIN rtstruct_index r ON i.SeriesInstanceUID r.SeriesInstanceUID LIMIT 10 ) # Collections with the most RTSTRUCT series client.sql_query( SELECT i.collection_id, COUNT(*) as rtstruct_series, ROUND(AVG(r.total_rois), 1) as avg_rois FROM index i JOIN rtstruct_index r ON i.SeriesInstanceUID r.SeriesInstanceUID GROUP BY i.collection_id ORDER BY rtstruct_series DESC LIMIT 10 ) # Find source CT series for a given RTSTRUCT client.sql_query( SELECT r.SeriesInstanceUID as rtstruct_uid, r.total_rois, r.ROINames, src.SeriesInstanceUID as source_ct_uid, src.collection_id, src.BodyPartExamined FROM rtstruct_index r JOIN index src ON r.referenced_SeriesInstanceUID src.SeriesInstanceUID LIMIT 10 )第三个查询演示了referenced_SeriesInstanceUID的反向连接从 RTSTRUCT 找回它所引用的源 CT 序列。index_tables_guide.md 的连接列参考表将ann_index → index与rtstruct_index → index都列为referenced_SeriesInstanceUID连接用法一致。模态采集参数ct_index / mr_index / pt_indexct_index、mr_index、pt_index自 idc-index 0.12.3 起提供分别暴露 CT、MR、PET 序列的采集与重建参数均通过SeriesInstanceUID连接主表。剂量调制的 CT 采集在管电流、曝光量、曝光时间上带有_min/_max两列。client.fetch_index(ct_index) client.fetch_index(mr_index) client.fetch_index(pt_index) # CT: thin-slice series (≤2mm) with standard reconstruction client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, i.BodyPartExamined, c.SliceThickness, c.ConvolutionKernel, c.KVP FROM index i JOIN ct_index c ON i.SeriesInstanceUID c.SeriesInstanceUID WHERE c.SliceThickness 2.0 AND c.ConvolutionKernel IS NOT NULL LIMIT 10 ) # CT: dose-modulated acquisitions (tube current varies across slices) client.sql_query( SELECT i.collection_id, c.SeriesInstanceUID, c.XRayTubeCurrent_min, c.XRayTubeCurrent_max, c.SliceThickness FROM ct_index c JOIN index i ON c.SeriesInstanceUID i.SeriesInstanceUID WHERE c.XRayTubeCurrent_min ! c.XRayTubeCurrent_max LIMIT 10 ) # MR: DWI series (have non-null DiffusionBValue) at 3T client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, i.SeriesDescription, m.MagneticFieldStrength, m.DiffusionBValue FROM index i JOIN mr_index m ON i.SeriesInstanceUID m.SeriesInstanceUID WHERE m.DiffusionBValue IS NOT NULL AND m.MagneticFieldStrength 2.9 LIMIT 10 ) # MR: multi-echo series (EchoTime stored as array with multiple values) client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, m.EchoTime, m.EchoTrainLength, m.ScanningSequence FROM index i JOIN mr_index m ON i.SeriesInstanceUID m.SeriesInstanceUID WHERE m.EchoTrainLength 1 LIMIT 10 ) # PET: FDG studies with specific reconstruction method client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, p.RadionuclideCodeMeaning, p.ReconstructionMethod, p.Units, p.DecayCorrection FROM index i JOIN pt_index p ON i.SeriesInstanceUID p.SeriesInstanceUID WHERE p.RadionuclideCodeMeaning LIKE %fluorodeoxyglucose% LIMIT 10 ) # PET: dynamic acquisitions (ActualFrameDuration is array with multiple values) client.sql_query( SELECT i.collection_id, i.SeriesInstanceUID, p.NumberOfTimeSlices, p.ActualFrameDuration FROM index i JOIN pt_index p ON i.SeriesInstanceUID p.SeriesInstanceUID WHERE p.NumberOfTimeSlices 1 LIMIT 10 )一个高频错误在 SKILL.md 的故障排查里被专门列出SliceThickness、PixelSpacing、KVP、EchoTime等列不在主表index里——主表只有序列级元数据模态专属参数在专属表中。正确流程是先在client.indices_overview中搜出列所在表无需 fetch再fetch_index并按SeriesInstanceUIDJOIN。各表关键列速查完整列表用client.indices_overview[ct_index][schema]现查表关键列ct_indexSliceThickness、KVP、ConvolutionKernel、SpiralPitchFactor、XRayTubeCurrent_min/max、Exposure_min/max、PixelSpacing_row_mm/col_mm、Rows、Columnsmr_indexMagneticFieldStrength、ScanningSequence、SequenceVariant、MRAcquisitionType、EchoTime数组、RepetitionTime、FlipAngle、DiffusionBValue数组、NumberOfTemporalPositions、ReceiveCoilNamept_indexRadionuclideCodeMeaning、Radiopharmaceutical、RadionuclideTotalDose、ReconstructionMethod、DecayCorrection、AttenuationCorrectionMethod、ActualFrameDuration数组、NumberOfTimeSlices其中EchoTime、DiffusionBValue、ActualFrameDuration标注为数组意味着多回波/多 b 值/动态采集的序列在单行里存多个值筛选时以非空多值为特征如上例这与sm_index中染色等数组列需用array_to_string()/list_contains()的处理方式同源。故障排查原文档收录了三类高频问题的成因与解法问题查询报 table not found成因查询前未 fetch 对应索引解法除主表index外的表先用client.fetch_index(table_name)加载。问题LIKE 模式匹配结果与预期不符成因大小写敏感或前后空白解法大小写不敏感匹配用LOWER(column)空白用TRIM()。问题JOIN 返回行数少于预期成因连接列存在 NULL或确实无匹配记录解法改用LEFT JOIN保留无匹配的行并用IS NOT NULL核查连接列空值。结合 index_tables_guide.md 的补充若报列不存在用client.indices_overview[table_name][schema][columns]列出该表实际列名若 DataFrame 属性访问返回 None则是未 fetch 或属性名与索引名不匹配先fetch_index()再按同名的属性访问如client.sm_index。连接键速查从源码结构看表间关系以上所有模式共享同一套连接约定汇总如下与 index_tables_guide.md 的 Join Column Reference 一致表 A表 B连接条件indexcollections_indexindex.collection_id collections_index.collection_idindexseg_index源影像index.SeriesInstanceUID seg_index.segmented_SeriesInstanceUIDindexann_indexindex.SeriesInstanceUID ann_index.SeriesInstanceUIDann_indexann_group_indexann_index.SeriesInstanceUID ann_group_index.SeriesInstanceUIDindexclinical_indexindex.collection_id clinical_index.collection_id再按患者过滤indexvolume_geometry_index/rtstruct_index/ct_index/mr_index/pt_indexindex.SeriesInstanceUID 对应表.SeriesInstanceUIDrtstruct_indexindex源影像rtstruct_index.referenced_SeriesInstanceUID index.SeriesInstanceUID从 SKILL.md 的 Joining Tables 一节可以确认其总结SeriesInstanceUID是所有序列级专属表sm_index、sm_instance_index、seg_index、ann_index、ann_group_index、contrast_index、volume_geometry_index、rtstruct_index、ct_index、mr_index、pt_index的通用连接键例外只在上表反向连接列segmented_SeriesInstanceUID、referenced_SeriesInstanceUID与集合级键collection_id、analysis_result_id、source_DOI中出现。另需注意subjects、updated、description在多张表中重名但语义不同不要跨表当连接键prior_versions_index按SeriesInstanceUIDJOIN 主表恒返回零行。相关参考文档索引本技能SKILL.md按按需加载组织参考文档与本 SQL 速查手册配套的路径如下均为仓库相对路径表结构、DataFrame 访问、连接列参考index_tables_guide.md临床数据模式与值映射clinical_data_guide.md病理专用查询SM/ANN/SEG 工作流digital_pathology_guide.md需要完整 DICOM 元数据、私有元素时的 BigQuery 进阶查询需 GCP 认证bigquery_guide.md不安装 idc-index 直接查 ParquetGCS 上的idc-index-data-artifacts桶parquet_access_guide.md端到端工作流训练数据集、批量下载、pydicom/SimpleITK 读取、流水线集成use_cases.md适用前提与限制本文全部模式经 idc-index 0.12.5 与 IDC 数据版本 v24 验证列名、数组列行为可能随idc-index升级或 IDC 数据版本演进动手前请按技能约定运行 check_version.py 并核对client.get_idc_version()与client.indices_overview。【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考