Thread my richtig setzen (18 answers)
Opened by Byonik at 2010-06-24 10:28

Gast wer
 2010-06-24 11:55
#138910 #138910
Cosspost
1. http://www.perlboard.de/?id=9969

2.
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
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
86
#!use/bin/perl -w
use strict;
use warnings;

# initalisieren...
my %aa=(
  'S'=>[qw(TCA TCC TCG TCT AGC AGT)],
  'F'=>[qw(TTC TTT)],
  'L'=>[qw(TTA TTG CTA CTC CTG CTT)],
  'Y'=>[qw(TAC TAT)],
  '_'=>[qw(TAA TAG)],
  'C'=>[qw(TGC TGT TGA)],
  'W'=>[qw(TGG)],
  'P'=>[qw(CCA CCC CCG CCT )],
  'H'=>[qw(CAC CAT)],
  'Q'=>[qw(CAA CAG)],
  'R'=>[qw(CGA CGC CGG CGT AGA AGG)],
  'I'=>[qw(ATA ATC ATT)],
  'M'=>[qw(ATG)],
  'T'=>[qw(ACA ACC ACG ACT)],
  'N'=>[qw(AAC AAT)],
  'K'=>[qw(AAA AAG)],
  'V'=>[qw(GTA GTC GTG GTT)],
  'A'=>[qw(GCA GCC GCG GCT)],
  'D'=>[qw(GAC GAT)],
  'E'=>[qw(GAA GAG)],
  'G'=>[qw(GGA GGC GGG GGT)],
);

# daten umformen
my %codons;
for my $key (keys(%aa))
{ $codons{$_}=$key for(@{$aa{$key}}); }

# von Komandozeile lesen
# oder Nachfragen
my $file=shift(@ARGV);
unless($file)
{
  print "schreibe Dateinamen:  ";
  $file=<STDIN>;
  #Zeilenumbruch abschneiden
  chomp($file);
}

# dna aus Datei lesen
my $dns;
open(my $fh ,'<', $file) || error("ERROR open $file ($!)");
{
  # zeilentrenner ignorieren
  local $/=undef;
  # Alles in Großschreibung wandeln
  $dns=uc(<$fh>);
}
close($fh);

# alles unötige löschen
$dns=~s/[\s\r\n]+//isg;

my $protein ='';
# immer 3 Zeichen vorne abschneiden
while(my $codon=substr($dns,0,3,''))
{
  my $aa=$codons{$codon};
  error(qq(ERROR convert "$codon"!)) unless($aa);
  $protein.=$aa;
}

print "$protein\n";
ende();

########################################################################

sub error
{
  my $msg=shift || '';
  print STDERR "$msg\n";
  <STDIN>;
  exit 1;
}

sub ende
{
  <STDIN>;
  exit;
}

Last edited: 2010-06-24 11:56:27 +0200 (CEST)

View full thread my richtig setzen