如何将Emboss:Palindrome的输出转换为gff / bed文件(Perl)

时间:2019-11-25 10:42:26

标签: perl palindrome emboss gff

很抱歉,我问了一个愚蠢的问题,但我自己找不到。。。我前一阵子学会了perl,我有点迷茫。

我想转换这种输出:

Palindromes of:  seq1 
Sequence length is: 24 
Start at position: 1
End at position: 24
Minimum length of Palindromes is: 6 
Maximum length of Palindromes is: 12 
Maximum gap between elements is: 6 
Number of mismatches allowed in Palindrome: 0



Palindromes:
1        aaaaaaaaaaa       11
         |||||||||||
24       ttttttttttt       14




Palindromes of:  seq2 
Sequence length is: 15 
Start at position: 1
End at position: 15
Minimum length of Palindromes is: 6 
Maximum length of Palindromes is: 12 
Maximum gap between elements is: 6 
Number of mismatches allowed in Palindrome: 0



Palindromes:
1        aaaaaac        7
         |||||||
15       ttttttg        9

放入gff或bed文件:

seq1  1   24
seq2  1   15

我找到了一个可以执行此操作的perl模块:https://metacpan.org/pod/Bio::Tools::GFF

这是我的小脚本:

#!/usr/bin/perl
use strict;
use warnings 'all';
use Bio::Tools::EMBOSS::Palindrome;
use Bio::Tools::GFF;

my $filename = "truc.pal";
# a simple script to turn palindrome output into GFF3

my $parser = Bio::Tools::EMBOSS::Palindrome->new(-file => $filename);
my $out    = Bio::Tools::GFF->new(-gff_version => 3,
                                 -file => ">$filename.gff");
while( my $seq = $parser->next_seq ) {
   for my $feat ( $seq->get_SeqFeatures ) {
      $out->write_feature($feat);
   }
}

这是结果:

##gff-version 3
seq1       palindrome      similarity      14      24      .       -       1       allowed_mismatches=0;end=24;maximum gap=6;maximum_length=12;minimum_length=6;seqlength=24;start=1
seq2       palindrome      similarity      9       15      .       -       1       allowed_mismatches=0;end=15;maximum gap=6;maximum_length=12;minimum_length=6;seqlength=15;start=1

问题是:我希望得到回文的开始和结束以及最后一行中的特定位置的结果。

我想要的例子:

##gff-version 3
seq1       palindrome      similarity      1      24      .       -       1       mismatches=0;gap_positions=11-14;gap_size=3
seq2       palindrome      similarity      1      15      .       -       1       mismatches=0;gap_positions=7-9;gap_size=2

谢谢。

0 个答案:

没有答案