featureCounts
FeatureCounts 是 Subread 软件包中的一个模块,专门用于从比对文件(如 BAM 或 SAM)中快速计数基因或外显子的读段数量。它以其速度快、内存消耗低、功能全面而受到广泛使用。FeatureCounts 适用于各种测序数据(如 RNA-Seq、ChIP-Seq 等),支持基因水平和转录本水平的计数,可以对多种特征(如外显子、基因、CDS)进行高效的计数分析。
安装 featureCounts
使用 Bioconda 安装
基本使用
featureCounts 的基本使用如下
# 输入
annotation=~/test/data/ref/genome.gtf # 指定基因注释文件(GTF 或 GFF 格式)
bam=~/test/1_mapping/hisat2/sample.bam # bam 或 sam比对文件。 支持同时输入多个比对文件
featureCounts \
-T 2 -t exon \
-g gene_id -p \
-a ${annotation} \
-o gene_counts.txt ${bam}
-T <int>
:指定使用的线程数(默认为1
)
参数解析
1. 必需参数
-a <string>
:指定注释文件(如 GTF/GFF 格式)。支持.gz
压缩格式。也可使用annotation
目录中的内置 SAF 格式注释文件。-o <string>
:指定输出文件名称。将保存读段计数结果及总结统计信息(文件名为<string>.summary
)。input_file1 [input_file2] ...
:输入比对文件列表(SAM 或 BAM 格式)。可接受按名称或位置排序的文件。如果未提供,则从标准输入读取数据。
2. 注释文件相关参数
-F <string>
:指定注释文件格式(GTF
或SAF
),默认GTF
。-t <string>
:指定 GTF 文件中的特征类型(默认为exon
),支持多类型,以,
分隔。-g <string>
:指定 GTF 文件中的基因属性字段(默认为gene_id
)。--extraAttributes
:从 GTF 文件中提取额外的属性类型,并将其包含在计数结果中。多个属性类型用,
分隔。-A <string>
:指定染色体名称别名文件(两列:注释文件中的染色体名,读段文件中的染色体名)。
3. 计数级别和总结参数
-f
:在特征级别进行计数(例如,计算外显子的读段,而不是基因)。-O
:将读段分配给所有重叠的特征。--minOverlap <int>
:指定读段与特征的最小重叠碱基数(默认为 1)。--fracOverlap <float>
:指定读段与特征的最小重叠比例(范围[0,1]
,默认为 0)。--fracOverlapFeature <float>
:指定特征中与读段的最小重叠比例(范围[0,1]
,默认为 0)。--largestOverlap
:将读段分配给重叠最大区域的特征。--nonOverlap <int>
:读段中允许的最大非重叠碱基数(默认为不限制)。--nonOverlapFeature <int>
:特征中允许的最大非重叠碱基数(默认为不限制)。
4. 多重比对相关参数
-M
:计数多重比对的读段。所有比对位置将被计数(依赖NH
标签)。--fraction
:对特征分配分数计数。需与-M
或-O
参数一起使用。
5. 读段过滤参数
-Q <int>
:指定最低比对质量分数(默认为0
),低于该质量的读段将被忽略。--splitOnly
:仅计算分割比对(N
操作符出现在 CIGAR 中)。--nonSplitOnly
:仅计算非分割比对(CIGAR 中不包含N
)。--primary
:仅计算主比对的读段(使用0x100
标志位)。--ignoreDup
:忽略重复读段(根据0x400
标志位识别)。
6. 链特异性相关参数
-s <int or string>
:执行链特异性计数。
0
:不考虑链特异性。1
:考虑正向链特异性。2
:考虑反向链特异性。
7. 双端测序相关参数
-p
:指定为双端测序数据。--countReadPairs
:计算片段数(而非读段数),仅适用于双端测序数据。-B
:仅计数两端均成功比对的读段对。-P
:检查双端读段对的比对距离是否符合要求(使用-d
和-D
设置阈值)。-d <int>
:设置最小片段长度(默认为50
)。-D <int>
:设置最大片段长度(默认为600
)。-C
:不计数两端比对到不同染色体或同染色体但不同链的读段对。--donotsort
:不对输入 BAM/SAM 文件进行排序,要求同一读段对的两端必须在文件中相邻。
8. 长读段相关参数
-L
:计算长读段(如 Nanopore 和 PacBio 数据)。仅适用于单线程模式,且只能计算读段(不计算读段对)。
9. 输出详细分配结果
-R <format>
:输出每个读段的详细分配结果(格式:CORE
、SAM
或BAM
)。--Rpath <string>
:指定保存详细分配结果的目录。若未指定,则使用计数结果保存的目录。
10. 杂项参数
--tmpDir <string>
:指定保存中间文件的目录(默认与-o
参数指定的目录一致)。--maxMOp <int>
:CIGAR 字符串中允许的最大M
操作符数量(默认为10
)。--verbose
:输出详细的调试信息(如未匹配的染色体/contig 名称)。-v
:输出程序版本信息。