宏基因组TPM定量

article/2025/11/7 1:00:17

        在RNA-Seq分析中,为了获取基因表达量差异,于是产生了RPKM、FPKM、TPM定量方法,去除测序深度和基因长度的影响。RPKM用于单端测序;FPKM用于双端测序。而TPM计算方法类似于RPKM,但更具有优势,是目前使用的较多的定量方法。详细的解释及计算公式:

https://www.jianshu.com/p/1940c5954c81

(建议学习一下,至少了解清楚TPM计算过程,否则得到比对结果后自己不知道怎么算TPM)

简单来说,TPM定量分为三步:

1. 基因长度标准化。测序reeads数除以基因长度length,得到RPK

2. 进行百万转换。因为计算的单位为M

3. 测序深度标准化。reads数除以总reads数即总RPK

宏基因组的定量用TPM是个不错的选择。

进行宏基因组的TPM定量,需要文件预测的CDS序列文件对应的fastq(cleandata)

软件安装:BWA和Samtools

#傻瓜式安装conda
#samtools
conda install -c bioconda samtools#bwa 
conda install -c bioconda bwa
#如果你会自己编译环境可以不用conda安装,反正能装上并且能使用就行

以bwa构建CDS序列索引进行比对

#构建索引
bwa index Unigene.fasta#例如我有5个样本A,B,C,D,E
for i in {A,B,C,D,E} \
do bwa mem -k 19 – t 24 Unigene.fasta \        
${i}_clean_R1.fastq ${i}_clean_R2.fastq > ./${i}.sam \ #压缩的fastq文件也可以,即后缀为gz
done

samtools提取比对到clean上的reads数

#Samtools转换sam文件为bam文件 1.3版本前 单个样本举例,多样本for循环
samtools view -bS sample.sam > sample.bam
samtools sort sample.bam > sample_sort.bam
samtools index sample_sort.bam#1.3版本后(sort将sam转化为bam与排序同时进行)
samtools sort sample.sam > sample_sort.bam
samtools index sample_sort.bam#获取每个ORF比对的read数
for i in {A,B,C,D,E} \
do samtools idxstats ${i}_sort.bam > ${i}_mapped.txt \
done
#注意,这一步之前需要经过sort和index

获得的txt结果有四列,从左至右分别是:基因名、基因长度、mapped_read、unmapped_read

 因为输出的文件不含表头,我们手动添加一个

for i in {A,B,C,D,E} \
do \
sed -i "1 i GeneID\t\length\tmapped_read\tunmapped_read " ${i}_mapped.txt \
done

 因为TPM计算是不需要unmapped_read的,所以只保留前面三列

for i in {A,B,C,D,E} \
do \
cut -f 1-3 ${i}_read.txt > ${i}_read_cut.txt \
done

这时候的文件就是我们需要的了,只需根据公式来计算即可以获得TPM ,这里我贴上用R语言和python计算的代码,比较简单。

R的脚本:

#读取文件
df <- read.delim("BJS_read.txt",header = T,row.names = 1)
#截取需要的部分
df_cut <- df[,1:2]
#计算RPK
df_cut$RPK <- df_cut$mapped_read*1000/df_cut$length
n <- nrow(df_cut)
result <- df_cut[-n,]#文件最后一行存在一个*行,含有NULL,需要去除掉才能计算,否则结果都为NULL
TotalRPK <- sum(result$RPK)
result$TPM <- (result$RPK*10e6)/TotalRPK
write.csv(result,file = "BJS_TPM.csv")

 python:

import pandas as pd
count = pd.read_table("BJS_read_test.txt",index_col=0)
count_part = count.iloc[:,[0,1]]
#n = count_part.shape[0]#获取数据框行列数
count_cut=count_part.drop(index="*")
#创建一个新的数据框
new_data = pd.DataFrame(columns=("RPK","TPM"))
df = pd.concat([count_part,new_data],axis=1)
df["RPK"] = df.apply(lambda x: (x["mapped_read"]*1000)/x["length"] ,axis=1)
TotalRPK = sum(df["RPK"])
df["TPM"]  = df.apply(lambda x: (x["mapped_read"]*10e6)/TotalRPK,axis=1)
result = df.iloc[:,[0,3]]
result.to_csv("BJStmp.csv",index=True,sep="\t")

两个的结果都一样,需要注意的是由sam文件到最后的txt文件的最后一行会含有一个*的行,代表的是未匹配到任何CDS的reads,需要在计算中将其去除。

最终会得到每个样本的TPM文件,可以使用python或者R中的merge函数将所有的样本TPM拼接到一起,得到一个最终的表格


http://chatgpt.dhexx.cn/article/UHBKVuQB.shtml

相关文章

你想要的宏基因组-微生物组知识全在这(2023.01)

欢迎点击上方蓝色”宏基因组”关注我们&#xff01; 宏基因组/微生物组是当今世界科研最热门的研究领域之一&#xff0c;为加强宏基因组学技术和成果交流传播&#xff0c;推动全球华人微生物组领域发展&#xff0c;中科院青年科研人员创立“宏基因组”公众号&#xff0c;联合海…

你想要的宏基因组-微生物组知识全在这(2022.10)

欢迎点击上方蓝色”宏基因组”关注我们&#xff01; 宏基因组/微生物组是当今世界科研最热门的研究领域之一&#xff0c;为加强宏基因组学技术和成果交流传播&#xff0c;推动全球华人微生物组领域发展&#xff0c;中科院青年科研人员创立“宏基因组”公众号&#xff0c;联合海…

你想要的宏基因组-微生物组知识全在这(2022.12)

欢迎点击上方蓝色”宏基因组”关注我们&#xff01; 宏基因组/微生物组是当今世界科研最热门的研究领域之一&#xff0c;为加强宏基因组学技术和成果交流传播&#xff0c;推动全球华人微生物组领域发展&#xff0c;中科院青年科研人员创立“宏基因组”公众号&#xff0c;联合海…

Nature子刊:宏基因组中挖掘原核基因组的分析流程

宏基因组中挖掘原核基因组的分析流程 从宿主相关的短读长鸟枪宏基因组测序数据中恢复原核基因组 Recovering prokaryotic genomes from host-associated, short-read shotgun metagenomic sequencing data Nature Protocols [IF:10.419] 2021-04-16 Articles DOI: https://doi…

宏基因组测序实验分析方法

宏基因组测序实验分析方法-功能分析基于reads 1 使用ctab法或相应试剂盒提取样本中的总 DNA&#xff1b; 2 DNA样品检测合格后&#xff0c;使用Covaris超声波破碎仪随机打断&#xff0c;再经末端修复、加A尾、加测序接头、纯化、PCR扩增等步骤完成整个文库制备工作&#xff1…

宏基因组测序流程(不完全版)

文章目录 所做工作收获宏基因组分析流程Step1.去除宿主污染Step2.去除接头序列Step3.对序列进行进一步质控Step4.对read进行进一步拼接(contig)Step5.对contig进行orf预测Step6.查找orf区翻译出来的氨基酸序列对应的蛋白质家族 所做工作 Step1.去除宿主污染 Step2.去除接头序…

一文读懂宏基因组分析套路

很多亲人感觉宏基因组的分析结果内容种类太多&#xff0c;根本学不过来。其实本质上并不复杂&#xff0c;只分为两类&#xff1a;物种组成和功能组成两大类&#xff0c;这是核心结果&#xff1b;再加上开头系统描述和结尾的讨论比较。通常会出现固定套路的4部分结构。 今天就从…

宏基因组测序

微基生物提供宏基因组测序分析服务。 宏基因组是指特定环境中全部微生物遗传物质的总和。宏基因组测序以特定环境中的整个微生物群落作为研究的对象&#xff0c;不需对微生物进行分离培养&#xff0c;而是提取环境微生物总DNA进行研究。其摆脱了传统研究中微生物分离培养的技术…

微生物菌群宏基因组研究技术分享

近年的研究热点集中于环境和生物体相互作用的微生物群体&#xff0c;而大量复杂的微生物群体存在培养困难&#xff0c;构成复杂&#xff08;包括细菌、古菌、真菌、原生生物、病毒甚至小型真核生物&#xff09;。因此如何用高通量精准的了解这些群体的构成&#xff0c;基因功能…

宏基因组分析-基于binning

一、介绍 宏基因组 ( Metagenome) 指特定环境下所有生物遗传物质的总和。它包含了可培养的和未可培养的微生物的基因。一般从环境样品中提取基因组DNA, 进行高通量测序&#xff0c;从而分析微生物多样性、种群结构、功能信息、与环境之间的关系等。 宏基因组的分析目前主要包…

宏基因组生信分析方法介绍

随着高通量技术的发展&#xff0c;宏基因组学&#xff08;metagenomics&#xff09;已经成为研究微生物群落物种及功能的前沿科学&#xff0c;在肠道微生物、环境微生物等研究领域具有广泛应用。宏基因组学通过对微生物群落全部DNA进行高通量测序&#xff0c;将测序序列与公共数…

宏基因组分析-基于组装

一、介绍 宏基因组 ( Metagenome) 指特定环境下所有生物遗传物质的总和。它包含了可培养的和未可培养的微生物的基因。一般从环境样品中提取基因组DNA, 进行高通量测序&#xff0c;从而分析微生物多样性、种群结构、功能信息、与环境之间的关系等。 宏基因组的分析目前主要包…

逻辑回归的常见问题

文章目录 逻辑回归概括逻辑回归的基本假设逻辑回归的损失函数交叉熵损失函数的原理交叉熵损失函数的直观理解logistic回归和线性回归的关系线性回归和逻辑回归的异同逻辑回归是线性模型吗类别的分界线是什么逻辑回归输出值是概率吗逻辑回归也可以处理多分类逻辑回归的求解方法梯…

SQL逻辑运算

SQL逻辑运算符 SQL 逻辑运算符逻辑运算符 ALL逻辑运算符 AND逻辑运算符 ANY逻辑运算符 BETWEEN逻辑运算符 EXISTS逻辑运算符 IN逻辑运算符 LIKE逻辑运算符 NOT逻辑运算符 OR逻辑运算符 IS NULL SQL 逻辑运算符 运算符描述ALL所有运算符用于比较的值到另一个值组中的所有值ANDA…

逻辑英语-写作

指日可待 In this way, a better tomorrow will not be a question of if, but when.1、shoulder 我们应当承担起保护环境的重任。 We must shoulder the liability of -----2. Word 我对你的感谢已经溢于言表 My thanks to you is beyond words.3. house 容纳 A wise man she…

逻辑英语公式R1+R2

一、主谓宾 1.1、主语 一般是名词&#xff0c;一般是动作的发出者&#xff0c;或者是被描述的对象 1.2、宾语 一般也是名词&#xff0c;一般是主语作用到的对象。 1.3、谓语 如果没有谓语那么这个世界就是静态&#xff0c;谓语就是来让这个主语和谓语产生关系。 常见的是…

串口USART和UART

串口通信&#xff1a; UART是通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输和接受。UART主要用于主机与辅助设备通信。 UART的功能计算器内部采用并行数据&#xff0c;不能直接把数据发到Modem&#xff0c;必须经过UART整理才能进…

【通信接口】UART、IIC、SPI

目录 一、预备知识 1、串行与并行 2、单工与双工 3、波特率 二、UART 三、IIC 四、SPI &#xff08;一对一、一对多&#xff09; 五、IIC、SPI异同点 参考文章&#xff1a;这些单片机接口&#xff0c;一定要熟悉&#xff1a;UART、I2C、SPI、TTL、RS232、RS422、RS485…

基于FPGA的UART接口设计

一、顶层设计思路&#xff1a; UART即通用异步收发传输接口&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;简称串口&#xff0c;是一种常用的通信接口&#xff0c;其协议原理就不赘述了&#xff0c;不了解的可以自己查阅资料。&#xff08;…

单片机通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB

参考资料&#xff1a; 这些单片机接口&#xff0c;一定要熟悉&#xff1a;UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡 秒懂所有USB接口类型&#xff0c;USB接口大全 1. UART UART(通用异步收发器)指的是一种物理接口形式(硬件)。 UART是异步&#xff0c;全双…