3D SlicerのRadiomics出力を機械学習向けに再整形するツール
概要
3D SlicerのRadiomics抽出結果は、しばしば個別CSVファイルに縦方向(特徴ごとに行)で保存されますが、機械学習や多変量解析では「各サンプルが行、各特徴が列」の横長テーブルが扱いやすいです。本リポジトリは、複数のSlicer由来CSVを一括で読み込み、必要なメタデータ(サンプルIDやラベル)を抽出・正規化し、欠損や重複列を処理して、機械学習パイプラインに適した単一CSVを出力するJupyter Notebook(Python / pandas)ツールです。操作はNotebook上で完結し、簡単にカスタマイズできます。
リポジトリの統計情報
- スター数: 12
- フォーク数: 0
- ウォッチャー数: 12
- コミット数: 3
- ファイル数: 3
- メインの言語: Jupyter Notebook
主な特徴
- 複数の3D Slicer由来CSVをバッチ処理して単一のサンプル×特徴テーブルに結合可能。
- pandas中心のシンプル実装で、Notebook上で手順を追いながらカスタマイズ・検証できる。
- 特徴名の正規化(プレフィックス・空白・大文字小文字の統一)や欠損値の扱い、列の重複解消を含む前処理機能。
- 出力は機械学習フレームワークに直接読み込めるCSV形式。メタデータ列(ID, ラベル)を先頭に配置可能。
技術的なポイント
本Notebookは主にpandasを用いてCSVの読み込み、整形、結合を行います。3D Slicerの出力は「特徴名:値」が縦に並ぶ形式になっている場合が多く、まず各ファイルをDataFrameとして読み込み、サンプル識別子(ファイル名、またはCSV内メタ情報)を抽出して列として付与します。実装上は以下の処理を順に行います:1) glob/pathlibで対象CSVを列挙、2) 各CSVを読み込み行列を転置またはpivotして「特徴を列」に変換、3) 特徴名を正規化(空白削除・小文字化・記号除去)、4) 複数DataFrameを外部結合(union)して欠損をNaNで統一、5) 必要に応じて欠損補完または削除、6) 重複列があれば接尾辞で整理、7) 最終テーブルをCSVとして出力。Notebook形式なので、スクリプト的にループ処理を組むのは容易で、分類ラベルをファイル名から正規表現で抽出したり、特徴群(形状、強度、テクスチャ等)で列をソートするなどの拡張が簡単です。依存はpandasが主体で軽量、環境再現性のためにNotebookのセルに処理手順が明示されています。一方で、Slicerの出力フォーマットがバージョンや設定で異なる場合があるため、特徴名の揺らぎやメタ情報の位置が異なると追加前処理が必要になる点に注意してください。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- Notebook実行で生成されるキャッシュや環境固有ファイルの無視設定。
- README.md: file
- プロジェクトの目的、簡単な使い方、依存関係の説明。
- slicer_radiomics_csv_reshaper.ipynb: file
- 実際の処理ロジックが記述されたJupyter Notebook。以下のようなセル構成が想定されます:
- 環境準備(ライブラリimport、入出力パス設定)
- CSV列挙とサンプルID抽出(pathlib / re)
- 単一CSVの読み込み→特徴行の変換(transpose/pivot)
- 特徴名のクレンジング関数(正規化ルール)
- DataFrameのマージ(outer join)と欠損処理
- 出力保存(CSV)と簡易の検証(欠損率や列数表示)
- NotebookはそのままJupyterで開いて手順を順追いで実行・改変できます。
- 実際の処理ロジックが記述されたJupyter Notebook。以下のようなセル構成が想定されます:
まとめ
3D Slicerの縦型CSVを機械学習向けの横型テーブルに一括変換する実用的なツールです。
リポジトリ情報:
- 名前: Radiomics-Table-Reformatter-for-3D-Slicer-Radiomics-Extraction-Outputs
- 説明: Batch reformatting of 3D Slicer radiomics CSV files into sample-by-feature tables for machine learning.
- スター数: 12
- 言語: Jupyter Notebook
- URL: https://github.com/Edward-E-S-Wang/Radiomics-Table-Reformatter-for-3D-Slicer-Radiomics-Extraction-Outputs
- オーナー: Edward-E-S-Wang
- アバター: https://avatars.githubusercontent.com/u/205579220?v=4
READMEの抜粋:
Radiomics Table Reformatter for 3D Slicer Radiomics Extraction Outputs Table
Slicer Radiomics CSV Reshaper
A small Python utility for batch reorganizing radiomics CSV files exported from 3D Slicer into a table format that is easier to use for machine learning and downstream statistical analysis.
Overview
Radiomics results exported from 3D Slicer are often stored in individual CSV files, where feature values are arranged vertically.
For machine learning workflows, however, dat…