Snakemake校验CSV样本表报错Unsupported data type解决方法咨询
报错原因
Snakemake的JSON Schema校验仅支持结构化的Python字典/列表类型输入,你直接传入未解析的CSV文件路径、原始CSV文本都会触发该类型不支持错误,你现有的Schema定义本身没有问题。
解决方法
你只需要在Snakefile中先将CSV解析为结构化数据再调用校验逻辑即可,参考代码如下:
import pandas as pd from snakemake.utils import validate # 读取CSV样本表,替换为你自己的样本表路径 sample_df = pd.read_csv("samples.csv") # 将表格转为「单样本对应一个字典」的列表,匹配你Schema的单样本结构定义 sample_list = sample_df.to_dict("records") # 执行校验,替换为你自己的schema文件路径 validate(sample_list, schema="sample_schema.yaml")
可选校验规则补充
如果需要额外校验Fastq路径真实存在,可以在你的Schema对应字段下添加format: file-path规则,示例:
Fastq1: type: string format: file-path description: path to fastq file (first mate)
异常排查
如果修改后仍然报错,可以按以下顺序检查:
- 确认CSV文件无多余空行、特殊字符,表头字段和Schema中定义的字段完全一致,大小写匹配
- 确认运行环境已安装pandas依赖,Snakemake解析CSV依赖pandas库
- 升级Snakemake到7.0及以上稳定版本,避免旧版本兼容性问题
内容的提问来源于stack exchange,提问作者fgypas
相关产品推荐
相关产品推荐

