exploratory-data-analysis について
exploratory-data-analysis は、幅広い分野の科学データファイルを調べるスキルです。形式の特定、データ品質の評価、構造や統計の要約を行い、解析や可視化の提案を含む Markdown レポートを作成します。
主な機能
- 01科学データ形式の特定
- 02形式に応じたメタデータ抽出
- 03データ品質と整合性の評価
- 04構造と統計情報の要約
- 05解析と可視化方法の提案
- 06Markdown レポートの生成
活用シーン
- 01解析前の科学データファイルの確認
- 02データセットの完全性と品質の点検
- 03シーケンスや顕微鏡データの確認
- 04ファイル内容に基づく解析計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ crazymsn/ academic-skills --skill exploratory-data-analysisインストール後、Claude Code で/exploratory-data-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/report_template.mdreferences/bioinformatics_genomics_formats.mdchemistry_molecular_formats.mdgeneral_scientific_formats.mdmicroscopy_imaging_formats.mdproteomics_metabolomics_formats.mdspectroscopy_analytical_formats.mdscripts/eda_analyzer.py詳細
探索的データ分析
概要
さまざまな分野の科学データファイルに対して、包括的な探索的データ分析(EDA)を実行します。このスキルは、ファイルタイプの自動検出、フォーマット固有の分析、データ品質の評価を提供し、ドキュメント作成や後続の分析計画に適した詳細なMarkdownレポートを生成します。
主な機能:
- 200以上の科学ファイルフォーマットの自動検出と分析
- フォーマット固有のメタデータの包括的な抽出
- データ品質と完全性の評価
- 統計サマリーと分布
- 可視化の推奨
- 後続分析の提案
- Markdownレポートの生成
このスキルを使用する場合
次のような場合にこのスキルを使用します:
- ユーザーが分析対象の科学データファイルのパスを指定したとき
- ユーザーがデータファイルを「探索」「分析」「要約」するよう依頼したとき
- ユーザーが科学データの構造と内容を把握したいとき
- ユーザーが分析の前にデータセットの包括的なレポートを必要とするとき
- ユーザーがデータの品質や完全性を評価したいとき
- ユーザーがファイルに適した分析の種類を尋ねたとき
対応ファイルカテゴリ
このスキルは、科学ファイルフォーマットを6つの主要カテゴリに分類して幅広くカバーしています。
1. 化学および分子フォーマット(60以上の拡張子)
構造ファイル、計算化学の出力、分子動力学のトラジェクトリ、化学データベース。
対応ファイルタイプ: .pdb、.cif、.mol、.mol2、.sdf、.xyz、.smi、.gro、.log、.fchk、.cube、.dcd、.xtc、.trr、.prmtop、.psf など。
参照ファイル: references/chemistry_molecular_formats.md
2. バイオインフォマティクスおよびゲノミクスのフォーマット(50以上の拡張子)
配列データ、アラインメント、アノテーション、バリアント、発現データ。
対応ファイルタイプ: .fasta、.fastq、.sam、.bam、.vcf、.bed、.gff、.gtf、.bigwig、.h5ad、.loom、.counts、.mtx など。
参照ファイル: references/bioinformatics_genomics_formats.md
3. 顕微鏡および画像化のフォーマット(45以上の拡張子)
顕微鏡画像、医用画像、ホールスライドイメージング、電子顕微鏡。
対応ファイルタイプ: .tif、.nd2、.lif、.czi、.ims、.dcm、.nii、.mrc、.dm3、.vsi、.svs、.ome.tiff など。
参照ファイル: references/microscopy_imaging_formats.md
4. 分光法および分析化学のフォーマット(35以上の拡張子)
NMR、質量分析、IR/ラマン、UV-Vis、X線、クロマトグラフィーなどの分析手法。
対応ファイルタイプ: .fid、.mzML、.mzXML、.raw、.mgf、.spc、.jdx、.xy、.cif(結晶学)、.wdf など。
参照ファイル: references/spectroscopy_analytical_formats.md
5. プロテオミクスおよびメタボロミクスのフォーマット(30以上の拡張子)
質量分析によるプロテオミクス、メタボロミクス、リピドミクス、マルチオミクスデータ。
対応ファイルタイプ: .mzML、.pepXML、.protXML、.mzid、.mzTab、.sky、.mgf、.msp、.h5ad など。
参照ファイル: references/proteomics_metabolomics_formats.md
6. 一般的な科学データフォーマット(30以上の拡張子)
配列、表、階層データ、圧縮アーカイブ、一般的な科学フォーマット。
対応ファイルタイプ: .npy、.npz、.csv、.xlsx、.json、.hdf5、.zarr、.parquet、.mat、.fits、.nc、.xml など。
参照ファイル: references/general_scientific_formats.md
ワークフロー
ステップ1: ファイルタイプの検出
ユーザーがファイルパスを提供したら、まずファイルタイプを特定します。
- ファイル拡張子を抽出する
- 適切な参照ファイルで拡張子を検索する
- ファイルのカテゴリとフォーマットの説明を特定する
- フォーマット固有の情報を読み込む
例:
User: "Analyze data.fastq"
→ Extension: .fastq
→ Category: bioinformatics_genomics
→ Format: FASTQ Format (sequence data with quality scores)
→ Reference: references/bioinformatics_genomics_formats.md
ステップ 2: フォーマット固有の情報を読み込む
ファイルの種類に応じて、対応するリファレンスファイルを読み、以下を把握します:
- 代表的なデータ: この形式にどのような種類のデータが含まれるか
- ユースケース: この形式の一般的な用途
- Python ライブラリ: Python でファイルを読み込む方法
- EDA のアプローチ: このデータ型に適した分析
リファレンスファイル内で、特定の拡張子を検索します(例: bioinformatics_genomics_formats.md 内で "### .fastq" を検索)。
ステップ 3: データ分析を実行する
scripts/eda_analyzer.py スクリプトを使用するか、独自の分析を実装します:
オプション A: 分析スクリプトを使用する
# The script automatically:
# 1. Detects file type
# 2. Loads reference information
# 3. Performs format-specific analysis
# 4. Generates markdown report
python scripts/eda_analyzer.py <filepath> [output.md]
オプション B: 会話内でカスタム分析を行う リファレンスファイルのフォーマット情報に基づき、適切な分析を行います:
表形式データ(CSV、TSV、Excel)の場合:
- pandas で読み込む
- 次元とデータ型を確認する
- 欠損値を分析する
- 要約統計量を計算する
- 外れ値を特定する
- 重複を確認する
配列データ(FASTA、FASTQ)の場合:
- 配列数を数える
- 長さの分布を分析する
- GC 含量を計算する
- 品質スコアを評価する(FASTQ)
画像(TIFF、ND2、CZI)の場合:
- 次元(X、Y、Z、C、T)を確認する
- ビット深度と値の範囲を分析する
- メタデータ(チャンネル、タイムスタンプ、空間キャリブレーション)を抽出する
- 強度の統計量を計算する
配列(NPY、HDF5)の場合:
- 形状と次元を確認する
- データ型を分析する
- 統計的な要約を計算する
- 欠損値・無効値を確認する
ステップ 4: 包括的なレポートを生成する
以下のセクションを含む Markdown レポートを作成します:
必須セクション:
-
タイトルとメタデータ
- ファイル名とタイムスタンプ
- ファイルサイズと場所
-
基本情報
- ファイルのプロパティ
- フォーマットの識別
-
ファイル形式の詳細
- リファレンスからのフォーマット説明
- 代表的なデータ内容
- 一般的なユースケース
- 読み込みに使う Python ライブラリ
-
データ分析
- 構造と次元
- 統計的な要約
- 品質評価
- データの特性
-
主な発見
- 注目すべきパターン
- 潜在的な問題
- 品質指標
-
推奨事項
- 前処理の手順
- 適切な分析
- ツールと手法
- 可視化のアプローチ
テンプレートの場所
レポートの構成の参考として assets/report_template.md を使用します。
ステップ 5: レポートを保存する
Markdown レポートを、内容がわかるファイル名で保存します:
- パターン:
{original_filename}_eda_report.md - 例:
experiment_data.fastq→experiment_data_eda_report.md
詳細なフォーマットリファレンス
各リファレンスファイルには、数十種類のファイル形式に関する包括的な情報が含まれています。特定の形式の情報を探すには、次の手順に従います:
- 拡張子からカテゴリを特定する
- 該当するリファレンスファイルを読む
- 拡張子に一致するセクション見出しを検索する(例: "### .pdb")
- フォーマット情報を抽出する
リファレンスファイルの構造
各フォーマットのエントリには以下が含まれます:
- Description: その形式が何であるか
- Typical Data: 含まれるデータの内容
- Use Cases: 一般的な用途
- Python Libraries: 読み込み方法(コード例付き)
- EDA Approach: 実行すべき具体的な分析
検索例:
### .pdb - Protein Data Bank
**Description:** Standard format for 3D structures of biological macromolecules
**Typical Data:** Atomic coordinates, residue information, secondary structure
**Use Cases:** Protein structure analysis, molecular visualization, docking
**Python Libraries:**
- `Biopython`: `Bio.PDB`
- `MDAnalysis`: `MDAnalysis.Universe('file.pdb')`
**EDA Approach:**
- Structure validation (bond lengths, angles)
- B-factor distribution
- Missing residues detection
- Ramachandran plots
ベストプラクティス
リファレンスファイルの読み方
リファレンスファイルは大きい(それぞれ 10,000 語以上)ため、効率的に利用するには次の点に注意してください:
-
拡張子で検索する: grep を使って特定の形式を探す
import re with open('references/chemistry_molecular_formats.md', 'r') as f: content = f.read() pattern = r'### \.pdb[^#]*?(?=###|\Z)' match = re.search(pattern, content, re.IGNORECASE | re.DOTALL) -
関連するセクションだけを抽出する: 不必要にリファレンスファイル全体をコンテキストに読み込まない
-
フォーマット情報をキャッシュする: 同じ種類の複数ファイルを分析する場合は、フォーマット情報を再利用する
データ分析
- 大きなファイルはサンプリングする: 数百万件のレコードがあるファイルでは、代表的なサンプルを分析する
- エラーを適切に処理する: 多くの科学フォーマットには特定のライブラリが必要なため、わかりやすいインストール手順を示す
- メタデータを検証する: メタデータの整合性を確認する(例: 記載された次元と実際のデータの照合)
- データの来歴を記録する: 機器、ソフトウェアのバージョン、処理手順を明記する
レポート生成
- 包括的であること: 後続の分析に必要な関連情報をすべて含めます
- 具体的であること: ファイルの種類に基づいて、具体的な推奨事項を示します
- 実行可能であること: 具体的な次のステップとツールを提案します
- コード例を含めること: データの読み込みと操作の方法を示します
例
例 1: FASTQ ファイルの分析
# User provides: "Analyze reads.fastq"
# 1. Detect file type
extension = '.fastq'
category = 'bioinformatics_genomics'
# 2. Read reference info
# Search references/bioinformatics_genomics_formats.md for "### .fastq"
# 3. Perform analysis
from Bio import SeqIO
sequences = list(SeqIO.parse('reads.fastq', 'fastq'))
# Calculate: read count, length distribution, quality scores, GC content
# 4. Generate report
# Include: format description, analysis results, QC recommendations
# 5. Save as: reads_eda_report.md
例 2: CSV データセットの分析
# User provides: "Explore experiment_results.csv"
# 1. Detect: .csv → general_scientific
# 2. Load reference for CSV format
# 3. Analyze
import pandas as pd
df = pd.read_csv('experiment_results.csv')
# Dimensions, dtypes, missing values, statistics, correlations
# 4. Generate report with:
# - Data structure
# - Missing value patterns
# - Statistical summaries
# - Correlation matrix
# - Outlier detection results
# 5. Save report
例 3: 顕微鏡データの分析
# User provides: "Analyze cells.nd2"
# 1. Detect: .nd2 → microscopy_imaging (Nikon format)
# 2. Read reference for ND2 format
# Learn: multi-dimensional (XYZCT), requires nd2reader
# 3. Analyze
from nd2reader import ND2Reader
with ND2Reader('cells.nd2') as images:
# Extract: dimensions, channels, timepoints, metadata
# Calculate: intensity statistics, frame info
# 4. Generate report with:
# - Image dimensions (XY, Z-stacks, time, channels)
# - Channel wavelengths
# - Pixel size and calibration
# - Recommendations for image analysis
# 5. Save report
トラブルシューティング
ライブラリの不足
多くの科学データ形式には、専用のライブラリが必要です。
問題: ファイルの読み込み時にインポートエラーが発生する
解決策: 明確なインストール手順を提供します
try:
from Bio import SeqIO
except ImportError:
print("Install Biopython: uv pip install biopython")
分野別の一般的な要件:
- バイオインフォマティクス:
biopython、pysam、pyBigWig - 化学:
rdkit、mdanalysis、cclib - 顕微鏡:
tifffile、nd2reader、aicsimageio、pydicom - 分光法:
nmrglue、pymzml、pyteomics - 汎用:
pandas、numpy、h5py、scipy
未知のファイル形式
ファイル拡張子が参照資料に含まれていない場合:
- ユーザーにファイル形式を確認します
- ベンダー固有のバリアントかどうかを確認します
- ファイル構造(テキストかバイナリか)に基づいて、汎用的な分析を試みます
- 一般的な推奨事項を提供します
大容量ファイル
非常に大きなファイルの場合:
- サンプリング戦略を使用します(先頭 N 件のレコードなど)
- メモリマップドアクセスを使用します(HDF5、NPY の場合)
- チャンク単位で処理します(CSV、FASTQ の場合)
- サンプルに基づいて推定値を提供します
スクリプトの使用方法
scripts/eda_analyzer.py は直接使用できます:
# Basic usage
python scripts/eda_analyzer.py data.csv
# Specify output file
python scripts/eda_analyzer.py data.csv output_report.md
# The script will:
# 1. Auto-detect file type
# 2. Load format references
# 3. Perform appropriate analysis
# 4. Generate markdown report
このスクリプトは多くの一般的な形式に対して自動分析をサポートしていますが、会話の中でのカスタム分析の方が、より柔軟でドメイン固有の知見を得られます。
高度な使用方法
複数ファイルの分析
関連する複数のファイルを分析する場合:
- 各ファイルに対して個別の EDA を実施します
- 比較サマリーレポートを作成します
- 関係性と依存関係を特定します
- 統合戦略を提案します
品質管理
データ品質の評価には、次の手順を用います:
- 形式への準拠を確認します
- メタデータの一貫性を検証します
- 完全性を評価します
- 外れ値と異常を特定します
- 想定される範囲・分布と比較します
前処理の推奨事項
データの特性に基づいて、次の項目を推奨します:
- 正規化戦略
- 欠損値の補完
- 外れ値の処理
- バッチ補正
- 形式変換
リソース
scripts/
eda_analyzer.py: 直接実行またはインポートできる包括的な分析スクリプト
references/
chemistry_molecular_formats.md: 60 以上の化学・分子ファイル形式bioinformatics_genomics_formats.md: 50 以上のバイオインフォマティクス形式microscopy_imaging_formats.md: 45 以上のイメージング形式spectroscopy_analytical_formats.md: 35 以上の分光分析形式proteomics_metabolomics_formats.md: 30 以上のオミクス形式general_scientific_formats.md: 30 以上の汎用科学形式
assets/
report_template.md: EDA レポート用の包括的な Markdown テンプレート