zoukankan      html  css  js  c++  java
  • *.efasta to fasta format transformation

    #/*******************************************************************************
    # * Author : HaoTan
    # * Email : tanhao2013@foxmail.com
    # * Last modified : 2013-03-05 13:01
    # * Filename : efa2fa.pl
    # * *****************************************************************************/
    #!/usr/bin/perl
    use Bio::SeqIO;
    use Data::Dumper;
    
    die("perl $0 in.efasta >out.fasta\n")unless(@ARGV == 1);
    open(FH,"<$ARGV[0]");
    
    my $e_seq = Bio::SeqIO->new( -format => 'Fasta', -fh => \*FH|| \*STDIN );
    
    while((my $seq_obj = $e_seq->next_seq())){
        my $id  = $seq_obj->id;
        my $seq = $seq_obj->seq;
    
        my @block = split(/\{|\}/,$seq,);
        my $tseq = "";
        foreach my $t (@block){
            if($t =~ /,/){
                my %hash = map{ $_ => length($_)} (split(/\,/,$t));
                $tseq .= (sort{$hash{$b} <=> $hash{$a}}(keys %hash))[0];
            }else{
                $tseq .= $t;
            }
        }
    
        my $hn  = (scalar(@block)-1)/2;
        my $len = length($tseq);
        $tseq =~ s/(.{100})/$1\n/ig;
    
        print ">$id\t$hn\t$len\n$tseq\n";
    }
    tanhao2013@foxmail.com || http://weibo.com/buttonwood
  • 相关阅读:
    突破
    leetcode刷题 538~
    leetcode刷题 519~
    Docker练习之镜像更新方法1
    十二 Linux之tar解压缩
    十一 Linux软件包管理yum
    十 Linux指令之grep
    九 linux指令之find
    八 Linux ps指令查看进程和kill杀进程
    七 Linux top命令
  • 原文地址:https://www.cnblogs.com/buttonwood/p/2944146.html
Copyright © 2011-2022 走看看