Mit meinen (ziemlich) grundlegenden Programmierkenntnissen habe ich ein Skript zusammengestellt, das eine ausgerichtete Multi-Fasta-Datei (eine multiple Sequenzausrichtung) analysiert und alle Daten zwischen zwei angegebenen Spalten extrahiert .Extrahieren und Verbinden von Exons aus mehreren Sequenzalignments
use Bio::SimpleAlign;
use Bio::AlignIO;
$str = Bio::AlignIO->new(-file => $inputfilename, -format => 'fasta');
$aln = $str->next_aln();
$mini = $aln->slice($array[0], $array[1]);
$out = Bio::AlignIO->new(-file => $array[3], -format => 'fasta');
$out->write_aln($mini);
Das Problem ich habe, ist, dass ich mehrere Regionen aus der gleichen Ausrichtung und dann kommen diese Regionen vor dem Schreiben auf eine outfile schneiden können, will. Die Komplikation ist, dass ich eine Datei mit einer Liste von Koordinaten liefern möchte, wobei jede Zeile zwei oder mehr Koordinaten enthält, zwischen denen Daten extrahiert und verknüpft werden sollen. Hier
ist eine Beispiel Koordinatendatei
ORF1, 10, 50, exon1 # The above line should produce a slice between columns 10-50 and write to an outfile
ORF2, 70, 140, exon1
ORF2, 190, 270, exon2
ORF2, 500, 800, exon3 # Data should be extracted between the ranges specified here and in the above two lines and then joined (side by side) to produce the outfile.
ORF3, 1200, 1210, exon1
etc etc
Und hier ist ein (kleines) Beispiel einer ausgerichtete fasta Datei
\>Sample1
ATGGCGACCGTGCACTACTCCCGCCGACCTGGGACCCCGCCGGTCACCCTCACGTCGTCC
CCCAGCATGGATGACGTTGCGACCCCCATCCCCTACCTACCCACATACGCCGAGGCCGTG
GCAGACGCGCCCCCCCCTTACAGAAGCCGCGAGAGTCTGGTGTTCTCCCCGCCTCTTTTT
CCTCACGTGGAGAATGGCACCACCCAACAGTCTTACGATTGCCTAGACTGCGCTTATGAT
GGAATCCACAGACTTCAGCTGGCTTTTCTAAGAATTCGCAAATGCTGTGTACCGGCTTTT
TTAATTCTTTTTGGTATTCTCACCCTTACTGCTGTCGTGGTCGCCATTGTTGCCGTTTTT
CCCGAGGAACCTCCCAACTCAACTACATGA
\>Sample2
ATGGCGACCGTGCACTACTCCCGCCGACCTGGGACCCCGCCGGTCACCCTCACGTCGTCC
CCCAGCATGGATGACGTTGCGACCCCCATCCCCTACCTACCCACATACGCCGAGGCCGTG
GCAGACGCGCCCCCCCCTTACAGAAGCCGCGAGAGTCTGGTGTTCTCCCCGCCTCTTTTT
CCTCACGTGGAGAATGGCACCACCCAACAGTCTTACGATTGCCTAGACTGCGCTTATGAT
GGAATCCACAGACTTCAGCTGGCTTTTCTAAGAATTCGCAAATGCTGTGTACCGGCTTTT
TTAATTCTTTTTGGTATTCTCACCCTTACTGCTGTCGTGGTCGCCATTGTTGCCGTTTTT
CCCGAGGAACCTCCCAACTCAACTACATGA
Ich denke, es sollte eine ziemlich einfache Art und Weise zu lösen Dieses Problem, möglicherweise die Informationen in der ersten Spalte, gepaart mit der Exon-Nummer, aber ich kann nicht für das Leben von mir herauszufinden, wie dies getan werden kann.
Kann mir jemand helfen?