Pokaż wyniki 1 do 8 z 8

Temat: (Perl) prosty programik. co robie zle

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. Domyślnie programik

    Witam wszystkich. Mam na zaliczenie zrobic programik. No i zrobilem tylko nie wiem co zle zrobilem...

    Zadanie 7.
    Oblicz stopień identyczności dwóch sekwencji A i B (DNA,
    RNA lub białka) w odniesieniu:
    a. globalnym
    b. lokalnym.
    Dane wejściowe:
    dwie sekwencje DNA: A i B
    Wskazówki:
    ad a L = 2*(liczba zgodnych jednostek)/(liczba jednostek A + liczba jednostek B)
    ad. b L = (liczba zgodnych jednostek)/(liczba jednostek krótszej sekwencji)


    print "Program do obliczania stopnia identycznosci","\n";
    print "Wprowadz nazwe pliku z porownywana sekwencja nr1: ","\n";
    $plik1=<>;
    chomp $plik1;
    open (SEKW, "<$plik1");
    $s1='';
    while ($sek1=<SEKW>) {
    if ($sek1=~/^[ACTG]/i) {chomp $sek1; $s1=$s1.$sek1};
    }
    print "Wprowadz nazwe pliku z porownywana sekwencja nr2: ","\n";
    $plik2=<>;
    chomp $plik2;
    open(SEKW2, "< $plik2"),"\a";
    $s2='';
    while ($sek2=<SEKW2>) {
    if ($sek2=~/^[ACTG]/i) {chomp $sek2; $s2=$s2.$sek2};
    }
    #zamiana string ->array-----------------
    @ts1 = split('',$s1);
    $ts1=@ts1;
    @ts2 = split('',$s2);
    $ts2=@ts2;
    #------------------- MACIERZ------------
    $a{A}{A}=1;
    $a{A}{C}=0;
    $a{A}{T}=0;
    $a{A}{G}=0;
    #-------------
    $a{C}{A}=0;
    $a{C}{C}=1;
    $a{C}{T}=0;
    $a{C}{G}=0;
    #-------------
    $a{T}{A}=0;
    $a{T}{C}=0;
    $a{T}{T}=1;
    $a{T}{G}=0;
    #-------------
    $a{G}{A}=0;
    $a{G}{C}=0;
    $a{G}{T}=0;
    $a{G}{G}=1;
    #----------FUNKCJA OBLICZAJACA----------
    if ($ts1<ts2) {
    $koniec = $ts1;
    } else {
    $koniec = $ts2;
    }
    $suma=0;
    for($i = 0;$i <= $koniec;++$i){
    $ss1 = $ts1[$i];
    $ss2 = $ts2[$i];
    $suma = $suma+$a{$ss1}{$ss2};
    };
    print'SUMA:',"\t",$suma,"\n";
    $global=(2*$suma)/($ts1+$ts2);
    print'Stopien podobienstwa w odniesieniu globalnym wynosi: ',$global,"\n";
    $lokal=$suma/$koniec;
    print 'Stopien podobienstwa w odniesieniu lokalnym wynosi: ',$lokal,"\n";

    niestety program nie działa... Prosze o pomoc to bardzo wazne dla mnie
    Ostatnio edytowane przez pawelek4322 : 01-31-2012 - 16:40

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj