1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
print "Geben Sie eine Nukleotidsequenz ein:\n" ; $Nuk = <STDIN> ; chomp $Nuk ; $EcoRI =~ /GATTCC/i ; $BamHI =~ /GGATCC/i ; $HindIII =~ /AAGCTT/i ; $HaeIII =~ /GGCC/i ; $NdeI =~ /CATATG/i ; $SmaI =~ /CCCGGG/i ; $PvuI =~ /CGATCG/i ; $SphI =~ /GCATGC/i ; if($Nuk eq $EcoRI) { print "Die Restriktionsenzymschnittstelle für EcoRI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für EcoRI ist NICHT vorhanden"; } } if($Nuk eq $BamHI) { print "Die Restriktionsenzymschnittstelle für BamHI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für BamHI ist NICHT vorhanden"; } } if($Nuk eq $HindIII) { print "Die Restriktionsenzymschnittstelle für HindIII ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für HindIII ist NICHT vorhanden"; } } if($Nuk eq $HaeIII) { print "Die Restriktionsenzymschnittstelle für HaeIII ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für HaeIII ist NICHT vorhanden"; } } if($Nuk eq $NdeI) { print "Die Restriktionsenzymschnittstelle für NdeI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für NdeI ist NICHT vorhanden"; } } if($Nuk eq $SmaI) { print "Die Restriktionsenzymschnittstelle für SmaI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für SmaI ist NICHT vorhanden"; } } if($Nuk eq $PvuI) { print "Die Restriktionsenzymschnittstelle für PvuI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für PvuI ist NICHT vorhanden"; } } if($Nuk eq $SphI) { print "Die Restriktionsenzymschnittstelle für SphI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für SphI ist NICHT vorhanden"; } } exit ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
print "Geben Sie eine Nukleotidsequenz ein:\n" ; $Nuk = <STDIN> ; chomp $Nuk ; # Regex erzeugen $EcoRI = qr/GATTCC/i ; $BamHI = qr/GGATCC/i ; $HindIII = qr/AAGCTT/i ; $HaeIII = qr/GGCC/i ; $NdeI = qr/CATATG/i ; $SmaI = qr/CCCGGG/i ; $PvuI = qr/CGATCG/i ; $SphI = qr/GCATGC/i ; if($Nuk =~ $EcoRI) { # falls ein Teil in $Nuk dem Regex in $EcoRI entspricht print "Die Restriktionsenzymschnittstelle für EcoRI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für EcoRI ist NICHT vorhanden"; } } if($Nuk =~ $BamHI) { print "Die Restriktionsenzymschnittstelle für BamHI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für BamHI ist NICHT vorhanden"; } } if($Nuk =~ $HindIII) { print "Die Restriktionsenzymschnittstelle für HindIII ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für HindIII ist NICHT vorhanden"; } } if($Nuk =~ $HaeIII) { print "Die Restriktionsenzymschnittstelle für HaeIII ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für HaeIII ist NICHT vorhanden"; } } if($Nuk =~ $NdeI) { print "Die Restriktionsenzymschnittstelle für NdeI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für NdeI ist NICHT vorhanden"; } } if($Nuk =~ $SmaI) { print "Die Restriktionsenzymschnittstelle für SmaI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für SmaI ist NICHT vorhanden"; } } if($Nuk =~ $PvuI) { print "Die Restriktionsenzymschnittstelle für PvuI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für PvuI ist NICHT vorhanden"; } } if($Nuk =~ $SphI) { print "Die Restriktionsenzymschnittstelle für SphI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für SphI ist NICHT vorhanden"; } } exit ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
use strict; use warnings; use 5.010; # Funktionen für modernes Perl aktivieren say "Geben Sie eine Nukleotidsequenz ein:\n"; my $Nuk = <STDIN>; chomp $Nuk; # Regex erzeugen my $EcoRI = qr/GATTCC/i; my $BamHI = qr/GGATCC/i; my $HindIII = qr/AAGCTT/i; my $HaeIII = qr/GGCC/i; my $NdeI = qr/CATATG/i; my $SmaI = qr/CCCGGG/i; my $PvuI = qr/CGATCG/i; my $SphI = qr/GCATGC/i; if ( $Nuk =~ $EcoRI ) { # falls ein Teil in $Nuk dem Regex in $EcoRI entspricht say "Die Restriktionsenzymschnittstelle für EcoRI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für EcoRI ist NICHT vorhanden"; } if ( $Nuk =~ $BamHI ) { say "Die Restriktionsenzymschnittstelle für BamHI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für BamHI ist NICHT vorhanden"; } if ( $Nuk =~ $HindIII ) { say "Die Restriktionsenzymschnittstelle für HindIII ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für HindIII ist NICHT vorhanden"; } if ( $Nuk =~ $HaeIII ) { say "Die Restriktionsenzymschnittstelle für HaeIII ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für HaeIII ist NICHT vorhanden"; } if ( $Nuk =~ $NdeI ) { say "Die Restriktionsenzymschnittstelle für NdeI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für NdeI ist NICHT vorhanden"; } if ( $Nuk =~ $SmaI ) { say "Die Restriktionsenzymschnittstelle für SmaI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für SmaI ist NICHT vorhanden"; } if ( $Nuk =~ $PvuI ) { say "Die Restriktionsenzymschnittstelle für PvuI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für PvuI ist NICHT vorhanden"; } if ( $Nuk =~ $SphI ) { say "Die Restriktionsenzymschnittstelle für SphI ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für SphI ist NICHT vorhanden"; } exit;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
my %abfragen = ( EcoRI => qr/GATTCC/i, BamHI => qr/GGATCC/i, HindIII => qr/AAGCTT/i, HaeIII => qr/GGCC/i, NdeI => qr/CATATG/i, SmaI => qr/CCCGGG/i, PvuI => qr/CGATCG/i, SphI => qr/GCATGC/i, ); # Achtung, willkürliche Reihenfolge for my $abfrage (keys %abfragen) { if ($Nuk =~ $abfragen{$abfrage}) { say "Die Restriktionsenzymschnittstelle für $abfrage ist vorhanden"; } else { say "Die Restriktionsenzymschnittstelle für $abfrage ist nicht vorhanden"; } }
2013-06-13T10:10:33 AnonymusAlso von dem was GwenDragon geschrieben hat das qr vor der mustererkennung. Aber den Klammerfehler find ich trotzdem nicht
1 2 3 4 5 6
#falsch if($Nuk =~ $EcoRI) { # falls ein Teil in $Nuk dem Regex in $EcoRI entspricht print "Die Restriktionsenzymschnittstelle für EcoRI ist vorhanden"; else {"Die Restriktionsenzymschnittstelle für EcoRI ist NICHT vorhanden"; } #Diese Klammer muß vor das else }
1 2 3 4 5 6 7
#richtig if($Nuk =~ $EcoRI) { # falls ein Teil in $Nuk dem Regex in $EcoRI entspricht print "Die Restriktionsenzymschnittstelle für EcoRI ist vorhanden"; } else { print "Die Restriktionsenzymschnittstelle für EcoRI ist NICHT vorhanden"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use strict; use warnings; use 5.010; # Funktionen für modernes Perl aktivieren say "Geben Sie eine Nukleotidsequenz ein:"; my $Nuk = <STDIN>; #my $Nuk = 'GATTCCTTGACGATTCCCAGTCATATGGATCGATTCCTCAGCATATGA'; # nur zum test chomp $Nuk; say "Geben Sie Restriktionsenzyme (mehrere getrennt druch Leerzeichen) ein:"; my $Restriktenz = <STDIN>; #my $Restriktenz = 'GATTCC CATATG'; # nur zum test chomp $Restriktenz; # Liste Restriktionsenzyme als Hash my (@restriktenz) = split /\s+/,$Restriktenz; my %found; for my $res (@restriktenz) { my (@num) = ($Nuk =~ /($res)/gi); $found{$res} = scalar @num; } say "$_ wurde " . $found{$_} . "mal gefunden" # sortiert nach Restriktionsenzym for sort keys %found;
2013-06-14T15:00:57 Anonymusist es möglich die Nukleotidsequenz durch die eingegebenen Restriktionsenzyme schneiden zu lassen (...)
1 2 3 4 5 6
my $big_dna = 'TGAACCCGGGATTTGAGATTCCGGGGTTAAAAACGATTGAACCCGGGATTTGAGATTCCGGGGTTAAAAA'; my $cutter = 'GATT'; $big_dna =~ s/$cutter/#/g; my (@cutted_parts) = split /#/,$big_dna;
1 2 3 4
my $big_dna = 'TGAACCCGGGATTTGAGATTCCGGGGTTAAAAACGATTGAACCCGGGATTTGAGATTCCGGGGTTAAAAA'; my $cutter = 'GATT'; my @cutted_parts = split /\Q$cutter\E/,$big_dna;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; my $big_dna = 'TGAACCCGGGATTTGAGATTCCGGGGTTAAAAACGATTGAACCCGGGATTTGAGATTCCGGGGTTAAAAA'; my $cutter = 'GATT'; my @cutted_parts; my $cutter_length=length($cutter); my $pos=0; while( (my $p=index($big_dna,$cutter,$pos)) > -1 ) { push(@cutted_parts, substr($big_dna,$pos,$p-$pos) ); $pos=$p+$cutter_length; } push(@cutted_parts,substr($big_dna,$pos)) if($pos<length($big_dna)); print "$_\n" for(@cutted_parts);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; my $big_dna = 'TGAACCCGGGATTTGAGATTCCGGGGTTAAAAACGATTGAACCCGGGATTTGAGATTCCGGGGTTAAAAA'; my $cutter = 'GATT'; my @cutted_parts; { open(my $vh, '<', \$big_dna); local $/=$cutter; @cutted_parts=<$vh>; chomp(@cutted_parts); close($vh); } print "$_\n" for(@cutted_parts);
say "YAY! ".$found{$_} for sort keys %found;