So habe ich ein Programm, das zusätzliche Zeilenumbrüche in fasta Dateien kopieren und aus dem Internet eingefügt wird. Wenn Sie nicht wissen, wie eine Fasta-Datei aussehen soll, sollte es ein Größer-als-Symbol gefolgt von etwas sein (das ist normalerweise Titelinfo), dann eine neue Zeile. Die neue Zeile sollte Ihre vollständige Sequenz (für biologische DNA oder Aminosäure) in einer Zeile enthalten und wiederholen.Umgang mit dem einsamen Wagenrücklauf als Ende der Zeile Symbol
Wie auch immer, das Problem ist, ich das Programm muß flexibel genug zu sein, mit etwas zu beschäftigen: \r
, \n
oder \r\n
. Die chomp
-Anweisung mit Unterstrichen auf beiden Seiten ist der Befehl, der die überschüssigen Zeilen im Sequenzabschnitt entfernt. Wie kann ich diesen chomp machen alle drei der Optionen (\r
, \n
, \r\n
) loswerden? Kann ich einstellen und @linefeeds = "\r", "\n", "\r\n";
haben?
Ich habe online gelesen, ich weiß, dass dieses Thema als zuvor behandelt wurde, aber ich kann es einfach nicht scheinen, um es zu arbeiten.
Hier ist mein Code so in einer Datei zu tun:
print "Please enter file name, using the full pathway, to save your cleaned fasta file to:\n";
chomp($new_file = <STDIN>);
open(New_File, "+>$new_file") or die "Couldn't create file. Check permissions on location.\n";
#process the file line by line, chomping all lines that do not contain "greater than" and
#removing all white space from lines that do not contain "greater than"
my $firstline = 1;
while (my $lines = <FASTA>) {
foreach ($lines) {
if (!/>/) {
_chomp($lines);_
$lines =~ s/ //g;
print New_File "$lines";
} else {
if ($firstline == 1) {
print New_File "$lines";
$firstline = 0;
} else {
print New_File "\n$lines";
next;
}
}
}
}
Das Problem mit den Kommentaren war 1) es war eigentlich alle eine Zeile (es gab keine LF vor der zweiten #) und 2) es wurde nicht 4 Leerzeichen eingerückt. – cjm