Thread Übersetztung von DNA zu Protein für dummies
(4 answers)
Opened by eraemien at 2010-01-06 22:35
Hallo und Willkommen!
Ich fange einfach mal an... Als erstes wäre es gut, wenn Du Dir mal das strict-Pragma anschaust... Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 $DNA = <STDIN>; chomp $DNA; unless(open(DNAFILE, $DNA)){ print "File not found\n\n"; } @DNA = <DNAFILE>; $DNA = join('',@DNA); $DNA =~ s/\s//g; Was hier nicht so "schön" ist: Du benutzt $DNA für zwei unterschiedliche Sachen. Ich würde da lieber eine zweite Variable benutzen. Das erleichtert die Wartbarkeit von Programmen... Dann gibt es mit globalen Filehandles so gewisse Probleme. Siehe auch http://reneeb-perlblog.blogspot.com/2009/09/versch... Ich würde auch nicht die Fehlermeldung "File not found" ausgeben, sondern $!. Das ist eine Spezialvariable von Perl, in der Fehlermeldungen gespeichert werden. Denn das "open" kann aus mehreren Gründen fehlschlagen (z.B. nicht ausreichende Rechte). Quote Ist nicht ganz richtig, da in der RNA das Uracil statt dem Thymin vorkommt. Aber beides zusammen darf nicht vorkommen... Ich würde die Überprüfung, ob RNA oder DNA eher so aufbauen: Ist irgendwas in dem String, das *nicht* A,C,G,T oder U ist ($string =~ /[^ACGTU]/), dann ist es weder RNA noch DNA. Genauso wenn es U *und* T enthält ( index( $string, 'U' ) != 1 and index( $string, 'T' ) != 1 ). Wenn der String dann ein U enthält, dann RNA, sonst DNA. [quote] Code (perl): (dl
)
1 2 3 4 5 #DNA wird in RNA umgeschrieben $RNA = $DNA; $RNA =~ s/T/U/ig;[/perl][/quote] Kürzer, schneller, besser:[code=perl](my $RNA = $DNA) =~ tr/tT/U/; Quote Das würde ich als Hash aufbauen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 my %hash = ( GCU => 'A', GCC => 'A', #... usw ); my %ergebnis; for my $trip ( @triplets ) { my $key = $hash{$trip}; $ergebnis{$key}++; } OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |