Я хочу извлечь старые имена fasta, которые выглядят примерно так:
>Bartonella bibbi
AUUCCGGUUGAUCCUGCCGGAGGCCACUGCUAUCGGGGUCCG
Новые заголовки должны выглядеть следующим образом:
>Seq1
AUUCCGGUUGAUCCUGCCGGAGGCCACUGCUAUCGGGGUCCG
и так далее ...Бартонелла Бибби должна быть сохранена вместе с новым именем Seq1 в новом файле и так далее.Итак, я начал с поиска строк с>, а затем разделился, чтобы получить массив, чтобы получить старое имя.Я не знаю, как продолжить, потому что я хочу здесь две вещи: сначала вставить туда новое имя, а также извлечь старое имя вместе с новым в файл, а также получить выходной файл с моей последовательностью и моимновые имена.Пожалуйста, любой ввод от вас поможет!
#!/usr/bin/perl
use warnings;
use strict;
my $infile = $ARGV[0];
open my $IN, '<', $infile or die "Could not open $infile: $!, $?";
while (my $line = <$IN>) {
if ($line =~ /^>/) {
my @header = split (/\>/, $line);
my $oldfasta = "$header[1]";
}
}
Итак, после некоторых изменений, это текущий скрипт:
#!/usr/bin/perl
use warnings;
use strict;
my $infile = $ARGV[0];
open my $IN, '<', $infile or die "Could not open $infile: $!, $?";
my $seqid = 1;
my %id;
while (my $line = <$IN>) {
if ($line =~ /^>/) {
$id{"Seq$seqid "} = $line;
print ">Seq$seqid\n";
$seqid++
} else {
print $line;
}
}
my $outfile = 'output';
open my $OUT, '>', $outfile or die "Could not open $outfile: $!, $?"; # overwrites the file $outfile;
print $OUT %id;
Это дает мне файл, который выглядит следующим образом:
Seq29 >Sulfophobococcus_zilligii
Seq20 >Pyrococcus_shinkaii
и так далее.Они не в порядке, как мне отсортировать их и избавиться от> в названии вида?