24小时热门版块排行榜    

查看: 2198  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ldy2140

金虫 (小有名气)

[交流] 讨论下怎么通过gi号批量获得物种的definition 已有4人参与

做生物信息学的大都避免不了要blast 有时尽管我们blast出来的结果很多很吓人 但还是要将这些结果汇总成excel表格
最近就遇到了很让我头疼的事情 我做了很多转运蛋白的微生物全库的blast 但得到的table里只有匹配物种的gi号 在汇总结果的时候我想把gi号换成物种信息 比如像GBFF里的definition这种能说明物种遗传背景的字符串
所以我考虑用perl的正则表达式替换 写了如下的程序
CODE:
#!/usr/bin/perl
use Bio::Seq;
use Bio::DB::GenBank;

$gb = new Bio::DB::GenBank;
$^I = ".bak";

while (<>) {
  $line = $_;
  if ( /gi\|(\d+)\|/ ) {
    $gi = $1;
    $seq_obj = $gb->get_Seq_by_gi ($1);
    $def = $seq_obj->desc;
  }
  $_ = $line;
  s#\t.*?$gi.*?\t#\t$def\t#;
  print;
}

但是运行起来速度很慢而且很浪费带宽 因为用到的模块是将gi号对应的整个序列信息都下载下来 然后从中提取definition 所以效率很差 这是我花很短时间学习perl和bioperl编写的急功近利的程序 期待高手拍砖

[ Last edited by ldy2140 on 2012-8-28 at 21:55 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

伸手摘星,未必你如愿,但不会弄脏你的手。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wizardfan

至尊木虫 (著名写手)

优秀版主


小木虫: 金币+0.5, 给个红包,谢谢回帖
You know my comments on how to deal with high throughput data analysis: download the genbank flat file and parse the local file, which can improves the efficiency dramatically.

About your code:
1. Use "use strict;" all the time
2. Regular expression is fine, but I would use $` $' (special variables containing the previous and next part of the matching part) instead of another s/// statement
5楼2012-08-29 22:54:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ldy2140 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见