http://blog.sina.com.cn/s/blog_670445240102uxwy.html

一 COG简介

COG,即Clusters of Orthologous Groups of proteins。构成每个COG的蛋白都是被假定为来自于一个祖先蛋白,并且因此或者是orthologs或者是paralogs。Orthologs是指来自于不同物种的由垂直家系(物种形成)进化而来的蛋白,并且典型的保留与原始蛋白有相同的功能。Paralogs是那些在一定物种中的来源于基因复制的蛋白,可能会进化出新的与原来有关的功能。请参考文献获得更多的信息。

其网址主页为:http://www.ncbi.nlm.nih.gov/COG/。

网页版使用工具网址:http://www.ncbi.nlm.nih.gov/COG/old/xognitor.html。

使用说明文档网址:http://www.nlm.nih.gov/COG/old/COGhelp.html。

其FTP站点为: ftp://ftp.ncbi.nih.gov/pub/COG/。

通过观看其主页和说明文档,可以理解为COG是NCBI的数据库。COG的中文释义即“同源蛋白簇”。COG分为两类,一类是原核生物的,另一类是真核生物。原核生物的一般称为COG数据库;真核生物的一般称为KOG数据库。

COG是如何建立的?

COG是通过把所有完整测序的基因组的编码蛋白一个一个的互相比较确定的。在考虑来自一个给定基因组的蛋白时,这种比较将给出每个其他基因组的一个最相似的蛋白(因此需要用完整的基因组来定义COG。注1)这些基因的每一个都轮番的被考虑。如果在这些蛋白(或子集)之间一个相互的最佳匹配关系被发现,那么那些相互的最佳匹配将形成一个COG(注2)。这样,一个COG中的成员将与这个COG中的其他成员比起被比较的基因组中的其他蛋白更相像,尽管如果绝对相似性比较的。最佳匹配原则的使用,没有了人为选择的统计切除的限制,这就兼顾了进化慢和进化快的蛋白。然而,还有一个加的限制就是一个COG必须包含来自于3个种系发生上远的基因组的一个蛋白。

COG注释作用:1. 通过已知蛋白对未知序列进行功能注释; 2. 通过查看指定的COG编号对应的protein数目,存在及缺失,从而能推导特定的代谢途径是否存在; 3. 每个COG编号是一类蛋白,将query序列和比对上的COG编号的proteins进行多序列比对,能确定保守位点,分析其进化关系。

 将序列进行COG分类的步骤

1. COG的ftp里边提供了一个名为myva的文件,该文件里面为COG数据库的蛋白质序列,有192987。将该序列文件使用使用ncbi-blast-2.2.26+中的blastdb程序制作出一个前缀为cog的蛋白质数据库。

2. 将需要进行COG注释并分类的DNA序列或protein序列分别使用blastx或blastp比对到上一步骤建好的cog数据库中。得出xml的比对结果。

3. 根据上一步骤的比对结果,得出与query序列相似的cog蛋白id。在COG的ftp里面有一个名为whog的文件,该文件中记录着COG数据中绝大部分的蛋白质id以及其所对应的以COG开头的protein编号,同时也记录这COG编号对应的功能分类编号。因此,可以得出query序列注释的COG编号以及其功能分类编号。

4. ftp中还有一个名为fun.txt的文件,该文件记录这COG的功能分类编号,及其对编号的功能描述。

5. 因此,我编写了一个脚本程序用于COG分类注释。该脚本程序名字为cog.pl。输入为所需要进行COG分类的fasta序列文件,得出序列的比对结果和分类统计。

ftp://ftp.ncbi.nih.gov/pub/COG/COG

文件:fun.txt         2 KB         2003/3/2         0:00:00

文件:myva   60217 KB         2003/3/2         0:00:00

文件:myva=gb     3026 KB 2002/9/26       0:00:00

文件:org.txt         4 KB         2003/3/2         0:00:00

文件:pa        769894 KB       2003/3/2         0:00:00

文件:readme       2 KB         2003/4/17       0:00:00

文件:whog 2083 KB 2003/3/5         0:00:00

从03年开始就没有更新了

三 将序列进行KOG分类

方法和COG的分类一致。值得注意的是KOG数据中protein的编号是以LSE或TWOG开头的。同样,我编写了一个kog.pl。

四 说明补充

值得说明的是,KOG数据库中蛋白质序列数目为112920条,但是其中有protein编号的只有27887条,占25%。而COG数据库中蛋白质序列条数为192987,其中有COG编号的有129326条,占67%。所以比对结果中,很多序列比对上了KOG数据库,但是没有protein编号;而在比对到COG数据库时会好很多。

所以,可以先将序列比对到COG数据库,得出分类数据;然后将没有分类编号的序列挑选出来,再比对到KOG数据库,得出分类数据;然后将两个分类数据进行整合,然后画出COG分类图。

五,COG的注释

1,使用Webmga

http://weizhongli-lab.org/metagenomic-analysis

会反馈给你4个结果,output.1和output.2分别是两个非常相近的比对结果,而output.2.family是按照COG的编号排出来的结果,output.2.class是在COG大的分类上的一个统计结果

2,使用陈博士的脚本

mkdir /sam/cog

cd /sam/cog

wget ftp://ftp.ncbi.nih.gov/pub/COG/COG/myva

wget ftp://ftp.ncbi.nih.gov/pub/COG/COG/fun.txt

wget ftp://ftp.ncbi.nih.gov/pub/COG/COG/whog

makeblastdb –in myva –dbtype prot –title cog –parse_seqids –out cog –logfile cog.log

wget http://www.chenlianfu.com/train/bin/cog_from_xml.pl

wget http://www.chenlianfu.com/train/bin/cog_R.pl

使用blast

/sam/blast/bin/blastp -query assembly.orfs.hmm.faa -db /sam/cog /cog -evalue 1e-5 -num_threads 10 -max_target_seqs 5 -outfmt 5 -out assembly.orfs.hmm.blast.xml

-query 输入序列  -db 选择的数据库  -evalue 这个就不说了 -num_threads 服务器使用的cpu个数 -max_target_seqs设置最多的目标序列匹配数    -outfmt输出结果的参数  -out输出的文件名

注意文件或程序的路径,如果没有cd到相应的位置的话,就需要在命令中注明路径

使用cog_from_xml.pl进行COG分类分析

cog_from_xml.pl cog.xml   #这一步脚本有问题,做不下去

cog_R.pl cog_cog_class_annot.xls cog_out G.lucidum

display cog_out.png

cog_db_clean.pl  -myva myva whog >cog_clean.fa

formatdb -p T -o T -i cog_clean.fa;

3,使用樊博士的脚本

cog_db_clean.pl  并不是所有的COG序列都包含所有的功能注释,所以你需要运行命令,挑选出在COG数据库中有注释的那些序列,脚本下载链接:https://gist.github.com/Buttonwood/96f9a9ef8159ca111a69

cog_db_clean.pl  -myva myva whog >cog_clean.fa

# myva 为61.7M的fasta文件,序列名为>AF0017.1这样的格式;cog_clean.fa文件为51M的fasta文件,序列名为>AF0017.1         COG1250 3-hydroxyacyl-CoA dehydrogenase,结合了whog的信息。

formatdb -p T -o T -i cog_clean.fa;

blast_parser.pl  解析blast输出结果,下载链接:https://github.com/JinfengChen/Scripts/tree/master/bin

blastall -p blastp -b 500 -v 500 -F F -d cog_clean.fa -e 1e-4 -i yourdata.fa -o blast.out;

blast_parser.pl -tophit 1 -topmatch 1 blast.out >blast.best;

这个时候你就可以编写perl与R程序输出类似下面的结果:

Ps:感谢樊师兄提供的脚本与耐心的解答。

参考资料:

http://www.chenlianfu.com/?p=366#comments(超赞)

http://www.biosino.org/pages/ncbi-7.htm

http://blog.sina.com.cn/s/blog_83f77c940102ux6u.html(超赞)

可以参考的文献:

Tatusov et al. (1997).  A genomic perspective on protein families.  Science 278: 631-637.

Koonin et al. (1998).  Beyond complete genomes: from sequence to structure and function.  Curr. Opin. Struct. Biol. 8: 355-363.

Galperin et al. (1999).  Comparing microbial genomes: How the gene set determines the lifestyle.  In Organization of the Prokaryotic Genome,  R.L. Charlebois, Ed. (American Society of Microbiology, Washington, DC) pp. 91-108.

Tatusov et al. (2000).  A genomic perspective on protein families.  Nucleic Acids Res. 28: 33-6.

COG注释--转载的更多相关文章

  1. kegg-kass注释--转载

    在注释KEGG的时候,一直用到kaas,具体kaas是个什么东东,简单的总结一下吧.     KEGG是由日本人搞的一个代谢图,收录基因和基因组的数据库,数据库可以分为 3大部分,基因数据库, 化学分 ...

  2. IE中的条件注释(转载自网络)

    IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决 ...

  3. MFC的PNG贴图按钮类(详细注释)

    MFC的PNG贴图按钮类(详细注释) (转载请注明出处) 作者:梦镜谷雨 萌新第二次写帖子,请多多包涵.末尾附上相应代码(PS公司繁体系统所以部分注释繁体请别介意). 因自带控件不美观,于是网上参考学 ...

  4. mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释

    mysql使用sql语句查询数据库所有表注释已经表字段注释(转载)   场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...

  5. Population-based metagenomics analysis reveals markers for gut microbiome composition and diversity

    读paper的时候觉得自己就是个24K纯学渣(=.=)一大堆问题等着我去解决...所以在这里写一个Q&A好了,先列问题,逐步填充答案- ××××××××××××××××××我是分割线么么哒×× ...

  6. pycharm设置开发模板/字体大小/背景颜色(3)

    一.pycharm设置字体大小/风格 选择 File –> setting –> Editor –> Font ,可以看到如上界面,可以根据自己的喜好随意调整字体大小,字体风格,文字 ...

  7. Centos7安装gitlab11 学习笔记之基础概念、部署安装、权限管理、issue管理

    一.基础介绍 1.简介 一个基于GIT的源码托管解决方案 基于rubyonrails开发 集成了nginx postgreSQL redis sidekiq等组件 2.安装要求 2g内存以上,有点占内 ...

  8. Journal of Proteome Research | Proteomic analysis of Rhizobium favelukesii LPU83 in response to acid stress.(酸胁迫下根瘤菌LPU83(Rhizobium favelukesii)的蛋白质组学分析)(解读人:丑天胜)

    文献名:Proteomic analysis of Rhizobium favelukesii LPU83 in response to acid stress.(酸胁迫下根瘤菌LPU83(Rhizo ...

  9. JScript中的条件注释详解(转载自网络)

    JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...

随机推荐

  1. update kernel 3.10-3.12

    安装包下载以及依赖包安装 1.到www.kernel.org下载3.12.48压缩包 2.tar xvf linux-3.12.48.tar.xz 3.sudo yum install ncurses ...

  2. Discovering-论文

    Discovering Spatio-Temporal Causal Interactions in Traffic Data Streams data:real taxi trajectories ...

  3. Django知识(二)

    上一部链接 django入门全套(第一部) 本章内容 Django model Model 基础配置 django默认支持sqlite,mysql, oracle,postgresql数据库. < ...

  4. size_t 类型

    1 关于size_t定义 size_t是一种数据相关的无符号类型,它被设计得足够大以便能够内存中任意对象的大小.在cstddef头文件中定义了size_t类型,这个文件是C标准库stddef.h头文件 ...

  5. javascript原型对象

    先来做个复习,ES5中有有几种数据类型呢? 5种基本数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 除了基本数据类型,万物皆对象,记 ...

  6. BZOJ1095 [ZJOI2007]Hide 捉迷藏

    动态树分治,用三个set分别维护每个重心到每一个子树的距离种类.每个重心所有子树的最大值和次大值.全局答案的最大值.复杂度O(nlogn^2) 代码 #include<cstdio> #i ...

  7. python学习笔记系列----(六)错误和异常

    python至少有2类不同的错误:语法错误(Syntax Errors)和异常(Exceptions). 8.1 语法错误 这个单词应该还是很有必要认识的,呵呵,语法错误,也叫解析错误,是我们最不愿意 ...

  8. 如何让 XE5 发现你的手机

    首发在 ① FireMonkey[DELPHI XE5]  165232328 欢迎使用 FMX 开发手机程序的高手来访. 1. 手机开启 USB 调试.不用 ROOT.2. 装驱动.(问题就在这里) ...

  9. EditPlus 3.7.1186 中文版(10月27日更新)重大性能改进,推荐更新!

    3.7.* 版的 EditPlus 存在性能问题:加载行数比较多的文档时,要等很长的时间.加载一个十几兆的文本文件,可能需要等十几秒.在编辑窗口内翻页也会有明显的迟滞感.而此前的 3.6 版本并非如此 ...

  10. AngularJs的UI组件ui-Bootstrap---tabs控件

    tabs控件使用uib-tabset指令和uib-tab指令,效果是这样的: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo ...