生信log19|原核基因组分析part2-本地个性化分析(序列建库部分真核也适用)

😭这篇写得太久了,还有很多不满意的地方,决定先放出来再慢慢完善。
刚来实验室的那会儿,经常听到实验室的师兄说建库,pfam,antismash诸如此类的名词,我听得一头雾水,处于想学但是学不明白,只能暂时把这些东西记在脑海中。更别说实践起来的时候,各种坑都踩了个遍,诸如此类分析的流程和标准,以及为什么要这样做,当时也没能解决。写这篇的目的在于记录找新基因或者是个性化基因的本地自建库流程以及当时迷惑的点,也供其他小白同志们参考一下,这种方法也适用于真核生物的建库。


1、为什么要自建数据库?

下面列出现场数据库的几宗“罪”

  • a. 检索的困难:公共数据库存放了全世界各地的数据,信息量非常大,没有大海捞针般困难,批量检索数据的时候,要花费的时间和精力也是不少的,时长从几分钟到一个星期不等,十分考验计算机的算力,使用网页版的吧,批量处理不友好,而且大部分网页工具现在询问的条数,上传文件数量的限制(以KEGG为例大概是5000条蛋白序列,每次提交的文件,限每个邮箱一个);

  • b. 针对性问题:数据库收录序列广了未必就是好事,实际操作中不但速度慢,而且目标太多会干扰比对结果,非常有可能比对不上自己想要的同源序列而是比对到了其他非同源序列。

  • c. 收录的问题:第一点,一些数据库的历史比较悠久,像收录16S rRNA基因的Greengene数据库,RDP数据库还有直系同源蛋白质分类COG数据库已经不再更新,相信还有更多的数据库已经停止更新。第二,一些数据库到目前为止还有维护和更新,但由于信息需要验证,速度跟不上文献发表的速度,因此最新的序列需要通过搜查文献才能得知。

总结一下,个性化建立数据库的是为了更加高效,批量化地与特定范围的同源序列进行比对。

常用蛋白质数据库的完整度和可信度对比

完整度NCBI > Uniprot > Swissprot

准确度Swissprot > Uniprot > NCBI

PS:这里并没有讨论 Pfam的数据库是因为pfam建库的依据是蛋白质的结构域序列建库的。另外NCBI的数据库的更新速度应该是最快的,因为发文章之前统一都需要把数据上传到Genbank或者EMBL数据获得Accession number才能

2、数据库到底是长成什么样的

组成数据库的元素:核苷酸序列,氨基酸序列等等,只要是同类的材料并且数量多都可以组成数据库。这里只讨论核苷酸序列和氨基酸序列的数据库,并侧重于氨基酸序列数据库。下面展示三种不同算法的建库后的文件


数据库的真实样子

3、三种常用建立数据库的方法及结果解析

下面几种建库方法是建立在蛋白质序列或者核苷酸序列基础上的,建库的方法其实也就是背后的模型不一样,一个是动态规划算法,一个是diamond算法,一个是隐马尔可夫模型。这些预测模型被打包成软件,所以我们在使用的时候并不复杂。

直观的数据库生成过程

个性化搜索的步骤

0、多序列比对(此步为Hmmer算法必须的,Blast和diamond不需要)

  • 多序列比对可用clustalw或者是mafft
# mafft 比对
mafft --auto in_protein.fa > out.fa
# clustalw 用这条命令时,把Protein换成自己的蛋白的名称
echo "1\nprotein.fa\n2\n1\nProtein.aln\nprotein/dnd\nX\n\n\nX\n |clustalw"

1、建库
2、根据自己建的数据库搜索未知序列
3、结果提取和数据验证
4、可视化

3.1 Blastp算法建库数据库
# 建库
makeblastdb -in 用来建库的核苷酸/氨基酸.fasta \
 -dbtype nucl/prot \ #选择数据的类型(蛋白质还是核苷酸,上面一样)
 -parse_seqids \ #这个是要保留原来序列 ">"后面跟着的字符串
-out yourdb_name 

# 搜索
blastp -db database_name \
-query your_file.faa -outfmt 6 \ 
-out output_filename \
-evalue 1e-5

补充说明一下上面的参数-parse_seqids是用来保留原来序列的identifier的信息的就是“>”后跟着的序列名称。另外输出的结果均选择格式6

blast输出格式6详解

3.2 Diamond多序列比对方法建库
#建库
diamond makedb --in 同源序列文件 --db nr

# 搜索 blastx是给DNA序列用的,blastp是给蛋白质序列用的
diamond blastx --db nr -q reads.fna -o dna_matches_fmt6.txt
diamond blastp --db nr -q reads.faa -o protein_matches_fmt6.txt

3.3 HMM算法建库
#构建模型,使用多序列比对的结果文件
hmmbuild filename.hmm 多序列比对的输出文件.fasta

#搜索
hmmsearch --domtblout out_protein.txt --cut_tc protein.hmm query_file.faa 

PS:数据库的命名建议用跟同源序列相同的名字,以便后面辨认

三种建库方法的评价及阈值设定问题

  • blastp的算法是最经典的至今大量文献仍然使用这个算法尤其是分子生物学,一般在blastp结果中,相似性为30%的序列都能被人认为具有一定的生物学功能相似性,相似性在70%或以上则被认为是具有相同功能的蛋白质或者是完全一样的蛋白类型,并且实验室验证也很容易获得相同的活性结果。Blastp做序列比对中目前还是必要的选项,但是在大批量作业下速度太慢,对发现潜在性新蛋白不敏感。
  • diamond:跟楼上的blastp算法结果比较相近,但胜在速度快,据其文章所言,序列越多比对速度越快,单序列与多序列想比对,速度反而慢。
  • Hmmer:隐马尔可夫模型是根据氨基酸的频率来预测新的序列,依据是蛋白质结构域,速度非常快,利于找到新的序列信息,美中不足的是找的并非是功能蛋白的序列全长,因此分子实验可能会不太能验证。

3、数据解析和信息提取(fasta序列提取)

  • 用linux三件套(grep,sed,awk)提取相应的信息
    附正则表达式命令行提取文本中的KO号(提取方法不唯一,我的也不一定具有应用普遍性),注意到KO号实际上的组成是字母K后面再跟一串数字,但数字有多长我们并不清楚
#用grep提取从KEGG上注释到的KO号
cat 45_upload.txt|grep -h 'K[0-9].*[0-9]'  > final_result.txt
grep匹配的效果
blastp结果的提取
  • blast的结果选择的是格式6,默认的行数有12列,每一列的内容如表格所示(可以有目的地筛选所需要的信息);
qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore

1. qseqid :查询的id(我们的序列号);2. sseqid :数据库中的参考序列的序列号;3. pident :匹配到的概率;4. length :序列比对上的长度;5. mismatch number of mismatches:错误匹配的概率;6. gapopen number of gap openings:间隔的数目;7. qstart start of alignment in query:查询序列的起始位点;8. qend end of alignment in query:查询序列的终止位点;9. sstart start of alignment in subject:参考序列的起始位点;10. send end of alignment in subject:参考序列的比对结束位点;11. evalue expect value:匹配结果出错的概率;12. bitscore bit score:序列得分

  • 命令中的$3表示的是列,如此类推,$4是第四列,$11是第十一列,选取e-value小于0.1的五次方的结果,相似度(概率大于30%)的,以及序列长度选择大于100个氨基酸长度的结果。
cat blastp_output.out | \
awk '{if ($3>35 && $11<0.00001 && $4>100) print $1','$2','$3','$11','$12}' \
> final_result.txt

Hmmer结果
hmmer出来的结果列表
  • 建议可以使用excel表中的分列功能,然后把序列的id提取出来,再把原来的查询的序列文件中的对应序列抽取出来。

4、预测数据的验证

在此解释一下为何要再做生物信息学的验证,而不是直接上手分子生物学的验证。我们下载到的序列不一定都是全是“对的”,这除了数据库信息中数据命名混乱以外,我们非常有可能下载到的序列并不是真正想要,可能只是近似的序列,得到一个接近的假阳性结果,因此我们需要在得到一个简化结果之后再与大的数据库进行比对来排除下载对应序列的错误。

以下几个验证的数据库都会互相联动,比如说pfam的数据库可以同时☑️勾选SMART,CDD这些数据库

进入主页
找到隐藏的批量搜索入口
批量检索的页面
额外的内容勾选
Smart输出的结果
  • smart 会可视化出来结构

NCBI的保守结构域数据库验证

搜索的入口
搜索页面及参数设置
数据库选择
页面结果浏览1
页面结果浏览2
随便逛逛探索

Pfam数据库验证

pfam的搜索界面
文件上传和参数设置
结果页面1
点击show之后显示单个比对结果
其他关联的数据库

上面的表格数据数据可视化-展示结果事例参考

  • 通路重构
    KEGG通路重新构建
    kegg
  • 热图


    统计拷贝数的热图
  • 序列比对图


    序列比对texshade作图
  • 基因组结构展示圈图
    基因结构的展示
    circos圈图
  • 基因簇结构可视化(gggene)


    基因簇结构

参考和延伸阅读
原核基因组分析流程基础1
详细的diamond建库教学

  • PS:一篇文章实在呈不下太多,此篇仅展示主体部分,里面没有深入的点和可视化的部分以后都会一一在其他log中记录,各位看官有兴趣走过路过点个关注支持留意一下!😘
    有疑惑和指教请在下方留言区留言一起交流学习哦。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容