免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: little_joe

perl新手求教...求教......文件匹配输出指定内容,非常感谢 [复制链接]

论坛徽章:
0
发表于 2016-09-02 08:44 |显示全部楼层
回复 10# sunzhiguolu
又麻烦您了,O(∩_∩)O谢谢,

论坛徽章:
0
发表于 2016-09-20 21:33 |显示全部楼层
写一个~
  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. open DATA_1, '<', 'a.txt' or die "Can't open: $!";
  5. open DATA_2, '<', 'b.faa' or die "Can't open: $!";

  6. my (%pro_seqID, $seqID);
  7. while (<DATA_1>) {
  8.         chomp;
  9.         if (/(WP.*?);/) {
  10.                 $seqID = $1;
  11.                 next;
  12.         }
  13.         push @{ $pro_seqID{$seqID} }, $_;
  14. }
  15. close DATA_1;

  16. local $/ = "\n>";
  17. while (<DATA_2>) {
  18.         chomp;
  19.         s/^>//;
  20.         if ( my @id = m/_(WP.*?\.\d)_/ ) {
  21.                 my $id = shift @id;
  22.                 s/^.*\]//;                       
  23.                 my $pro_seq = join "", split;                       
  24.                 if ( exists $pro_seqID{$id} ) {
  25.                         my %cal_str;
  26.                         my $part_str = substr( $pro_seq, ( $pro_seqID{$id}->[0] - 1 ),
  27.                                 ( $pro_seqID{$id}->[1] - $pro_seqID{$id}->[0] ) +1 );
  28.                         my @chr = $part_str =~ m/^(\w).*(\w)$/;
  29.                         $cal_str{$_}++ for @chr;
  30.                         print $id, " ", $_, ": ", $cal_str{$_}, "\n" for ( sort keys %cal_str );
  31.                 }
  32.         }
  33.         print "\n";
  34. }
  35. close DATA_2;
复制代码

处理fasta文件如果大同小异的话,直接写个子程序,以后方便自己调用就好~

论坛徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之德黑兰石油
日期:2015-07-15 08:46:452015亚冠之平阳省
日期:2015-11-08 16:27:53白银圣斗士
日期:2015-11-14 09:58:12
发表于 2016-09-21 09:04 |显示全部楼层
回复 13# 华小飞_Perl

处理fasta格式有现成的包  BioPerl中的Bio::SeqIO模块就可以了

论坛徽章:
0
发表于 2016-09-21 13:49 |显示全部楼层
回复 14# b114213903

听过Bioperl,有的话就直接拿来用了,谢谢提醒。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP