Unten ist der Code, den ich für die Suche nach einer FASTA-Datei habe, die in der Befehlszeile für ein benutzerdefiniertes Motiv eingegeben wurde. Wenn ich es ausführe und ein Motiv einfüge, von dem ich weiß, dass es sich in der Datei befindet, wird "Motiv nicht gefunden" zurückgegeben. Ich bin nur ein Anfänger in Perl, und ich kann mir nicht vorstellen, wie man das gedruckte Motiv findet, geschweige denn die Titelzeile zurückgibt. Ich würde jede mögliche Hilfe bei der Lösung dieses Problems schätzen.FASTA-Datei für Motiv suchen und Titelzeile für jede Sequenz zurückgeben, die das Motiv enthält
Danke.
use warnings;
use strict;
my $motif;
my $filename;
my @seq;
#my $motif_found;
my $scalar;
$filename = $ARGV[0];
open (DNAFILE,$filename) || die "Cannot open file\n";
@seq = split(/[>]/, $filename);
print "Enter a motif to search for; ";
$motif = <STDIN>;
chomp $motif;
foreach $scalar(@seq) {
if ($scalar =~ m/$motif/ig) {
print "Motif found in following sequences\n";
print $scalar;
} else {
print "Motif was not found\n";
}
}
close DNAFILE;
Bitte schreiben Sie keine Kommentare, die beschreiben, was eine einzelne Zeile Code tut. Sie fügen nichts hinzu. –
Behandelt dies Fasta-Dateien, in denen die DNA-Sequenz über mehrere Zeilen aufgeteilt ist? Ich würde empfehlen, den Fasta-Parser von BioPerl zu verwenden. –