免费注册 查看新帖 |

Chinaunix

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

bioperl的朋友们,求perl程序啊! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-05 15:02 |只看该作者 |倒序浏览
本帖最后由 aids260 于 2011-05-05 15:09 编辑

按照序列名从序列文件里提取序列(文件在附件里):

序列名的格式是:


BGIBMGA000029-TA
BGIBMGA000074-TA
BGIBMGA000086-TA
BGIBMGA000103-TA
BGIBMGA000062-TA

列文件的格式是这样的:

>pro1/BGIBMGA000062-TA
CGACAGAGGGATGACACTCCGTCCCCATATCAAAACGGTTCGCGACCGTGCCGCCTTCAT
ATTATGCTATGCTTTGCAAGCGAAGCAAACTTTACCTCCGTAATAAGGTAACTCTCTACA
AAACTACAAATGTTCATGATTGACTTCCACAAACCACGGTGAAGGAAGAACATCGTGTAA

不要管前边的”>pro1/“部分,只要和”/“后边的部分对应起来,就把序列提取出来

谢谢了啊!达人

序列提取.zip

1.07 MB, 下载次数: 33

作废

序列提取.zip

1.07 MB, 下载次数: 15

作废

序列提取.zip

1.07 MB, 下载次数: 27

作废

序列提取.zip

1.07 MB, 下载次数: 28

有效

序列提取.zip

1.07 MB, 下载次数: 16

有效

论坛徽章:
0
2 [报告]
发表于 2011-05-05 15:17 |只看该作者
顶顶

论坛徽章:
0
3 [报告]
发表于 2011-05-05 15:23 |只看该作者
看看 Bio::SeqIO 和 Bio::Seq的文档,最多半天就搞定了。

论坛徽章:
0
4 [报告]
发表于 2011-05-05 15:27 |只看该作者
顶啊,在改论文啊,哥们,呵呵

论坛徽章:
0
5 [报告]
发表于 2011-05-05 16:11 |只看该作者
楼主加油了,perl很强大

论坛徽章:
0
6 [报告]
发表于 2011-05-05 16:55 |只看该作者
  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;

  4. my %gene;
  5. open(FH,"序列名.txt");
  6. while (<FH>) {
  7.          chomp;
  8.          $gene{$_} = 1;
  9. }
  10. close FH;

  11. open (WR,">gene_result.txt");
  12. open(FH,"序列.fa");
  13. my $check;
  14. while (<FH>) {
  15.          chomp;
  16.          if (/>/) {
  17.                  my ($dump,$name) = split(/\//,$_);
  18.                  $check = $name;
  19.                  print WR "$_\n" if ($gene{$check});
  20.          }
  21.          elsif ($gene{$check}) { print WR "$_\n"; }
  22. }
  23. close FH;
  24. close WR;
复制代码
楼主既然搞生物,就应该认真把Perl学好,工欲善其事 必先利其器嘛。

论坛徽章:
0
7 [报告]
发表于 2011-05-05 17:28 |只看该作者
LS代码很赞 还要好好学习啊
  1. open FH,"序列名.txt" ||die "can not open file $!\n";

  2. while (<FH>)
  3. {
  4.     chomp();
  5.     GetXuLie($_);
  6. }
  7. close FH;

  8. sub GetXuLie
  9. {
  10.   my $xulieming=shift;
  11.   print "xu lie  is $xulieming\n";
  12.   my $tag=0;
  13.   my $xulie;
  14.   open SH,"序列.fa" ||die "can not open file $!\n";
  15.   while (<SH>)
  16.   {
  17.     if (/$xulieming/)
  18.     {
  19.       $tag=1;
  20.         next;
  21.     }
  22.     if ($tag==1)
  23.     {
  24.      if (/pro\d*/)
  25.      {
  26.        print "$xulie\n";
  27.        close SH;
  28.        last;
  29.      }
  30.      else
  31.      {
  32.        $xulie.=$_;
  33.        next;
  34.      }
  35.     }
  36.     else
  37.     {
  38.       next;
  39.     }
  40.     close SH;
  41.   }
  42. }
复制代码

论坛徽章:
0
8 [报告]
发表于 2011-05-05 19:48 |只看该作者
回复 1# aids260
  1. #!/usr/bin/perl
  2. use Bio::SeqIO;
  3. open my $FH,">>out.txt";
  4. $in  = Bio::SeqIO->new( -format => 'fasta', -file => '序列.fa' );
  5. while ( my $seq = $in->next_seq ) {
  6.     my $id  = $seq->id;
  7.     $id  =~s/-?pro\d{1,}\/(.*)-TA$/$1/g;
  8.     print $FH $id,"\n";
  9. }
  10. close $FH;
复制代码

论坛徽章:
0
9 [报告]
发表于 2011-05-05 20:32 |只看该作者
我也是搞生物信息的,可是到现在也不知道bioperl能做什么。
我一般就是用perl处理数据。

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


    我也是,没用过几个bioperl的东西。
    感觉bioperl很多包很强大,能省不少coding时间...要是熟悉的人,该在写代码前先看看bioperl有没有module吧..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP