Ich bin sehr neu in Perl und Programmierung im Allgemeinen. Ich habe in den letzten paar Tagen nach der Anzahl der Pattern Matches gesucht; Ich hatte es schwer, andere Lösungen zu verstehen und sie auf den Code anzuwenden, den ich bereits geschrieben habe.Zählen der Anzahl der Muster entspricht in Perl
Grundsätzlich habe ich eine Sequenz und ich brauche alle Muster zu finden, die passen [TC] C [CT] GGAAGC
Ich glaube, ich habe diesen Teil nach unten. aber ich bleibe beim Zählen der Anzahl der Vorkommen jeder Musterübereinstimmung. Kann jemand den Code bearbeiten, den ich bereits habe? Jeder Rat ist willkommen. Vielen Dank!
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
# open fasta file for reading
unless(open(FASTA, "<", '/scratch/Drosophila/dmel-all-chromosome- r6.02.fasta')) {
die "Can't open dmel-all-chromosome-r6.02.fasta for reading:", $!;
}
#split the fasta record
local $/ = ">";
#scan through fasta file
while (<FASTA>) {
chomp;
if ($_ =~ /^(.*?)$(.*)$/ms) {
my $header = $1;
my $seq = $2;
$seq =~ s/\R//g; # \R removes line breaks
while ($seq =~ /([TC]C[CT]GGAAGC)/g) {
print $1, "\n";
}
}
}
-Update, ich habe in unten in dem Code
my @matches = $seq =~ /([TC]C[CT]GGAAGC)/g;
print scalar @matches;
hinzugefügt. Es scheint jedoch vor jeder Musterübereinstimmung 0 auszugeben, anstatt die Gesamtsumme aller Musterübereinstimmungen auszugeben.
Edit: Ich brauche die Ausgabe, um jemals Muster Übereinstimmung gefunden zu finden. Ich brauche es auch, um die Gesamtzahl der gefundenen Übereinstimmungen zu finden. Zum Beispiel:
CCTGGAAGC
TCTGGAAGC
TCCGGAAGC
3 Spiele gefunden
Bitte vandalisiere deinen eigenen Post nicht. – Dom
Verfälschen Sie Ihre Fragen nicht –