+ -
当前位置:首页 → 问答吧 → bioperl的朋友们,求perl程序啊!

bioperl的朋友们,求perl程序啊!

时间:2011-05-05

来源:互联网

本帖最后由 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)

下载次数:2

2011-05-05 14:38

作废

序列提取.zip (1.07 MB)

下载次数:0

2011-05-05 14:44

作废

序列提取.zip (1.07 MB)

下载次数:0

2011-05-05 14:45

作废

序列提取.zip (1.07 MB)

下载次数:6

2011-05-05 15:03

有效

序列提取.zip (1.07 MB)

下载次数:1

2011-05-05 15:05

有效

作者: aids260   发布时间: 2011-05-05

顶顶

作者: aids260   发布时间: 2011-05-05

看看 Bio::SeqIO 和 Bio::Seq的文档,最多半天就搞定了。

作者: longbow0   发布时间: 2011-05-05

顶啊,在改论文啊,哥们,呵呵

作者: aids260   发布时间: 2011-05-05

楼主加油了,perl很强大

作者: 落英飘风香   发布时间: 2011-05-05

  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学好,工欲善其事 必先利其器嘛。

作者: iamlimeng   发布时间: 2011-05-05