Bioinformatiikan ohjelmointikurssi Tentti 24.2.2005
- Selitä mitä tekevät seuraavat koodin pätkät (joukossa yksi python-koodikin):
a) while(<>) {print}
b) s/^(\S+)\s(\[acgtACGT]+)/$21/e;
c) use strict;
my @list=(1,2,4,5,6);
my @list2 = map {if($_%2){$_*2} else {$_}} @list;
print "@list\n@list2";
d) my %sample=( org=>"Homo Sapiens",weight=>"45",width=>"45");
print keys %sample,"\n";
print values %sample,"\n";
my %revs=reverse %sample;
print keys %revs,"\n";
print values %revs,"\n";
e) def funktio (x,y,z):
return x+y-z
print funktio(2,3,5)
print funktio(z=2,y=3,x=5)
f) sub funktio {
my ($x,$y,$f)=@_;
return &$f($x,$y);
}
my @operations=(sub {my ($a,$b)=@_;$a*$b}, sub {my($a,$b)=@_;$a+$b},
sub {my ($a,$b)=@_;$a-$b});
foreach my $oper (@operations) {
print funktio(2,3,$oper),"\n";
}
- Tee aliohjelma, joka tuottaa DNA-sekvenssin käänteisen komplementin.
- Tee ohjelma, joka lukee komentoriviparametrina annettujen PDB-tiedostonimiä vastaavista tiedostoista kolmikirjaimiset proteiinisekvenssit ja tuottaa vastaavat yksikirjaimiset proteiinisekvenssit. Formaatti on kuvattu liitteessä SEQRES.
Voidaan olettaa, että valmiina on demoissakin usein esiintynyt three2one-aliohjelma, joka muuntaa kolmikirjaimisen aminohappokoodin yksikirjaimiseksi.