基因表达量counts/FPKM/TPM
是什么?
01
先装工具,featureCounts 是关键!
要算表达量,得用到 Subread 工具集里的 featureCounts。这个工具专业、高效,好用得不得了。
conda install -c bioconda subread
02
先装工具,featureCounts 是关键!
有了工具,咱们直接上代码。这个脚本帮你处理多个路径里的 BAM 文件,
一次性把表达量都算出来。
# 定义要循环的路径列表
paths=(
"排序后bam文件的绝对路径"
)
#定义输出路径,如/home/counts_file
output_path="定义counts文件的输出路径"
mkdir -p "$output_path"
# 循环遍历路径列表
for path in "${paths[@]}"; do
# 在每个路径下执行您的命令
folder_name=$(basename "$path")
cd "$path" # 切换到当前路径
#指定基因组注释文件路径和文件名,如/home/Genome.gff
annotation_file="基因组注释文件的绝对路径及文件名"
# 循环遍历 BAM 文件
for bam_file in "$path"/*.bam; do
# 提取文件名作为样本名
sample_name=$(basename "$bam_file" .bam)
# 使用 featureCounts 计算表达量。-T:指定线程数;-a:指定注释文件;-o指定输出路径(不填则为工作路径)/文件名;-p:指定双端测序;-t:指定输出的表达量是mRNA,gene或者exon等;-g:基因标识符属性(如'ID=Ts_Contig1_G00001.t1.exon1;Parent=Ts_Contig1_G00001.t1'则为ID)
featureCounts -T 50 -a "$annotation_file" -o "$output_path"/"${sample_name}.counts.txt" -p -t gene -g ID "$bam_file"
done
done
简单说,这个脚本干了啥:
自动找到所有路径里的 BAM 文件。
用 featureCounts 计算每个样本的基因表达量。
输出
counts.txt
文件,直接能用
03
整理 counts 文件,方便管理
看着分散的 counts 文件,咱们再来一步,把它们都汇总到一个地方。
#如有多个路径,可以第一行之后同时定义,会依次执行
paths=(
"定义counts文件的原路径,上一步中保存在排序过的bam文件中"
)
#定义自己的counts文件要移动到的目标路径,如/home/Cal_Expression
target_path="定义目标路径"
mkdir -p "$target_path"
for path in "${paths[@]}"; do
cd "$path"
for counts_file in "$path"/*.txt; do
cp "$counts_file" "$target_path"
done
done
就这样,所有 counts 文件都整齐地放在 /Cal_Expression 文件夹了,后续分析方便多了。
04
用 WinSCP 下载到本地
最后一步,打开 WinSCP,连接服务器,导航到 /Cal_Expression
,一键下载到电脑就好了。
这些 counts 文件可以直接用来做后续分析,比如差异表达分析(DESeq2、edgeR 等)。
DESeq2可以查看差异基因分析神器来了:几秒搞定两个样本的转录本表达差异!
点击上方 蓝字关注我们