第4章:基本运行命令:命令行选项、数据库选择、输出格式指定
InterProScan 跑起来其实不复杂。说白了,就是一条命令搞定的事。但恰恰是这条命令,藏着不少讲究。选什么数据库、用什么输出格式、CPU 给多少,每一项都会直接影响你的分析结果和效率。我做了这么多年质控,见过太多因为命令行写错一个参数就重跑三天的情况。嗯,这一章咱们就把这些细节掰开揉碎讲清楚。
4.1 命令行骨架长什么样
先看一个最基础的命令,你感受一下:
interproscan.sh -i proteins.fasta -o my_output -f TSV -dp
这行命令的意思是:输入一个蛋白质 FASTA 文件,输出 TSV 格式的结果,禁用预计算匹配(-dp)。咱们先记住这个骨架,后面所有变化都从这个基础命令衍生出来。
我个人习惯在跑任何批量分析之前,先用一条小数据测试命令行是否写对了。你想想看,要是等跑完 10 万个序列才发现参数错了,那多耽误事。
4.2 核心命令行选项详解
InterProScan 的选项不算多,但每个都很关键。我按使用频率从高到低列了一张表:
| 选项 | 作用 | 我常用的写法 |
|---|---|---|
-i |
指定输入 FASTA 文件 | -i ./data/query.fasta |
-o |
指定输出文件前缀 | -o ./results/run1 |
-f |
输出格式(TSV/XML/GFF3) | -f TSV,XML |
-dp |
禁用预计算匹配(推荐开启) | -dp |
-cpu |
使用的 CPU 核心数 | -cpu 8 |
-d |
指定要使用的数据库 | -d Pfam,Panther |
-T |
临时文件目录 | -T /tmp/ips |
-appl |
同 -d,指定应用 |
-appl Pfam |
-dp 这个选项我建议每次都加上。不开启的话,InterProScan 会优先去查预计算的匹配结果,虽然速度快,但可能会漏掉一些新的或特异的匹配。我在项目中遇到过因为没加 -dp 导致质控结果偏乐观的情况,后来全部重跑了。
4.3 数据库选择:不是越多越好
InterProScan 背后整合了十几个数据库。但你不需要每次都全部跑一遍。为什么?因为有些数据库覆盖的内容高度重叠,全跑不仅慢,还会让结果变得冗余。
常用的数据库有这么几个:
| 数据库 | 特点 | 我推荐的场景 |
|---|---|---|
| Pfam | 蛋白质家族和结构域,覆盖广 | 通用分析,必选 |
| Panther | 进化关系和功能分类 | 系统发育相关项目 |
| PROSITE | 功能位点和模式 | 功能基序分析 |
| SMART | 结构域注释,特异高 | 结构域精细分析 |
| TIGRFAMs | 直系同源家族,功能明确 | 细菌/古菌功能注释 |
| CDD | 保守结构域数据库 | 补充验证 |
指定数据库的命令也很直接:
interproscan.sh -i proteins.fasta -o my_output -f TSV -dp -cpu 8 \
-d Pfam,Panther,PROSITE
我曾经因为数据库选太多把服务器跑挂了。那是做一个宏基因组项目,我一股脑把所有数据库都选上,结果跑了整整四天还没跑完,最后 OOM 了。嗯,那次之后我就学乖了,按需选择才是正道。
4.4 输出格式:三个选择,三种用法
InterProScan 支持三种输出格式:TSV、XML 和 GFF3。它们不是互斥的,你可以同时输出多种。我一般都会同时输出 TSV 和 XML,前者用来看,后者用来做程序化处理。
三种格式的核心差异:
| 格式 | 结构 | 人类可读性 | 程序解析 | 文件大小 | 典型用途 |
|---|---|---|---|---|---|
| TSV | 表格,一行一个匹配 | ★★★★★ | ★★★ | 小 | 快速浏览、Excel 查看 |
| XML | 树形,层级嵌套 | ★★ | ★★★★★ | 大 | 下游程序处理、数据库导入 |
| GFF3 | 9 列特征表 | ★★★ | ★★★★ | 中 | 基因组浏览器展示、比较基因组学 |
命令上,同时输出多种格式很简单:
interproscan.sh -i proteins.fasta -o my_output \
-f TSV,XML,GFF3 -dp -cpu 8 -d Pfam,Panther
这条命令会生成三个文件:my_output.tsv、my_output.xml 和 my_output.gff3。
grep、awk 或 Python 做统计非常方便。XML 虽然信息更全,但解析起来总得多写几行代码。
4.5 实战命令示例
给你几个我在真实项目中用过的命令模板,直接套用就行。
示例 1:快速质控扫描
interproscan.sh -i sample.fasta -o qc_result -f TSV -dp -cpu 4 \
-d Pfam
示例 2:全面注释 + 多格式输出
interproscan.sh -i genome_proteins.fasta -o full_annot \
-f TSV,XML,GFF3 -dp -cpu 16 \
-d Pfam,Panther,PROSITE,SMART,TIGRFAMs
示例 3:指定临时目录,避免磁盘写满
interproscan.sh -i big_set.fasta -o big_results -f TSV -dp \
-cpu 8 -d Pfam -T /data/temp_ips
-T 指定一个有足够空间的目录。
4.6 命令执行流程全景图
为了让你对整个流程有个整体印象,我画了一张流程图。它把输入、命令行解析、数据库选择、分析执行、输出格式转换这几个关键环节串了起来。你对照着看,心里会更清楚。
这张图把一条命令背后的执行链条完整展示出来了。你写命令的时候,脑子里可以过一遍这个流程——输入是什么、选哪些数据库、最后要什么格式。每一步都清楚,就不容易出错。
4.7 小提醒:输出文件命名有个细节
当你指定 -o my_output,InterProScan 会自动在文件名后面加上格式后缀。也就是说,你拿到的文件是 my_output.tsv、my_output.xml、my_output.gff3,而不是你手动拼接的。这个设计挺好,省去了自己加后缀的麻烦。
但要注意:如果你重复运行同一个 -o 名称,InterProScan 不会自动覆盖已有文件,而是直接报错退出。我刚开始用的时候就踩过这个坑,明明命令没写错,就是跑不起来。嗯,解决办法很简单:每次换一个输出名,或者先清理旧文件。
# 如果 my_output.tsv 已存在,下一次运行会报错
interproscan.sh -i proteins.fasta -o my_output -f TSV -dp
# 解决办法:换一个输出名,或者先清理
rm -f my_output.tsv
interproscan.sh -i proteins.fasta -o my_output -f TSV -dp
-o 里加上日期和样本编号,比如 qc_sampleA_20250501。这样既不会重名,后续翻查结果时也一目了然。
以上就是第4章的全部内容。命令行选项、数据库选择、输出格式指定,这三个东西组合起来就构成了 InterProScan 的日常用法。你不需要记住所有参数,但把这几个核心用法印在脑子里,大部分场景都能应付。