alterlab-imaging-data-commons について
alterlab-imaging-data-commonsは、idc-indexを使って米国国立がん研究所のImaging Data Commonsにある公開画像データを検索・ダウンロードする研究向けスキルです。メタデータによる絞り込み、DICOM取得、ブラウザー表示に対応し、データアクセスに認証は不要です。
主な機能
- 01SQLによる画像メタデータ検索
- 02がん種やモダリティによる絞り込み
- 03DICOMファイルのダウンロード
- 04ブラウザーでの画像表示
- 05臨床データと派生アノテーションの検索
活用シーン
- 01研究用がん画像データセットの選定
- 02選択したDICOM画像の一括取得
- 03臨床データと画像の関連付け
- 04画像データのライセンス確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-imaging-data-commonsインストール後、Claude Code で/alterlab-imaging-data-commonsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/bigquery_guide.mdcli_guide.mdclinical_data_guide.mdcloud_storage_guide.mdcore_api_examples.mddicomweb_guide.mddigital_pathology_guide.mdindex_tables_guide.mdsql_patterns.mduse_cases.mdscripts/query_imaging_data_commons.py詳細
Imaging Data Commons
概要
idc-index Python パッケージを使用して、National Cancer Institute Imaging Data Commons(IDC)の公開がん画像データを検索、ダウンロードできます。データへのアクセスに認証は必要ありません。
現在の IDC データバージョン:v24(IDCClient().get_idc_version() で必ず確認してください)
主要ツール: idc-index(GitHub)
まず、インストールされているパッケージのバージョンを確認してください。 IDC の各データリリースは新しい idc-index バージョンとして提供されるため、古いバージョンをインストールしたままだと、気付かないうちに古いデータを検索してしまいます。また、0.12.4 までのリリースでは pandas<=2.2.4 が固定されており、pandas 3 と競合します(0.12.5 では pandas<4 に緩和されています)。
from importlib.metadata import version as _v
from packaging.version import Version
REQUIRED_VERSION = "0.12.5" # keep in sync with the compatibility field of this file
installed = _v("idc-index")
# Compare as versions, not strings ("0.9.0" < "0.11.0" is False as a string).
if Version(installed) < Version(REQUIRED_VERSION):
print(f"idc-index {installed} is older than {REQUIRED_VERSION}; upgrade with:")
print(" uv pip install --upgrade idc-index # or: pip install --upgrade idc-index")
print("Then restart Python to load the new version.")
else:
print(f"idc-index {installed} meets requirement ({REQUIRED_VERSION})")
IDC データバージョンを確認し、現在のデータ規模をチェックします:
from idc_index import IDCClient
client = IDCClient()
# Verify IDC data version (should be "v24")
print(f"IDC data version: {client.get_idc_version()}")
# Get collection count and total series
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)
基本的なワークフロー:
- メタデータを検索 →
client.sql_query() - DICOM ファイルをダウンロード →
client.download_from_selection() - ブラウザーで可視化 →
client.get_viewer_URL(seriesInstanceUID=...)
スクリプト
scripts/query_imaging_data_commons.py — idc-index パッケージを使用する CLI ラッパー(標準出力に JSON を出力;uv pip install --upgrade idc-index):
python scripts/query_imaging_data_commons.py version # IDC data version
python scripts/query_imaging_data_commons.py collections --limit 50 # collections + counts
python scripts/query_imaging_data_commons.py sql "SELECT * FROM index LIMIT 5" # raw SQL
このスキルを使用する場合
- 公開されている放射線画像(CT、MR、PET)または病理画像(スライド顕微鏡画像)を探す場合
- がんの種類、モダリティ、解剖学的部位、その他のメタデータで画像のサブセットを選択する場合
- IDC から DICOM データをダウンロードする場合
- 研究または商用利用の前にデータライセンスを確認する場合
- ローカルの DICOM ビューアーソフトウェアを使わずに、ブラウザーで医用画像を可視化する場合
使用しない場合
| シナリオ | 代わりに使用 |
|---|---|
| 手元にある DICOM ファイルの読み取り、匿名化、変換 | alterlab-pydicom |
| ローカルのスライド画像の全スライド画像タイル化と組織検出 | alterlab-histolab |
| TCGA またはその他のがんコホートの体細胞変異/コピー数 | alterlab-cbioportal |
| がん変異シグネチャーとセンサス遺伝子 | alterlab-cosmic |
クイックナビゲーション
主要セクション(本文内):
- IDC データモデル - コレクションと解析結果の階層構造
- インデックステーブル - 利用可能なテーブルと結合パターン
- インストール - パッケージのセットアップとバージョン確認
- 主な機能 - 基本的な API パターン(検索、ダウンロード、可視化、ライセンス、引用、バッチ処理)
- ベストプラクティス - 使用ガイドライン
- トラブルシューティング - よくある問題と解決方法
リファレンスガイド(必要に応じて読み込み):
| ガイド | 読み込む場合 |
|---|---|
core_api_examples.md | 主な機能 §1〜§9 の実行可能なコード例(検索、SQL、ダウンロード、可視化、ライセンス、バッチ処理、BigQuery、パイプライン) |
index_tables_guide.md | 複雑な JOIN、スキーマの検出、DataFrame へのアクセス |
use_cases.md | エンドツーエンドのワークフロー例(トレーニングデータセット、バッチダウンロード) |
sql_patterns.md | フィルターの検索、アノテーション、サイズ見積もりに使う SQL パターン |
clinical_data_guide.md | 臨床/表形式データ、画像と臨床データの結合、値のマッピング |
cloud_storage_guide.md | S3/GCS への直接アクセス、バージョン管理、UUID のマッピング |
dicomweb_guide.md | DICOMweb エンドポイント、PACS 統合 |
digital_pathology_guide.md | スライド顕微鏡画像(SM)、アノテーション(ANN)、病理ワークフロー |
bigquery_guide.md | DICOM メタデータ全体、プライベート要素(GCP が必要) |
cli_guide.md | コマンドラインツール(idc download、マニフェストファイル) |
IDC データモデル
IDC では、標準の DICOM 階層(患者 → 検査 → シリーズ → インスタンス)より上に、2 つのグループ化レベルを追加しています。
- collection_id:疾患、モダリティ、研究対象(例:
tcga_luad、nlst)ごとに患者をグループ化します。患者は必ず 1 つのコレクションに属します。 - analysis_result_id:1 つ以上の元のコレクションにまたがる派生オブジェクト(セグメンテーション、アノテーション、ラジオミクス特徴量)を識別します。
元の画像データ(画像とともに登録されたアノテーションを含む場合があります)を検索するには collection_id を使用し、AI が生成したアノテーションまたは専門家によるアノテーションを検索するには analysis_result_id を使用します。
クエリで使用する主な識別子:
| 識別子 | スコープ | 用途 |
|---|---|---|
collection_id | データセットのグループ化 | プロジェクト/検査によるフィルタリング |
PatientID | 患者 | 患者ごとの画像のグループ化 |
StudyInstanceUID | DICOM 検査 | 関連するシリーズのグループ化、可視化 |
SeriesInstanceUID | DICOM シリーズ | 関連するシリーズのグループ化、可視化 |
インデックステーブル
idc-index パッケージは、SQL または pandas DataFrame としてアクセスできる、複数のメタデータインデックステーブルを提供します。
インデックステーブルの完全なドキュメント: コードを実行せずに利用可能なテーブルと列をすばやく確認するには、https://idc-index.readthedocs.io/en/latest/indices_reference.html を参照してください。
重要: client.indices_overview を使用して、最新のテーブルの説明と列スキーマを取得してください。これは利用可能な列とその型を確認するための信頼できる情報源です。SQL を記述するときやデータ構造を調べるときは、必ずクエリしてください。
利用可能なテーブル
| テーブル | 行の粒度 | 読み込み | 説明 |
|---|---|---|---|
index | 1 行 = 1 DICOM シリーズ | 自動 | 現在 IDC にあるすべてのデータの主要メタデータ |
prior_versions_index | 1 行 = 1 DICOM シリーズ | 自動 | 以前の IDC リリースのシリーズ。非推奨データのダウンロードに使用 |
collections_index | 1 行 = 1 コレクション | fetch_index() | コレクションレベルのメタデータと説明 |
analysis_results_index | 1 行 = 1 解析結果コレクション | fetch_index() | 派生データセット(アノテーション、セグメンテーション)に関するメタデータ |
clinical_index | 1 行 = 1 臨床データ列 | fetch_index() | 臨床テーブルの列をコレクションに対応付ける辞書 |
sm_index | 1 行 = 1 スライド顕微鏡シリーズ | fetch_index() | スライド顕微鏡(病理)のシリーズメタデータ |
sm_instance_index | 1 行 = 1 スライド顕微鏡インスタンス | fetch_index() | スライド顕微鏡のインスタンスレベル(SOPInstanceUID)メタデータ |
seg_index | 1 行 = 1 DICOM セグメンテーションシリーズ | fetch_index() | セグメンテーションのメタデータ:アルゴリズム、セグメント数、ソース画像シリーズへの参照 |
ann_index | 1 行 = 1 DICOM ANN シリーズ | fetch_index() | 顕微鏡バルク簡易アノテーションシリーズのメタデータ。アノテーション対象の画像シリーズを参照 |
ann_group_index | 1 行 = 1 アノテーショングループ | fetch_index() | 詳細なアノテーショングループのメタデータ:グラフィックタイプ、アノテーション数、プロパティコード、アルゴリズム |
contrast_index | 1 行 = 造影剤情報を持つ 1 シリーズ | fetch_index() | 造影剤のメタデータ:薬剤名、成分、投与経路(CT、MR、PT、XA、RF) |
ct_index / mr_index / pt_index | 1 行 = 1 CT / MR / PET 画像シリーズ | fetch_index() | モダリティ固有の撮像パラメーター(例:KVP、ConvolutionKernel、MagneticFieldStrength、EchoTime、Radiopharmaceutical、Units) |
volume_geometry_index | 1 行 = 1 単一フレーム CT/MR/PT シリーズ | fetch_index() | 均等間隔の 3D ボリュームに関するブール値チェック(regularly_spaced_3d_volume、方向、間隔)。ボリュームを構築する前にフィルタリングします |
rtstruct_index | 1 行 = 1 RTSTRUCT シリーズ | fetch_index() | ROI 名/数、生成アルゴリズム、referenced_SeriesInstanceUID |
version_metadata_index | 1 行 = 1 IDC リリース | 自動 | 各 idc_version のリリースタイムスタンプ |
自動 = IDCClient() のインスタンス化時に自動で読み込まれます
fetch_index() = 読み込みには client.fetch_index("table_name") が必要です
テーブルの結合
キー列は明示的にラベル付けされていませんが、以下は結合に使用できる列の一部です。
| 結合列 | テーブル | 使用例 |
|---|---|---|
collection_id | index, prior_versions_index, collections_index, clinical_index | シリーズをコレクションのメタデータまたは臨床データにリンクする |
SeriesInstanceUID | index, prior_versions_index, sm_index, sm_instance_index | テーブル間でシリーズをリンクする。スライドの顕微鏡検査の詳細と接続する |
StudyInstanceUID | index, prior_versions_index | 現在および過去のデータ間でスタディをリンクする |
PatientID | index, prior_versions_index | 現在および過去のデータ間で患者をリンクする |
analysis_result_id | index, analysis_results_index | シリーズを解析結果のメタデータ(アノテーション、セグメンテーション)にリンクする |
source_DOI | index, analysis_results_index | 論文の DOI でリンクする |
crdc_series_uuid | index, prior_versions_index | CRDC の一意識別子でリンクする |
Modality | index, prior_versions_index | 画像診断モダリティでフィルタリングする |
SeriesInstanceUID | index, seg_index, ann_index, ann_group_index, contrast_index | セグメンテーション/アノテーション/造影シリーズを、そのインデックスメタデータにリンクする |
segmented_SeriesInstanceUID | seg_index → index | セグメンテーションを元画像シリーズにリンクする(join seg_index.segmented_SeriesInstanceUID = index.SeriesInstanceUID) |
referenced_SeriesInstanceUID | ann_index → index | アノテーションを元画像シリーズにリンクする(join ann_index.referenced_SeriesInstanceUID = index.SeriesInstanceUID) |
注: Subjects、Updated、Description は複数のテーブルにありますが、それぞれ意味が異なります(件数と識別子、異なる更新コンテキスト)。
詳細な結合例、スキーマの探索パターン、キー列のリファレンス、DataFrame へのアクセスについては、references/index_tables_guide.md を参照してください。
臨床データへのアクセス
# Fetch clinical index (also downloads clinical data tables)
client.fetch_index("clinical_index")
# Query clinical index to find available tables and their columns
tables = client.sql_query("SELECT DISTINCT table_name, column_label FROM clinical_index")
# Load a specific clinical table as DataFrame
clinical_df = client.get_clinical_table("table_name")
値のマッピングパターンや臨床データと画像データの結合を含む詳細なワークフローについては、references/clinical_data_guide.md を参照してください。
データへのアクセス方法
| 方法 | 認証が必要 | 最適な用途 |
|---|---|---|
idc-index | いいえ | 主要なクエリとダウンロード(推奨) |
| IDC Portal | いいえ | インタラクティブな探索、手動選択、ブラウザー経由のダウンロード |
| BigQuery | はい(GCP アカウント) | 複雑なクエリ、すべての DICOM メタデータ |
| DICOMweb プロキシ | いいえ | DICOMweb API 経由のツール統合 |
| クラウドストレージ(S3/GCS) | いいえ | ファイルへの直接アクセス、一括ダウンロード、カスタムパイプライン |
クラウドストレージの構成
IDC はすべての DICOM ファイルをパブリッククラウドストレージバケットに保存し、AWS S3 と Google Cloud Storage 間でミラーリングしています。ファイルはバージョン管理に対応するため、DICOM UID ではなく CRDC UUID で整理されています。
| バケット(AWS / GCS) | ライセンス | 内容 |
|---|---|---|
idc-open-data / idc-open-data | 商用利用の制限なし | IDC データの 90% 超 |
idc-open-data-two / idc-open-idc1 | 商用利用の制限なし | 頭部スキャンが含まれる可能性のあるコレクション |
idc-open-data-cr / idc-open-cr | 商用利用制限あり(CC BY-NC) | データの約 4% |
ファイルは <crdc_series_uuid>/<crdc_instance_uuid>.dcm として保存されています。AWS CLI、gsutil、または s5cmd を使用した匿名アクセスで、無料(転送手数料なし)で利用できます。S3 URL にはインデックスの series_aws_url 列を使用してください。GCS でも同じパス構造が使われます。
バケットの詳細、アクセスコマンド、UUID のマッピング、バージョン管理については、references/cloud_storage_guide.md を参照してください。
DICOMweb アクセス
IDC データは DICOMweb インターフェース(Google Cloud Healthcare API の実装)経由で利用でき、PACS システムや DICOMweb 対応ツールと統合できます。
| エンドポイント | 認証 | 使用例 |
|---|---|---|
| パブリックプロキシ | いいえ | テスト、中程度のクエリ、日次クォータ |
| Google Healthcare | はい(GCP) | 本番環境での使用、より高いクォータ |
エンドポイント URL、コード例、サポートされる操作、実装の詳細については、references/dicomweb_guide.md を参照してください。
インストールとセットアップ
必須(基本的なアクセス用):
uv pip install --upgrade idc-index # or: pip install --upgrade idc-index
重要: IDC データの新しいリリースがあると、必ず idc-index の新しいバージョンがリリースされます。再現性のために古いバージョンが必要な場合を除き、インストール時には必ず --upgrade フラグを使用してください。
IDC データバージョン v24 は 2026-09 時点で最新です。セッション開始時にバージョンを確認してください:
print(client.get_idc_version()) # "v24"
古いバージョンの場合は、次のコマンドでアップグレードしてください:uv pip install --upgrade idc-index
テスト環境: idc-index 0.12.5、pandas 3.0(IDC データバージョン v24)。参照ファイルは 0.12.3 を基に作成されています。同じデータリリースです。
任意(データ分析用):
uv pip install pandas numpy pydicom
主な機能
以下の各機能で実行可能な Python/SQL/CLI のレシピは、
references/core_api_examples.md にあります(このページの見出しに対応する番号付きの§1~§9)。
コピーして使用できるコードが必要な場合は、このファイルを読み込んでください。ここでは、目的に応じた参照先と主な判断事項を説明します。すべての例は
from idc_index import IDCClient; client = IDCClient() を前提としています。
1. データの検出と調査
利用可能なコレクションと派生データセットを確認します:
- 主な
indexを集計します(collection_idごとの患者数/シリーズ数/サイズ)。 collections_index(fetch_indexの実行後)には、集計を伴わない、コレクションごとに整理されたメタデータ(CancerTypes、TumorLocations、Species、Subjects)が含まれます。analysis_results_indexには、派生データセット(AI セグメンテーション、専門家によるアノテーション、ラジオミクス)が、ソースとなるコレクションおよびモダリティとともに一覧表示されます。
レシピは core_api_examples.md §1 を参照してください。
2. SQL によるメタデータのクエリ
2 段階のパターンです。まずフィルター値を確認し(SELECT DISTINCT Modality …、
BodyPartExamined …)、次に検証済みの値を使ってクエリを実行します。結果には
pandas の DataFrame としてアクセスします。がん種でフィルターするには、index と collections_index を JOIN します(がん種は主な index ではなく、collections_index.CancerTypes にあります)。
列の一覧全体を確認するには、client.indices_overview を使用してください。レシピは
core_api_examples.md §2 を参照してください。
3. DICOM ファイルのダウンロード
client.download_from_selection(...) を使い、collection_id または seriesInstanceUID でダウンロードします。downloadDir と、必要に応じて dirTemplate を指定できます(デフォルトは
%collection_id/%PatientID/%StudyInstanceUID/%Modality_%SeriesInstanceUID、フラットな構成にする場合は "")。ファイル名には DICOM UID ではなく、CRDC インスタンス UUID(<uuid>.dcm)が使われます。idc download CLI も同じ機能を備え、識別子とマニフェストファイルを自動的に判別します。レシピ、CLI オプション、マニフェスト形式については
core_api_examples.md §3 を、CLI の詳細については references/cli_guide.md を参照してください。
4. IDC 画像の可視化
client.get_viewer_URL(seriesInstanceUID=...)(複数シリーズの検査には
studyInstanceUID=...)は、ブラウザーで開ける URL を返します。ダウンロードは不要です。このメソッドは、放射線画像には OHIF v3、スライド顕微鏡画像には SLIM を自動的に選択します。レシピは
core_api_examples.md §4 を参照してください。
5. ライセンスの確認と把握
使用前に license_short_name を確認してください。CC BY 4.0/3.0(約97%)では、商用利用が帰属表示付きで許可されています。CC BY-NC 4.0/3.0(約3%)は非商用利用のみ許可されています。まれに独自ライセンスもあります。帰属表示には、citations_from_selection() を使うと source_DOI から書式設定済みの引用を生成できます(デフォルトは APA。IDCClient.CITATION_FORMAT_* を使って BibTeX、JSON、Turtle も指定できます)。レシピは core_api_examples.md §5 を参照してください。
6. バッチ処理とフィルタリング
フィルターを指定してクエリを実行し、マニフェスト CSV を保存してから、タイムアウトを避けるためにバッチでダウンロードします(例:一度に10シリーズ)。レシピは core_api_examples.md §6 を参照してください。
7. BigQuery による高度なクエリ
すべての DICOM メタデータ、複雑な JOIN、またはプライベート DICOM 要素(OtherElements)が必要な場合に限り、BigQuery を使用してください。まず、専用のインデックス(seg_index、ann_index/ann_group_index、sm_index、collections_index)に対象のフィールドがすでにあるか確認してください。ローカルの sql_query は無料で、GCP アカウントも必要ありません。
データセットは bigquery-public-data.idc_current.*、メインテーブルは dicom_all です。references/bigquery_guide.md を参照してください。クイックリファレンスは core_api_examples.md §7 にあります。
8. ツールの選択ガイド
| タスク | ツール | 参照 |
|---|---|---|
| プログラムによるクエリとダウンロード | idc-index | このドキュメント |
| 対話的な探索 | IDC Portal | https://portal.imaging.datacommons.cancer.gov/ |
| 複雑なメタデータクエリ | BigQuery | references/bigquery_guide.md |
| 3D 可視化と解析 | SlicerIDCBrowser | https://github.com/ImagingDataCommons/SlicerIDCBrowser |
デフォルトの選択肢: ほとんどのタスクでは idc-index を使用してください(認証不要、使いやすい API、一括ダウンロードに対応)。
9. 解析パイプラインとの統合
ダウンロード後、pydicom で DICOM を読み込み、ImagePositionPatient[2] で並べ替えて pixel_array をスタックして 3D ボリュームを構築するか、SimpleITK.ImageSeriesReader でシリーズを読み込んで処理や NIfTI へのエクスポートを行います。レシピは core_api_examples.md §9 にあります。
よくあるユースケース
references/use_cases.md では、次のようなワークフローの最初から最後までを網羅した例を確認できます。
- 肺 CT スキャンから深層学習のトレーニングデータセットを構築する
- スキャナーメーカーごとに画質を比較する
- ダウンロード前にブラウザーでデータをプレビューする
- 商用利用に向けてライセンスを考慮した一括ダウンロードを行う
ベストプラクティス
- 応答を生成する前に IDC のバージョンを確認する - セッションの開始時に必ず
client.get_idc_version()を呼び出し、想定しているデータバージョンを使用していることを確認してください(現在は v24 です)。古いバージョンを使用している場合は、uv pip install --upgrade idc-indexを推奨してください - 使用前にライセンスを確認する - 必ず
license_short_nameフィールドをクエリし、ライセンス条件(CC BY と CC BY-NC)を遵守してください - 帰属表示用の引用を生成する -
citations_from_selection()を使用してsource_DOIの値から適切な形式の引用を取得し、論文に含めてください - 小さなクエリから始める - データを探索するときは
LIMIT句を使用して、長時間のダウンロードを避け、データ構造を把握してください - 単純なクエリにはミニインデックスを使用する - 包括的なメタデータや複雑な JOIN が必要な場合にのみ BigQuery を使用してください
- dirTemplate でダウンロードを整理する -
%collection_id/%PatientID/%Modalityのような意味のあるディレクトリ構造を使用してください - クエリ結果をキャッシュする - 再クエリを避け、再現性を確保するため、DataFrame を CSV ファイルに保存してください
- 最初にサイズを見積もる - ダウンロード前にコレクションのサイズを確認してください。テラバイト単位のコレクションもあります!
- マニフェストを保存する - 再現性とデータの来歴を確保するため、Series UID を含むクエリ結果を必ず保存してください
- ドキュメントを読む - IDC のデータ構造とメタデータフィールドについては、https://learn.canceridc.dev/ に記載されています
- IDC フォーラムを利用する - https://discourse.canceridc.dev/ で質問と回答を検索したり、IDC のメンテナーやユーザーに質問したりできます
トラブルシューティング
問題:ModuleNotFoundError: No module named 'idc_index'
- 原因: idc-index パッケージがインストールされていません
- 解決策:
uv pip install --upgrade idc-indexでインストールします
問題:依存関係リゾルバーが pandas 3 と idc-index の併用を拒否する
- 原因: idc-index ≤ 0.12.4 は
pandas<=2.2.4を固定しています - 解決策: idc-index ≥ 0.12.5 にアップグレードします
問題:接続がタイムアウトしてダウンロードに失敗する
- 原因: ネットワークが不安定、またはダウンロードサイズが大きすぎます
- 解決策:
- ダウンロードするバッチを小さくします(例:一度に 10~20 個のシリーズ)
- ネットワーク接続を確認します
dirTemplateを使用して、バッチごとにダウンロードを整理します- 遅延を入れた再試行ロジックを実装します
問題:BigQuery quota exceeded または請求に関するエラー
- 原因: BigQuery には請求が有効な GCP プロジェクトが必要です
- 解決策: 単純なクエリには idc-index mini-index を使用します(請求は不要です)。または、コスト最適化のヒントについては
references/bigquery_guide.mdを参照してください
問題:シリーズ UID が見つからない、またはデータが返されない
- 原因: UID の入力ミス、現在の IDC バージョンにデータがない、またはフィールド名が誤っています
- 解決策:
- 現在の IDC バージョンにデータがあるか確認します(古いデータの一部は非推奨になっている場合があります)
- まず
LIMIT 5を使用してクエリをテストします - メタデータスキーマのドキュメントと照らし合わせてフィールド名を確認します
問題:ダウンロードした DICOM ファイルが開けない
- 原因: ダウンロードファイルが破損しているか、ビューアーに互換性がありません
- 解決策:
- DICOM オブジェクトの種類(Modality および SOPClassUID 属性)を確認します。一部のオブジェクトタイプには専用ツールが必要です
- ファイルの整合性を確認します(ファイルサイズをチェックします)
- pydicom を使用して検証します:
pydicom.dcmread(file, force=True) - 別の DICOM ビューアーを試します(3D Slicer、Horos、RadiAnt、QuPath)
- シリーズを再ダウンロードします
よく使われる SQL クエリパターン
フィルター値の確認(モダリティ、身体部位、メーカー)、アノテーションとセグメンテーションのクエリ(seg_index、ann_index の結合を含む)、スライド顕微鏡検査のクエリ(sm_index パターン)、ダウンロードサイズの推定、臨床データのリンクなど、すぐに参照できる SQL パターンについては references/sql_patterns.md を参照してください。
セグメンテーションとアノテーションの詳細については、references/digital_pathology_guide.md も参照してください。
関連スキル
以下のスキルは、後続の分析と可視化において IDC ワークフローを補完します。
DICOM 処理
alterlab-pydicom- ダウンロードした DICOM ファイルの読み込み、書き込み、操作に使用します。ピクセルデータの抽出、メタデータの読み込み、匿名化、形式変換などに使用します。IDC の放射線画像データ(CT、MR、PET)の処理に不可欠です。
病理学とスライド顕微鏡検査
DICOM 互換ツール(highdicom、wsidicom、TIA-Toolbox、Slim viewer)については references/digital_pathology_guide.md を参照してください。
メタデータの可視化
alterlab-matplotlib- 詳細にカスタマイズできる低レベルのプロット機能です。IDC クエリ結果を要約する静的な図(モダリティの棒グラフ、シリーズ数のヒストグラムなど)の作成に使用します。alterlab-seaborn- pandas と連携した統計的可視化です。IDC メタデータの分布、変数間の関係、カテゴリ間の比較を、見栄えのよいデフォルト設定で手早く探索するのに使用します。alterlab-plotly- インタラクティブな可視化です。IDC メタデータを探索する際にホバー情報、ズーム、パンが必要な場合や、コレクション統計のウェブ埋め込み可能なダッシュボードを作成する場合に使用します。
データ探索
alterlab-eda- 科学データファイルを対象とする包括的な EDA です。分析の前に IDC データをダウンロードした後、ファイル構造、品質、特性を把握するために使用します。
リソース
スキーマリファレンス(主な情報源)
現在の列スキーマを確認するには、必ず client.indices_overview を使用してください。 インストールされている idc-index バージョンに即した正確な情報を確認できます。
# Get all column names and types for any table
schema = client.indices_overview["index"]["schema"]
columns = [(c['name'], c['type'], c.get('description', '')) for c in schema['columns']]
リファレンスドキュメント
判断の目安とともにリファレンスガイドの全一覧を確認するには、冒頭の「クイックナビゲーション」セクションを参照してください。
- indices_reference - インデックステーブルに関する外部ドキュメント(インストールされているバージョンより新しい内容が含まれている場合があります)
外部リンク
- IDC ポータル: https://portal.imaging.datacommons.cancer.gov/explore/
- ドキュメント: https://learn.canceridc.dev/
- チュートリアル: https://github.com/ImagingDataCommons/IDC-Tutorials
- ユーザーフォーラム: https://discourse.canceridc.dev/
- idc-index GitHub: https://github.com/ImagingDataCommons/idc-index
- 引用: 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
スキルの更新
このスキルのバージョンはスキルのメタデータで確認できます。更新を確認するには:
- リリースページにアクセスします
- GitHub でリポジトリをウォッチします(Watch → Custom → Releases)