目录
1 featurecounts下载
conda install -c bioconda subread
#确认featureCounts安装完成
featureCoutns --version
2.命令
featureCounts -a example_annotation.gtf -o example_output.txt example_input.bam
-
-a
或--annotation
: 指定注释文件的名称,该文件通常采用GTF(通用转录本格式)或GFF(基因组特征格式)。这个文件包含了要计数的特征(如外显子、基因)的信息。 -
-o
或--output
: 指定输出文件的名称,包括读取计数的结果。输出文件通常包含两个部分:读取计数和汇总统计信息。 -
input_file1 [input_file2] ...
: 列出SAM或BAM格式的文件,这些文件可以是未排序的或者按照名称排序的。如果没有提供文件,FeatureCounts会期待从标准输入(stdin)读取数据。 -
-F
或--format
: 指定提供的注释文件的格式,可接受的格式包括'GTF'(或兼容的GFF格式)和'SAF'。默认为'GTF'。 -
-t
或--featureType
: 在GTF注释中指定特征类型,如'exon'。默认为'exon'。 -
-g
或--attribute
: 指定GTF注释中的属性类型,如'gene_id'。默认为'gene_id'。 -
-A
或--alias
: 提供一个染色体名称别名文件,用于匹配注释中的染色体名称和读取中的染色体名称。 -
-f
: 在特征级别执行读取计数(例如,计算外显子而不是基因的读取数)。 -
-O
: 将读取分配给它所重叠的所有元特征(或特征,如果指定了-f
)。 -
--minOverlap
和--fracOverlap
: 设置读取分配给特征的最小重叠碱基数和最小重叠比例。 -
--largestOverlap
: 将读取分配给具有最大重叠碱基数的元特征/特征。 -
-M
: 计算多重映射读取的计数。对于多重映射读取,其所有报告的比对将被计数。 -
--primary
: 此选项指示FeatureCounts仅计算主要比对的读取。主要比对是根据SAM/BAM FLAG字段中的位0x100来识别的。这有助于排除可能由于测序错误或比对算法不确定性而产生的次要比对,从而提高计数的准确性。 -
-Q
或--minMappingQuality
: 指定读取必须满足的最小比对质量分数才能被计数。 -
-s
或--stranded
: 执行特定于链的读取计数。可能的值为0(未链特异性),1(链特异性),和2(反向链特异性)。 -
-J
: 计算每个外显子-外显子连接处支持的读取数。 -
-p
: 假设库包含配对端读取。对于任何包含配对端读取的库,countReadPairs
参数控制是计数片段还是读取。 -
-T
或--threads
: 指定线程数。默认为1。 -
-v
或--version
: 输出程序的版本。
3.代码示例
featureCounts -g gene_id -a tair10.gtf -o ./featurecounts/counts_matrix3.csv ./SRR3418019/SRR3418019_sorted.bam ./SRR3418020/SRR3418020_sorted.bam
这个FeatureCounts命令用于计算一组BAM文件中的基因表达计数,并将结果汇总到一个TSV(Tab-Separated Values)文件中。下面是命令中每个参数的具体含义:
-
-g gene_id
: 指定在GTF注释文件中用于对读取计数进行分组的属性。在这个例子中,gene_id
是用于分组的属性,FeatureCounts将根据每个读取覆盖的基因ID来计算和汇总读取计数。 -
-a tair10.gtf
: 指定注释文件的路径和名称,这里是tair10.gtf
。这个文件包含了基因组特征的详细信息,如基因、外显子等,FeatureCounts将使用这些信息来确定读取应该被分配到哪些特征上。 -
-o ./featurecounts/counts_matrix3.csv
: 指定输出文件的路径和名称。输出文件将被保存在./featurecounts/
目录下,命名为counts_matrix3.csv
。 -
-T 8
: 指定FeatureCounts使用的线程数。这里设置为8,意味着FeatureCounts将并行运行,使用8个CPU线程来加速处理过程。 -
--primary
: 此选项指示FeatureCounts仅计算主要比对的读取。主要比对是根据SAM/BAM FLAG字段中的位0x100来识别的。这有助于排除可能由于测序错误或比对算法不确定性而产生的次要比对,从而提高计数的准确性。 -
./SRR3418005.sorted.bam ./SRR3418006-filtered-STAR.sorted.bam ./SRR3418019/SRR3418019_sorted.bam ./SRR3418020/SRR3418020_sorted.bam
: 这些是输入的BAM文件的路径和名称。FeatureCounts将读取这些文件中的比对数据,并根据注释文件中的信息计算每个基因的读取计数。
总结来说,这个命令将对指定的BAM文件集合进行读取计数,每条读取都会根据其覆盖的基因ID进行分组,并将结果输出到一个CSV文件中。使用多线程可以加快处理速度,而--primary
选项确保了只有最可靠的比对被用于计数,提高了结果的准确性。这个CSV文件可以用于后续的生物信息学分析,例如基因表达量的比较、差异表达分析等。
4.生成文件
结束后生成一个counts_matrix3.csv的文件.
在Rstudio中打开文件,输入以下代码
#将文件放入G:/R/TEST1文件夹中
#R上设定该文件夹为工作目录
setwd("G:\\R\\TEST1")
#R中导入文件
count3 <- read.table("counts_matrix3.csv" , header = TRUE, row.names = 1)
-
"counts_matrix3.csv"
: 这是要读取的CSV文件的文件名。read.table
函数将尝试在当前工作目录中找到名为 "counts_matrix3.csv" 的文件。如果您的文件位于不同的目录,您需要提供完整的文件路径。 -
header = TRUE
: 这个参数告诉read.table
函数文件的第一行包含列名。因此,函数将把第一行的每个条目作为数据框的列名。 -
row.names = 1
: 这个参数指定数据框的行名应该从文件中的第一列(即第2行,因为第一行是列名)读取。这意味着CSV文件的第一列将被用作行名,而不是数据的一部分。
得到如下图,可以得到geneid 染色体、起始位点等信息。
现在要删掉无用信息(前5列)
#删除1-5列
count3 <- count3[,-c(1:5)]
#将行名改成grpdata中sample列列名
colnames(count3) <- grpdata$sample
#按行名从小到大顺序排列
count3_sorted <- count3[order(rownames(count3)), ]
左图为HTseq计算的结果,右图为featureCounts计算结果,两种计算结果是一样的,但featureCounts可以运算多个bam文件,速度更快,且可以形成表达矩阵。