前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用TBtools对叶绿体蛋白编码基因进行GO注释

使用TBtools对叶绿体蛋白编码基因进行GO注释

作者头像
用户7010445
发布于 2020-03-03 06:55:50
发布于 2020-03-03 06:55:50
5.5K00
代码可运行
举报
运行总次数:0
代码可运行
第一步:根据叶绿体基因组的genbank注释文件获得蛋白编码基因序列

提取序列的python脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
from Bio import SeqIO

input_file = sys.argv[1]
output_file = sys.argv[2]

protein_coding = {}

for rec in SeqIO.parse(input_file,'gb'):
    for feature in rec.features:
        if feature.type == "CDS":
            gene_Name = feature.qualifiers["gene"][0]
            gene_Sequence = feature.extract(rec.seq)
            protein_coding[gene_Name] = gene_Sequence

with open(output_file,"w") as fw:
        for a,b in protein_coding.items():
            fw.write(">%s\n%s\n"%(a,b))

使用方法

python extract_CDS_from_gb.py input.gb output.fasta

第二步:使用diamond将叶绿体的蛋白编码基因与swissprot数据库比对,获得TBtools做GO注释需要的.xml格式文件

参考文献:DIAMOND: 超快的蛋白序列比对软件

下载swissprot数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz
bgzip uniprot_sprot.fasta.gz

下载diamond

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget http://github.com/bbuchfink/diamond/releases/download/v0.9.25/diamond-linux64.tar.gz
tar xzf diamond-linux64.tar.gz

无需安装,解压出来即可使用

构建数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~/mingyan/Bioinformatics_tools/Diamond/diamond makedb --in uniprot_sprot.fasta -db uniprot_sprot

运行完目录下多了一个uniprot_sprot.dmnd文件

比对自己的数据,我的是核苷酸序列,使用blastx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~/mingyan/Bioinformatics_tools/Diamond/diamond blastx --db uniprot_sprot -q output.fasta -o cp_Protein_coding.xml --outfmt 5
第三步:使用TBtools进行GO注释

需要准备的文件

idmapping.tb.gz 文件比较大

这里推荐一个下载器 https://motrix.app/ 界面非常干净清爽

go-basic.obo

cp_Protein_coding.xml

第一步获得文件

cp_Protein_coding.xml.TBtools.GOAnno.xls

第二步获得文件

Bhagwa_gene2Go.txt.Level3.count.xls

TBtools做GO注释如何具体操作大家可以关注TBtools作者在腾讯课堂开设的一系列视频课程。

这样GO注释就做好了,TBtools也会对应有可视化工具,这里我选择使用R语言的ggplot2进行展示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggplot2)
df<-read.csv("Bhagwa_cp_protein_coding.csv",header=T)
dim(df)
colnames(df)
df1<-df[which(df$Class=="biological_process"),]
df2<-df[which(df$Class=="cellular_component"),]
df3<-df[which(df$Class=="molecular_function"),]
df1<-df1[order(df1$Counts,decreasing = T),]
df2<-df2[order(df2$Counts,decreasing = T),]
df3<-df3[order(df3$Counts,decreasing = T),]
df4<-rbind(df1,df2,df3)
dim(df4)
levels<-as.vector(df4$Description)
df4$Description<-factor(df4$Description,
                        levels = levels)
ggplot(df4,aes(x=Description,y=Counts,fill=Class))+
  geom_bar(stat="identity")+
  theme_bw()+
  theme(axis.text.x = element_text(angle=90,
                                   vjust=0.2,hjust=1),
        legend.title=element_blank(),
        legend.position = c(0.8,0.8),
        panel.grid = element_blank())

image.png

对结果进行可视化遇到的问题
  • 数据框如何根据指定列分组排序,比如我的数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  X Y
1 A 1
2 A 2
3 B 3
4 B 4
5 C 5
6 C 6

我想ABC分别从大到小排序,如何实现自己还没有想到比较好的办法。

  • ggplot2X轴文本对齐方式采用的是vjust和hjust参数,更改这两个参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggplot2)
df<-read.csv("Bhagwa_cp_protein_coding.csv",header=T)
dim(df)
colnames(df)
df1<-df[which(df$Class=="biological_process"),]
df2<-df[which(df$Class=="cellular_component"),]
df3<-df[which(df$Class=="molecular_function"),]
df1<-df1[order(df1$Counts,decreasing = T),]
df2<-df2[order(df2$Counts,decreasing = T),]
df3<-df3[order(df3$Counts,decreasing = T),]
df4<-rbind(df1,df2,df3)
dim(df4)
levels<-as.vector(df4$Description)
df4$Description<-factor(df4$Description,
                        levels = levels)
ggplot(df4,aes(x=Description,y=Counts,fill=Class))+
  geom_bar(stat="identity")+
  theme_bw()+
  theme(axis.text.x = element_text(angle=90,
                                   vjust=-0.5,hjust=0.5),
        legend.title=element_blank(),
        legend.position = c(0.8,0.8),
        panel.grid = element_blank())
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NBA25岁以下得分后卫排名
R语言里 ballr包里有一个函数 NBAPerGameAdvStatistics()可以抓取NBA指定赛季所有球员的统计数据;数据来源是https://www.basketball-reference.com。
用户7010445
2020/03/03
5570
看篮球学R语言:卢卡东契奇到底有多棒?
https://www.kaggle.com/xvivancos/how-good-is-luka-doncic
用户7010445
2020/08/28
6420
看篮球学R语言:卢卡东契奇到底有多棒?
[NC图表复现] ggplot2绘制分裂小提琴图
R语言数据分析指南
2024/01/17
4060
[NC图表复现] ggplot2绘制分裂小提琴图
答读者问:R语言ggplot2绘制热图展示GO富集分析结果的简单小例子
昨天有读者在公众号留言问下面这个热图如何画 image.png 这个图的实现办法有很多,今天的推文介绍一下使用R语言的ggplot2实现上图的代码。 首先是构造示例数据 构造两份数据 一份是最左侧的分
用户7010445
2021/03/15
1.8K1
R语言ggplot2画热图添加分组信息的颜色条
之前有人在公众号留言问文章开头这幅图如何实现,下面的B图是折线图加柱形图,相对比较容易实现,上面的A图稍微有点复杂,我想到的办法是拼图,图A可以看成三个热图,然后加一个堆积柱形图,最后将四个图组合到一起。那就按照这个思路试一下看能不能实现。 最初的想法是左侧的颜色条用堆积柱形图来实现,又看了一遍Y叔公众号关于aplot这个包的推文,发现他是用geom_tile()函数实现的,仔细想想还是geom_tile()函数实现起来比较方便。 首先解决昨天的遗留问题:ggplot2画图添加文字内容的时候如何添加下划线
用户7010445
2021/01/06
5.4K0
跟着PNAS学作图:R语言ggplot2作图展示多序列比对结果
https://www.pnas.org/doi/10.1073/pnas.2214427119
用户7010445
2023/01/06
8350
跟着PNAS学作图:R语言ggplot2作图展示多序列比对结果
跟着Microbiome学作图:R语言ggplot2画堆积柱形图展示微生物门水平的相对丰度
本地文件Giloteaux2016_Article_ReducedDiversityAndAlteredComp.pdf
用户7010445
2021/11/23
2.3K0
跟着Microbiome学作图:R语言ggplot2画堆积柱形图展示微生物门水平的相对丰度
生信绘图与配色
3.散点- 几何对象: geom_point()函数,size,alpha为控制点属性的参数
用户11008504
2024/07/02
3430
关于10X HD和Xenium数据整合分析以及HD解卷积RCTD的运用
追风少年i
2024/06/10
4630
关于10X HD和Xenium数据整合分析以及HD解卷积RCTD的运用
跟着Nature microbiology学画图~箱线图放到频率分布直方图的右上角
频率分布直方图之前的推文有过详细的介绍,点击下方蓝字直达,这里的代码就不再过多介绍
用户7010445
2021/01/06
8000
R语言聚类树图小例子
将层级聚类的结果转化为ggdendro作图需要的格式,用到的函数是dendro_data(hc,type="rectangle") type有两个参数可选
用户7010445
2020/03/03
1.1K0
跟着Nature microbiology学画图~ggplot2散点图添加分组边界
添加分组边界主要参考了文章 https://chrischizinski.github.io/rstats/vegan-ggplot2/
用户7010445
2021/01/06
1.3K0
跟着Nature microbiology学画图~ggplot2散点图添加分组边界
你还缺scRNA-seq的workflow吗?
之前曾老师给我看了一位在pipebio工作的生信工程师Roman Hillje的scRNA-seq的workflow,今天整理一下分享给大家。
生信菜鸟团
2024/07/31
4420
你还缺scRNA-seq的workflow吗?
R语言ggplot2画带有空白格的热图简单小例子
之前有人在公众号留言问文章开头这幅图如何实现,下面的B图是折线图加柱形图,相对比较容易实现,上面的A图稍微有点复杂,我想到的办法是拼图,图A可以看成三个热图,然后加一个堆积柱形图,最后将四个图组合到一起。那就按照这个思路试一下看能不能实现。 首先画热图 这个热图和常规的还稍微有点不太一样,可以简单的理解为带有缺失值的热图,缺失值是空白格,其他值分别填充颜色。 那我们就按照这个思路来构造数据 将数据集按照以上格式整理好,存储在csv文件中。 首先是读入数据 df<-read.csv("example_da
用户7010445
2021/01/06
3.5K0
绘图技巧 | 第七次全国人口普查数据还能这么玩!?技巧都在这了
今天小编就根据第七次全国人口普查数据进行一些可视化图表的绘制,涉及的知识点较为简单,主要就是一些细节上的定制化操作(推文中使用的数据免费获取方式见文末),主要内容包括:
DataCharm
2021/05/27
9800
跟着Nature Methods学画图:R语言ggplot2+ggtree+aplot画气泡图组合聚类树图
论文对应的代码是公开的 https://github.com/ajwilk/2020_Wilk_COVID
用户7010445
2021/03/15
2.4K0
cellphonedb之可视化受体配体对
1 下载cellphonedb官网测试数据,并运行软件 cellphonedb官网 下载测试数据 curl https://raw.githubusercontent.com/Teichlab/cellphonedb/master/in/example_data/test_counts.txt --output test_counts.txt curl https://raw.githubusercontent.com/Teichlab/cellphonedb/master/in/example_data/
生信技能树jimmy
2021/10/09
2.2K0
绘图技巧 | 议会(项目)图还不会做?快上车~~
今天这篇推文小编给大家介绍一个一直想绘制的图表-议会图(parliament diagrams),当然这也是柱形图系列变形的一种。绘制这种图表也是超级简单的,只需使用R-ggpol包进行绘制即可,当然,改包还提供其他优秀的绘图函数,下面就一起来看下吧。
郭好奇同学
2021/03/25
1.5K0
绘图技巧 | 议会(项目)图还不会做?快上车~~
scRNA分析| Seurat堆叠小提琴图不满足? 那就ggplot2 堆叠 各种元素
单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap几种 ,Seurat均可以实现,但文献中的图大多会精美很多。比如
生信补给站
2023/08/25
4.8K0
scRNA分析| Seurat堆叠小提琴图不满足?  那就ggplot2 堆叠 各种元素
威少爷的投篮命中率
由上图可以看出,威少本赛季较上个赛季的进攻方式的变化:略微增加了三分球,减少了长两分,其他没有明显变化
用户7010445
2020/03/03
5000
推荐阅读
相关推荐
NBA25岁以下得分后卫排名
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验