热门免费资源:
一、国自然类:
5 标书写作模板
2 2018-24年国自然清单
4 基金插图素材(可编辑)
5 泛癌分析万能代码
7 130套SCI实验视频
9 单细胞数据挖掘课
11 统计分析万能模板
2 100个SCI实验Protocol
10 SCI写作万能模板
9 资源共享群
10 相亲交友微信群
前面我们给大家分享了基因组文件和基因组注释文件的下载(点击查看)。给大家分享了怎么用基因组文件构建索引,和用注释文件构建基因长度文件,和bam文件定量得到raw count和TPM文件(点击查看)。
但是最终的基因表达文件中有Raw count和TPM数据,但是没有基因的名字,只有ENSG。
今天,我们又给大家分享万能代码。一键从bam文件得到基因表达文件,含基因名,TPM表达量:
这样你就可以用这个表达矩阵做很多事情了,用Raw count进行DEseq2的差异分析,也可以用TPM的表达矩阵进行单基因GSEA分析预测基因的靶基因及功能。
万能代码如下:
#!/bin/bash
# 加载必要的模块
module load subread
module load multiqc
# 定义目录和文件路径,公众号:科研部,都是万能代码,请关注
WORK_DIR="改为你的工作目录"
GTF_FILE="改为你的路径/gencode.v38.annotation.gtf"
BAM_DIR="改为你的路径"
OUTPUT_FILE="all.id.txt"
GENE_LENGTH_FILE="改为你的路径/gene_lengths.txt"
RAW_COUNTS_FILE="raw_counts.txt"
TPM_COUNTS_FILE="tpm_counts.txt"
COMBINED_OUTPUT_FILE="rawcount_TPM.txt"
# 切换到工作目录
cd $WORK_DIR
# 使用 featureCounts 生成原始计数数据
featureCounts -T 40 -t exon -g gene_id -a $GTF_FILE -o $OUTPUT_FILE $BAM_DIR/*.bam
# 使用 multiqc 对定量结果进行质控
multiqc $OUTPUT_FILE.summary
# 提取原始计数数据,跳过前两行注释
tail -n +3 $OUTPUT_FILE | cut -f1,7- > $RAW_COUNTS_FILE
# 从GTF文件中提取gene_id和symbol信息
awk -F'\t' '$3 == "gene"' $GTF_FILE | awk -F';' '{
gid = ""; gname = "";
for (i = 1; i <= NF; i++) {
if ($i ~ /gene_id/) {
split($i, arr, "\"");
gid = arr[2];
}
if ($i ~ /gene_name/) {
split($i, arr, "\"");
gname = arr[2];
}
}
if (gid != "" && gname != "") print gid "\t" gname;
}' > gene_id_symbol.txt
# 输出 gene_id_symbol.txt 文件的内容
echo "gene_id_symbol.txt 文件内容:"
cat gene_id_symbol.txt
# 计算TPM值的脚本
python3 << EOF
import pandas as pd
# 读取原始计数数据,指定列名
raw_counts = pd.read_csv("$RAW_COUNTS_FILE", sep='\t', header=0, names=["gene_id", "count"])
print("Raw counts file head:\n", raw_counts.head())
# 读取基因长度和symbol数据
gene_lengths = pd.read_csv("$GENE_LENGTH_FILE", sep='\t')
print("Gene lengths file head:\n", gene_lengths.head())
# 读取gene_id和symbol对应关系
gene_id_symbol = pd.read_csv("gene_id_symbol.txt", sep='\t', header=None, names=["gene_id", "symbol"])
print("Gene ID to symbol mapping head:\n", gene_id_symbol.head())
# 转换gene_id列的数据类型,确保一致性
raw_counts['gene_id'] = raw_counts['gene_id'].astype(str)
gene_lengths['gene_id'] = gene_lengths['gene_id'].astype(str)
gene_id_symbol['gene_id'] = gene_id_symbol['gene_id'].astype(str)
# 检查gene_id_symbol中是否有缺失值
print("Missing values in gene_id_symbol:\n", gene_id_symbol[gene_id_symbol.isna().any(axis=1)])
# 合并基因长度和symbol到原始计数数据
merged_data = pd.merge(raw_counts, gene_lengths, on='gene_id', how='inner')
merged_data = pd.merge(merged_data, gene_id_symbol, on='gene_id', how='left')
print("Merged data head:\n", merged_data.head())
# 计算TPM
def calculate_tpm(df):
df = df.copy()
gene_lengths_kb = df['gene_length'] / 1000 # 转换为kb
reads_per_kb = df['count'] / gene_lengths_kb
per_million_scaling_factor = reads_per_kb.sum() / 1e6
tpm = reads_per_kb / per_million_scaling_factor
return tpm
# 计算TPM值
tpm_values = calculate_tpm(merged_data)
tpm_df = pd.DataFrame({
'gene_id': merged_data['gene_id'],
'tpm': tpm_values
})
print("TPM values head:\n", tpm_df.head())
# 保存TPM值
tpm_df.to_csv("$TPM_COUNTS_FILE", sep='\t', index=False)
# 读取TPM数据,指定列名
tpm_counts = pd.read_csv("$TPM_COUNTS_FILE", sep='\t')
print("TPM counts file head:\n", tpm_counts.head())
# 转换TPM数据中的gene_id列的数据类型,确保一致性
tpm_counts['gene_id'] = tpm_counts['gene_id'].astype(str)
# 合并原始计数、TPM值和基因symbol
merged_counts = pd.merge(merged_data, tpm_counts, on='gene_id')
print("Merged counts with symbol head:\n", merged_counts.head())
# 保存合并后的文件,并确保gene_id、symbol、count和tpm列的顺序
final_counts = merged_counts[['gene_id', 'symbol', 'count', 'tpm']]
final_counts.to_csv("$COMBINED_OUTPUT_FILE", sep='\t', index=False)
EOF
echo "基因表达矩阵生成完毕,文件保存为 $COMBINED_OUTPUT_FILE"
脚本概述
以下是一个用于从BAM文件生成基因表达矩阵的脚本。该脚本利用了常用的生物信息学工具和编程语言(如subread和Python),通过以下步骤实现:
使用featureCounts从BAM文件计算原始计数(Raw count)。
使用GTF文件构建基因长度文件。
从GTF文件中提取基因名(symbol)信息。
计算每个基因的TPM(Transcripts Per Million)值。
将原始计数、TPM值和基因名合并到一个最终的基因表达矩阵文件中。
这个脚本不仅自动化了数据处理过程,还确保了数据的准确性和一致性,使研究人员能够专注于转录组数据的后续分析和解释。
最后生成文件,Rawcount_TPM内容如下:
好了,希望能帮到大家。
结果解析
通过这个脚本,你将得到一个包含基因名、Raw count和TPM值的基因表达矩阵文件。这个文件可以直接用于后续的生物统计学分析(如差异表达分析)和功能注释。具体来说,这个脚本实现了以下关键步骤:
原始计数数据生成:使用featureCounts从BAM文件计算每个基因的原始计数。
基因长度和基因名提取:从GTF文件中提取基因的长度信息和基因名(symbol)。
TPM值计算:根据原始计数和基因长度计算每个基因的TPM值,这是一种归一化方法,考虑了不同基因长度对表达量的影响。
数据合并和输出:将原始计数、TPM值和基因名合并到最终的基因表达矩阵文件中,并保存为指定格式的文本文件。
应用和进一步分析
得到基因表达矩阵后,你可以使用不同的生物信息学工具和统计学软件进行进一步分析,例如:
差异表达分析:使用DESeq2、edgeR等工具比较不同样本或条件下基因的表达水平差异。
功能富集分析:根据表达差异的基因进行GO分析、KEGG通路分析等,揭示生物过程中的功能变化和调控网络。
基因集富集分析:使用GSEA(基因集富集分析)等方法,探索基因在特定生物学过程或疾病中的相关性和功能。
这些分析不仅有助于理解基因在生物学过程中的功能和调控机制,还能为后续实验设计和临床应用提供重要的理论支持和指导。
结论
通过自动化的转录组数据处理流程,研究人员可以高效地从原始数据到最终的解释性结果,为基因功能研究和疾病机制探索提供强大的工具和支持。这种一键生成基因表达矩阵的方法不仅节省了时间和精力,还确保了数据处理的准确性和一致性,是当前转录组学研究不可或缺的重要步骤之一。
对于RNA测序,现在很多数据都是上传到GEO数据库了。所以我们做实验的时候还是要会下载别人的数据分析别人的数据。所以,今天,我们还要给大家免费分享:
“RNAseq数据分析全流程(入门到精通,原价7688元)”
如下免费获取:
🔽①长按下方二维码关注🔽
②输入关键词:7688
②输入关键词:7688
原价几千块的培训班,还在等什么,现在免费送。入门到精通,这一套就足够,非常详细,懂了原理和步骤后,直接用视频的代码即可,非常方便:
“RNAseq数据分析全流程(入门到精通,原价7688元)”
如下免费获取:
🔽①长按下方二维码关注🔽
②输入关键词:7688
②输入关键词:7688
顶级CNS插图如下:
但是自己画一只小鼠可能需要花一整天的时间。
所以,今天小编给大家免费赠送:
“生物医学之家CNS插图可编辑素材永久VIP账户”
生物医学之家CNS插图素材部分截图如下:
这些素材都是用Adobe illustrator绘制的,打开后可以继续编辑修改,这些素材原价是9999元的,现在免费给大家送永久账户。如下免费获取永久VIP账户:
🔽①长按下方二维码关注🔽
②输入关键词:永久VIP
②输入关键词:永久VIP
②输入关键词:永久VIP
免费发送1万个永久VIP账户,有了这个账号之后,你可以无限、永久下载生物医学之家的CNS插图素材。共有1万张素材,囊括了各种生物、人体组织、细胞、病毒、植物等。素材首页如下:
一、比如我需要用到小鼠插图来描述自己的小鼠动物实验模型,那就直接搜索鼠,有几百张小鼠插图就出现了:
有了VIP账号之后就可以随意下载。下载下来是AI绘制的可编辑图:
可以随意修改颜色:
也可以随意修改大小:
Ctrl+c和V复制粘贴到自己的画板中,并对齐:
随后画一条线,示意要D369打药:
随后添加字体,这样审稿人一看就知道你做了什么动物模型。
最后保存和导出,一定要记得保存,保存就是矢量图了,以后还能修改。导出就是导出为图片,用来讲PPT或者投稿。
还在等什么?赶快免费获取账号呀,发SCI、作图的时候肯定用得着。
“生物医学之家CNS插图可编辑素材永久VIP账户”
如下免费获取:
🔽①长按下方二维码关注🔽
②输入关键词:永久VIP
②输入关键词:永久VIP
②输入关键词:永久VIP
还有,我们下载的素材,也可以右键取消分组:
然后修改任何一个你想要修改的元素,比如修改液体的颜色:
也可以将注射器放在背上,模拟皮下注射:
还可以将小鼠变为黑色:
还在等什么?赶快免费获取账号呀,发SCI、作图的时候肯定用得着。
“生物医学之家CNS插图可编辑素材永久VIP账户”
如下免费获取:
🔽①长按下方二维码关注🔽
②输入关键词:永久VIP
②输入关键词:永久VIP
②输入关键词:永久VIP
二、比如我需要绘制细胞机制图。那就搜索细胞:
有了这些素材,分分钟就可以绘制如下这种高分插图:
三、各种Nature插图原图:
下载下来之后每个细微的元素都可以修改:
我们一共上传1万张Nature插图。大家赶紧获取永久VIP账户吧,投稿绘图的时候用得着:
“生物医学之家CNS插图可编辑素材永久VIP账户”
如下免费获取:
🔽①长按下方二维码关注🔽
②输入关键词:永久VIP
②输入关键词:永久VIP
②输入关键词:永久VIP
更多免费资源:
7 医学统计分析R版
11 SnapGene序列比对
15 R语言绘图模板
17 中文版RNAseq教程
21 更多资源在更新中.....
6 SPSS统计分析模板
8 铜铁死亡分析代码
10 m6A甲基化分析代码
12 qPCR计算模板
14 英文简历模板
16 R各种统计分析模板
18 46套生信分析代码
3 过表达引物设计
11 GO分析傻瓜式教程
13 GSEA分析傻瓜式教程
15 渐变火山图傻瓜式教程图
2 shRNA设计
10 超全生信数据库使用教程
12 KEGG富集分析教程
14 Meta分析范文+实操课
16 交集基因筛选高级教程
18 生信软件合集
辛苦整理,全文无任何广告!
觉得有用的话,您就点个在看、点赞!