Wie kann ich ein Datensatztrennzeichen verwenden und dann gleichzeitig ein Trennzeichen für untergeordnete Datensätze verwenden? Vielleicht ist das nicht der beste Weg, darüber nachzudenken, was ich zu tun versuche. Hier ist mein Ziel:Datensatztrennzeichen in einem Datensatztrennzeichen
Ich möchte eine while-Schleife auf einem einzelnen Tab abgegrenzten Element zu einer Zeit, in einer bestimmten Reihe von Elementen. Für jede Zeile (Zeile) von tabulatorgetrennten Elementen muss ich die Ergebnisse aller while-Schleifen in eine eindeutige Datei drucken. Lassen Sie die folgenden Beispiele zur Klärung beitragen.
Meine Eingabedatei wird ungefähr wie folgt aussehen.
#!/usr/bin/perl
use warnings;
use strict;
open(INFILE, "<", "Clustered_Barcodes.txt") or die $!;
my %hash = (
"TTTATGC" => "TATAGCGCTTTATGCTAGCTAGC",
"TTTATGG" => "TAGCTAGCTTTATGGGCTAGCTA",
"TTTATCC" => "GCTAGCTATTTATCCGCTAGCTA",
"TTTATCG" => "TAGCTAGCTTTATCGCGTACGTA",
"TTTATAA" => "TAGCTAGCTTTATAATAGCTAGC",
"TTTATAA" => "ATCGATCGTTTATAACGATCGAT",
"TTTATAT" => "TCGATCGATTTATATTAGCTAGC",
"TTTATAT" => "TAGCTAGCTTTATATGCTAGCTA",
"TTTATTA" => "GCTAGCTATTTATTATAGCTAGC",
"CTTGTAA" => "ATCGATCGCTTGTAACGATTAGC",
);
while(<INFILE>) {
$/ = "\n";
my @lines = <INFILE>;
open my $out, '>', "Clustered_Barcode_$..fasta" or die $!;
foreach my $sequence (@lines){
if (exists $hash{$sequence}){
print $out ">$sequence\n$hash{$sequence}\n";
}
}
}
Meine gewünschte Ausgabe drei verschiedene Dateien wäre: Es wird "Clustered_Barcodes.txt"
TTTATGC TTTATGG TTTATCC TTTATCG
TTTATAA TTTATAA TTTATAT TTTATAT TTTATTA
CTTGTAA
Mein Perl-Code sieht wie folgt genannt. Die erste Datei „Clustered_Barcode_1.fasta“ genannt werden und wird wie folgt aussehen:
>TTTATGC
TATAGCGCTTTATGCTAGCTAGC
>TTTATGG
TAGCTAGCTTTATGGGCTAGCTA
>TTTATCC
GCTAGCTATTTATCCGCTAGCTA
>TTTATCG
TAGCTAGCTTTATCGCGTACGTA
Beachten Sie, dass diese so formatiert ist, dass die Schlüssel von einer Karotte voraus sind, und dann in der nächsten Zeile ist die längere Sequenz zugeordnet (Wert). Diese Datei enthält alle Sequenzen in der ersten Zeile des Clustered_Barcodes.txt
Meine dritte Datei sollte „Clustered_Barcode_3.fasta“ genannt werden und wie folgt aussehen:
>CTTGTAA
ATCGATCGCTTGTAACGATTAGC
Wenn ich meinen Code ausführen, ist es nur nimmt die zweite und dritte Sequenzzeile in der Eingabedatei. Wie kann ich mit der ersten Zeile beginnen (indem Sie die \ n Anforderung für ein Datensatztrennzeichen entfernen)? Wie kann ich dann jeden Artikel auf einmal bearbeiten und dann die Ergebnisse der Zeile in eine Datei drucken? Auch wenn es eine Möglichkeit gibt, die Anzahl der Sequenzen in den Dateinamen zu integrieren, wäre das großartig. Es würde mir helfen, die Dateien später nach Größe zu organisieren. Zum Beispiel könnte der Name etwas wie "Clusterd_Barcodes_1_File_3_Sequences.fasta" sein.
Danke euch allen.
Gibt es eine Möglichkeit, dies zu ändern, so dass der Name der Ausgabedatei die Anzahl der Zeilen in der Datei enthält? Zum Beispiel wären in der Ausgabedatei "Clustered_Barcode_3_2_rows.fasta" nur 2 Zeilen und in der Ausgabedatei "Clustered_Barcode_2_4_rows.fasta" wären 4 Zeilen vorhanden. Vielen Dank, – Rob