如何将PHYLIP格式转换为FASTA

use*_*473 4 perl bioinformatics

我刚开始使用perl,我有一个问题.我有PHYLIP文件,我需要将其转换为FASTA.我开始写一个脚本.首先,我删除了行中的scpaces,现在我需要对齐每行中应该是60个氨基酸的所有行,并且应该在新行中打印sequances识别符.也许有人可以给我一些建议?

Dav*_* L. 6

BioPerl Bio :: AlignIO模块可能有所帮助.它支持PHYLIP序列格式:

phylip2fasta.pl

use strict;
use warnings;
use Bio::AlignIO; 

# http://doc.bioperl.org/bioperl-live/Bio/AlignIO.html
# http://doc.bioperl.org/bioperl-live/Bio/AlignIO/phylip.html
# http://www.bioperl.org/wiki/PHYLIP_multiple_alignment_format

my ($inputfilename) = @ARGV;
die "must provide phylip file as 1st parameter...\n" unless $inputfilename;
my $in  = Bio::AlignIO->new(-file   => $inputfilename ,
                         -format => 'phylip',
                         -interleaved => 1);
my $out = Bio::AlignIO->new(-fh   => \*STDOUT ,
                         -format => 'fasta');

while ( my $aln = $in->next_aln() ) {
    $out->write_aln($aln);
}
Run Code Online (Sandbox Code Playgroud)

$ perl phylip2fasta.pl test.phylip

>Turkey/1-42
AAGCTNGGGCATTTCAGGGTGAGCCCGGGCAATACAGGGTAT
>Salmo_gair/1-42
AAGCCTTGGCAGTGCAGGGTGAGCCGTGGCCGGGCACGGTAT
>H._Sapiens/1-42
ACCGGTTGGCCGTTCAGGGTACAGGTTGGCCGTTCAGGGTAA
>Chimp/1-42
AAACCCTTGCCGTTACGCTTAAACCGAGGCCGGGACACTCAT
>Gorilla/1-42
AAACCCTTGCCGGTACGCTTAAACCATTGCCGGTACGCTTAA
Run Code Online (Sandbox Code Playgroud)

test.phylip http://evolution.genetics.washington.edu/phylip/doc/sequence.html

  5    42
Turkey    AAGCTNGGGC ATTTCAGGGT
Salmo gairAAGCCTTGGC AGTGCAGGGT
H. SapiensACCGGTTGGC CGTTCAGGGT
Chimp     AAACCCTTGC CGTTACGCTT
Gorilla   AAACCCTTGC CGGTACGCTT

GAGCCCGGGC AATACAGGGT AT
GAGCCGTGGC CGGGCACGGT AT
ACAGGTTGGC CGTTCAGGGT AA
AAACCGAGGC CGGGACACTC AT
AAACCATTGC CGGTACGCTT AA
Run Code Online (Sandbox Code Playgroud)

  • 我认为doc.bioperl.org网站可以使用一些工作.将[this](http://doc.bioperl.org/bioperl-live/Bio/AlignIO.html)与[this](https://metacpan.org/module/Bio::AlignIO)进行比较.我认为应该预料到,因为生成它的代码自[2006](http://pdoc.sourceforge.net/)以来没有更新过. (2认同)