Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三招破idea创建maven项目速度慢问题
Intellij idea是一款非常强大的编辑器,可以很方便地帮我们创建maven项目,有用过的同学应该都深有体会,但我们经常会遇到一个困扰。
良月柒
2019/03/20
9.7K0
三招破idea创建maven项目速度慢问题
Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories. Could not resolve artifact org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Users\liujunguang\.m2\repository) Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Users\liujunguang\.m2\repository)
全栈程序员站长
2022/09/15
8890
Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
IDEA配置Maven
配置好本地仓库,中央仓库这里是(阿里云)不然用的是国外的,速度很慢,在本地仓库里的依赖不够多的时候,大部分时候还得靠远程仓库;
久绊A
2024/03/01
2320
Maven构建项目速度太慢的解决办法
问题描述 通过idea新建maven项目,参数设置好后,idea自动构建maven项目时,速度很慢。 参数设置如图: 执行时间如下图: Total time为8:49,花了将近十分钟时间。 连续尝试了
程序员十三
2018/03/15
2.3K0
Maven构建项目速度太慢的解决办法
Maven-Could not resolve artifact org.apache.maven.archetypes:maven-archetype-quickstart:jar:1.1
Catalog File: http://repo1.maven.org/maven2/archetype-catalog.xml Description: maven catalog
小小工匠
2021/08/16
5380
Maven Archetype 多 Module 自定义代码脚手架
大部分公司都会有一个通用的模板项目,帮助你快速创建一个项目。通常,这个项目需要集成一些公司内部的中间件、单元测试、标准的代码格式、通用的代码分层等等。
艾小仙
2022/01/24
1.2K0
Maven Archetype 多 Module 自定义代码脚手架
怎么 1 秒完成 Maven 项目构建?(来长长见识)
点击关注公众号,Java干货及时送达 在实际开发中,我们通常会用到maven的archetype插件(原型框架)来生成项目框架。 但是无奈,创建时,总会卡在: [INFO] Generating project in Batch mode 等很久才构建完,有时还会报错,导致构建失败! 不多废话了,直接上解决办法吧! 解决办法1 在创建Maven项目时加上archetypeCatalog=internal参数,点击“+”添加参数archetypeCatalog=internal。 如下: 解决办法2
Java技术栈
2022/03/08
4860
从0到1教你学Maven(全网最详细)(五)IDEA 集成 Maven,一步一步带你集成,以后就不需要配置了
在idea中设置maven ,让idea和maven结合使用。 idea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。 使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息
一写代码就开心
2021/03/02
6570
从0到1教你学Maven(全网最详细)(五)IDEA 集成 Maven,一步一步带你集成,以后就不需要配置了
架构师必备技能:Maven Archetype生成项目模板
Maven插件允许我们从已有项目生成一个模板项目。在项目根目录下执行mvn archetype:create-from-project命令即可将该项目生成一个项目模板,生成的项目原型被保存在路径target/generated-sources/archetype下。
码农小胖哥
2021/09/09
4.3K0
IntellijIDEA快速入门(Windows版)
跟随公司变更技术堆栈的步伐,开始学习相应工具IntelliJ的使用,之前一个大神同时也提到,最近该IDE的市场份额已然超越了免费的Eclipse,因此该工具已经到了必须会的程度了。 新年快乐,鸡年大
用户1216676
2018/01/24
7840
maven
下载地址:http://maven.apache.org/download.cgi 安装:直接解压就可以
JokerDJ
2023/11/27
2770
maven
Maven私服搭建及自定义Archetype(骨架)
通过私服MAVEN能够更有效的管理自己的依赖包,像阿里云的短信jar包等第三方的依赖包,很多公服是没有的,在比如MAVEN是不支持多个仓库下载的,但是可以配置多个仓库。在私服上就可以解决以上问题。
Vincent-yuan
2021/12/08
1.3K0
Maven私服搭建及自定义Archetype(骨架)
eclipse maven could not resolve archetype之类的错误
http://repo1.maven.org/maven2/archetype-catalog.xml
ydymz
2018/09/10
6640
解决MAVEN项目因achetype加载太慢的问题
解决方案:  加载太慢由于achetype-catalog.xml文件的访问问题,导致了整个构建过程的缓慢,所以是否能够将文件保存到本地,成为一种解决思路。翻阅Maven官方文档可以找到,确实是可以的。官方链接如下:  http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html 按照如下步骤:  1)准备archetype-catalog.xml文件  方式1:通过浏览器查看ht
生活创客
2018/01/30
1.3K0
解决MAVEN项目因achetype加载太慢的问题
Maven添加依赖速度太慢的解决办法
(也可以直接下载我这个:<链接:https://pan.baidu.com/s/1lKI6w0yPycVjnGFuSvS-ww 提取码:oe26 > 复制这段内容后打开百度网盘手机App,操作更方便哦)
悟空宇
2024/03/11
7400
Maven添加依赖速度太慢的解决办法
可用maven仓库收集,持续更新
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
kl博主
2023/11/18
2080
Maven的安装与配置以及注意事项
目录 1.Maven的简单介绍  2. 什么是自动构建工具? 3. 常用的自动构建工具 4. Maven安装与配置 5. Maven的使用1:创建java项目 6. Maven的使用2:创建web项目 7. maven打包: 8. 什么是POM 9.注意事项 ---- 1.Maven的简单介绍  Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。 作用:完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。  2. 什么是自动构建
天蝎座的程序媛
2022/11/18
5490
菜鸟级入门学习maven的使用,很实用的入门教程
一、前言 早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven 的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种 种磨难总算是有一点眉目了。现在就将我的经验写出来,一来避免将来遗忘,二来也给和我一样的菜鸟们提供一点点的方便。呵呵。本文的主题在于实用操作,个中原理还是麻烦大家去查一下java大腕们的文章吧。这里推荐两篇文章:
全栈程序员站长
2022/10/03
3980
Maven教程2(Eclipse配置及maven项目)
  此处报错的原因是jdk版本问题,我们使用的maven的3.6.0jdk必须是1.7+当前使用的是1.5.所以我们需要修改jdk的版本,解决方式有两种。
用户4919348
2019/04/02
8840
Maven教程2(Eclipse配置及maven项目)
IDEA 配置 maven 完美解决方案
很久之前就配置的maven,最近使用的时候又出现问题了,我把项目用 IDEA 打开,打算使用 maven 将我需要的依赖自动导入,但是它一直卡在那里,加载了半天依赖也没导进去。
wsuo
2020/07/31
1.4K0
IDEA 配置 maven 完美解决方案
推荐阅读
相关推荐
三招破idea创建maven项目速度慢问题
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验