免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5224 | 回复: 7
打印 上一主题 下一主题

求个一个perl程序,提取GO注释库里提取相应基因的GO号(求高手) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-08 20:58 |只看该作者 |倒序浏览
5可用积分
本帖最后由 aids260 于 2011-05-08 20:59 编辑

BGIBMGA004936-PA        GO:0005085        GO:0005622        GO:0051056        GO:0005515        GO:0007165        GO:0007264
BGIBMGA005113-PA        GO:0008152        GO:0008415                               
BGIBMGA011416-PA        GO:0003735        GO:0005622        GO:0005840        GO:0006412               
BGIBMGA006470-PA        GO:0016491                                       
BGIBMGA000219-PA        GO:0005622        GO:0043565                               
BGIBMGA012457-PA        GO:0004984        GO:0005549        GO:0007608        GO:0016020               
BGIBMGA006942-PA        GO:0003676        GO:0005622        GO:0008270                       
BGIBMGA012123-PA        GO:0003824        GO:0008152                               
BGIBMGA001976-PA        GO:0018149                                       
BGIBMGA010922-PA        GO:0016021                                       
BGIBMGA008727-PA        GO:0005509        GO:0003824        GO:0008152                       
BGIBMGA009945-PA        GO:0003676        GO:0005622        GO:0008270        GO:0005524        GO:0016887       
BGIBMGA006678-PA        GO:0003676        GO:0005622        GO:0008270        GO:0003735        GO:0005840        GO:0006412
BGIBMGA010701-PA        GO:0006812        GO:0008324        GO:0016020                       
BGIBMGA008436-PA        GO:0003779        GO:0017048        GO:0030036        GO:0016043               
BGIBMGA008910-PA        GO:0004180        GO:0006508        GO:0004182




以上是我的GO 库的数据格式

我如果有以下这些基因名,就把GO库的相应信息提取出来,如果GO库里没有相应的基因名,就直接为空就可以(比如说BGIBMGA012345-PA)!

BGIBMGA006942-PA                
BGIBMGA012123-PA                        
BGIBMGA001976-PA                        
BGIBMGA010922-PA          
BGIBMGA009945-PA         
BGIBMGA012345-PA


提取的GO 号
BGIBMGA006942-PA        GO:0003676        GO:0005622        GO:0008270                       
BGIBMGA012123-PA        GO:0003824        GO:0008152                               
BGIBMGA001976-PA        GO:0018149                                       
BGIBMGA010922-PA        GO:0016021                                       
BGIBMGA009945-PA        GO:0003676        GO:0005622        GO:0008270        GO:0005524        GO:0016887       
BGIBMGA012345-PA

论坛徽章:
0
2 [报告]
发表于 2011-05-08 21:13 |只看该作者
顶一个!

论坛徽章:
0
3 [报告]
发表于 2011-05-08 21:15 |只看该作者
求高手速来围观啊

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
4 [报告]
发表于 2011-05-08 21:53 |只看该作者
你这个 GO 库 文件有多大啊,不是很大的话用个 hash 就行了。悬赏太不给力了,好歹弄个两位数啊

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
5 [报告]
发表于 2011-05-09 08:37 |只看该作者
回复 4# zhlong8


    同意...楼主老让别人给楼主打工,别人也要工作啊...

论坛徽章:
0
6 [报告]
发表于 2011-05-09 09:34 |只看该作者
open (FH,'gene.txt') || die "$!";
open (IN,'go.txt') || die "$!";
my %seq;
while (<FH>) {
     chomp;
     if (/^BGIBMGA\d+\-PA/) {
        $seq{$&} = $_;
     }
}
close FH;

while (<IN>) {
   chomp;
   if (exists $seq{$_}) {
       print "$seq{$_}\n";
   }
   else {
       print "$_\n";
   }
}
close IN;

论坛徽章:
0
7 [报告]
发表于 2011-05-09 10:05 |只看该作者
回复  zhlong8


    同意...楼主老让别人给楼主打工,别人也要工作啊...
chenhao392 发表于 2011-05-09 08:37



    同意。楼主应该自己先写一个程序,哪怕是错误一大堆呢。然后别人给你改一下。这样你自己也有提高,别人的帮助也有价值。现在你是求现成的程序,处理完了就不用了,你自己没有任何提高。别人的帮助也没有什么价值。
我知道你很忙,可时间总是能挤出来的。
其实你求的程序对于我来说可能有点难,但是对于版上的众多高手来说根本不算什么。他们不愿帮你的原因可能也在这里。

论坛徽章:
0
8 [报告]
发表于 2011-05-09 10:08 |只看该作者
我自己乱写的,呵呵,看看可以不?里面那个GO是你的那个文本文件。

#!/usr/bin/perl
use strict;
use warnings;
use 5.010;

say "Enter you GO's name here: ";
chomp(my $go_name = <STDIN>;
my $file = "/root/perl/GO";
my @temp;
my %ghash;
open(GO,"<","$file" || die "Can't open target files!\n";
while (<GO> {
         @temp = split(" ",$_);
         print if /\b$go_name\b/;

}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP