mcpField
E
exploratory-data-analysis

exploratory-data-analysis

github.com/crazymsn数据与数据库2336 次安装22 周前更新
代码仓库

关于 exploratory-data-analysis

exploratory-data-analysis 是用于检查多领域科学数据文件的技能。它可识别格式、评估数据质量、汇总结构与统计信息,并生成包含分析和可视化建议的 Markdown 报告。

主要功能

  1. 01识别科学文件格式
  2. 02提取格式专属元数据
  3. 03评估数据质量与完整性
  4. 04汇总结构和统计信息
  5. 05建议分析与可视化方式
  6. 06生成 Markdown 报告

适用场景

  1. 01分析前检查科学数据文件
  2. 02评估数据集的完整性与质量
  3. 03检查测序或显微成像数据
  4. 04根据文件内容规划合适的分析

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/crazymsn/academic-skills --skill exploratory-data-analysis

安装后在 Claude Code 中输入/exploratory-data-analysis确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
report_template.md
references/
bioinformatics_genomics_formats.md
chemistry_molecular_formats.md
general_scientific_formats.md
microscopy_imaging_formats.md
proteomics_metabolomics_formats.md
spectroscopy_analytical_formats.md
scripts/
eda_analyzer.py

详细介绍

探索性数据分析

概述

对多个领域的科学数据文件进行全面的探索性数据分析(EDA)。此技能支持自动检测文件类型、针对特定格式进行分析、评估数据质量,并生成详细的 Markdown 报告,适用于文档记录和下游分析规划。

主要功能:

  • 自动检测并分析 200 多种科学文件格式
  • 全面提取特定格式的元数据
  • 评估数据质量和完整性
  • 提供统计摘要和分布情况
  • 推荐可视化方案
  • 提供下游分析建议
  • 生成 Markdown 报告

何时使用此技能

适用于以下情况:

  • 用户提供科学数据文件的路径并要求分析
  • 用户要求“探索”“分析”或“汇总”数据文件
  • 用户希望了解科学数据的结构和内容
  • 用户需要在分析前获取数据集的综合报告
  • 用户希望评估数据质量或完整性
  • 用户询问某个文件适合进行哪种分析

支持的文件类别

此技能全面支持科学文件格式,分为六大类别:

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/Raman、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 步:检测文件类型

用户提供文件路径时,首先识别文件类型:

  1. 提取文件扩展名
  2. 在相应的参考文件中查找该扩展名
  3. 确定文件类别和格式说明
  4. 加载特定格式的信息

示例:

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 报告:

必需部分:
  1. 标题和元数据

    • 文件名和时间戳
    • 文件大小和位置
  2. 基本信息

    • 文件属性
    • 格式识别结果
  3. 文件类型详情

    • 参考文件中的格式说明
    • 典型数据内容
    • 常见使用场景
    • 用于读取的 Python 库
  4. 数据分析

    • 结构和维度
    • 统计汇总
    • 质量评估
    • 数据特征
  5. 关键发现

    • 值得注意的模式
    • 潜在问题
    • 质量指标
  6. 建议

    • 预处理步骤
    • 适当的分析
    • 工具和方法
    • 可视化方法
模板位置

使用 assets/report_template.md 作为报告结构指南。

步骤 5:保存报告

使用描述性文件名保存 Markdown 报告:

  • 格式:{original_filename}_eda_report.md
  • 示例:experiment_data.fastq → experiment_data_eda_report.md

详细格式参考

每个参考文件都包含数十种文件类型的全面信息。要查找特定格式的信息:

  1. 根据扩展名确定类别
  2. 阅读相应的参考文件
  3. 搜索与扩展名匹配的章节标题(例如,“### .pdb”)
  4. 提取格式信息
参考文件结构

每个格式条目都包含:

  • 说明: 该格式是什么
  • 典型数据: 它包含什么
  • 使用场景: 常见应用
  • Python 库: 如何读取(附代码示例)
  • EDA 方法: 要执行的具体分析

查找示例:

### .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 个单词)。为提高使用效率:

  1. 按扩展名搜索: 使用 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)
    
  2. 提取相关章节: 不要在上下文中不必要地加载整个参考文件

  3. 缓存格式信息: 如果要分析多个同类型文件,请重复使用格式信息

数据分析
  1. 对大型文件采样: 对于包含数百万条记录的文件,分析具有代表性的样本
  2. 妥善处理错误: 许多科学格式需要特定的库;请提供清晰的安装说明
  3. 验证元数据: 交叉检查元数据是否一致(例如,声明的维度与实际数据是否相符)
  4. 考虑数据来源: 记录仪器、软件版本和处理步骤
报告生成
  1. 全面: 纳入所有与后续分析相关的信息
  2. 具体: 根据文件类型提供具体建议
  3. 可操作: 建议具体的后续步骤和工具
  4. 包含代码示例: 展示如何加载和处理数据

示例

示例 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
未知文件类型

如果文件扩展名不在参考资料中:

  1. 询问用户文件格式
  2. 检查它是否为供应商特定的变体
  3. 根据文件结构(文本或二进制)尝试通用分析
  4. 提供一般性建议
大文件

对于非常大的文件:

  1. 使用抽样策略(读取前 N 条记录)
  2. 使用内存映射访问(适用于 HDF5、NPY)
  3. 分块处理(适用于 CSV、FASTQ)
  4. 根据样本提供估算

脚本用法

可以直接使用 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

该脚本支持对许多常见格式进行自动分析,但在对话中进行自定义分析能提供更大的灵活性和更贴合领域的见解。

高级用法

多文件分析

分析多个相关文件时:

  1. 分别对每个文件执行 EDA
  2. 创建摘要对比报告
  3. 确定关联关系和依赖项
  4. 建议集成策略
质量控制

评估数据质量时:

  1. 检查格式是否合规
  2. 验证元数据的一致性
  3. 评估完整性
  4. 识别离群值和异常
  5. 与预期范围或分布进行比较
预处理建议

根据数据特征,建议:

  1. 归一化策略
  2. 缺失值填补
  3. 离群值处理
  4. 批次校正
  5. 格式转换

资源

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 模板

评论

支持 Markdown