Thread X-Spalte entnehmen
(7 answers)
Opened by Skyblader at 2014-06-08 14:14
Ich hoffe, ich versteh das richtig. Du willst je Base, nacheinander die Anzahl in Abfolge.
Das ginge so zusätzlich. Code (perl): (dl
)
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 #!/usr/bin/perl use strict; use warnings; use feature "say"; my $nukletoid_kette = ''; my %basen; while ( my $zeile = <DATA> ) { # Daten aus DATA-Bereuich einlesen chomp $zeile; # Zeilenendezeichen entfernen next if !length $zeile; # Leerzeile überspringen my ( $base, $anzahl ) = $zeile =~ m{([ATGCatgc]):(\d+)}; # Base (Buchstaben ATGC) und Anzahl (mehrere Ziffern) aus Zeichenkette extrahieren $nukletoid_kette .= $base x $anzahl; # Basenabfolge als Zeichenkette (Basenzeichen mal Anzahl) $basen{ $base } = [ ] if not exists $basen{ $base }; # falls Eintrag für Base in Hash noch nicht existent, leeres Array erzeugen push @{ $basen{ $base } }, $anzahl; # Wert in Array schieben } say "Kette: ", $nukletoid_kette; say; say "Basen und Häufigkeitabfolge: "; for ( sort keys %basen ) { say "$_: ", join ( " ", @{ $basen{ $_ } } ); } __DATA__ A:1 T:21 G:10 C:4 A:2 G:1 T:5 A:2 C:7 T:2 A:1 T:1 G:4 Editiert von GwenDragon: Code verschönert, Frage hinzu Last edited: 2014-06-08 19:27:26 +0200 (CEST) |