SHARE
TWEET

Untitled

a guest Sep 17th, 2019 88 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7.     <title>Document</title>
  8.  
  9.     <script>
  10.         var ciag =prompt("Podaj ciag DNA")
  11.         ciag = ciag.toUpperCase()
  12.         var tablica = Array()
  13.         var stats = Array()
  14.         var dlugosc = ciag.length
  15.  
  16.         for ( i = 0; i<(dlugosc/3);i++ ){
  17.            
  18.             var tri = (ciag.slice((i*3), (i*3+3)));
  19.            
  20.                     // Tworzymy tablice 2 wymiarową a następnie przy każdym przeskoczeniu pętli 'for'
  21.                     // sprawdzamy czy dany triplet już w niej jest dodany czy tez nie,
  22.                     // jesli nie jest to dodajemy go do nowego rzędu a jeśli jest to zwiększamy o 1 jego ilość (2 kolumna w rzędzie)
  23.                     // odpowiada za to przeskakująca wartość "jest"
  24.                    
  25.                         var jest = false
  26.                         for (var y = 0; y < stats.length; y++){
  27.                             if(stats[y][0] == tri) {                // Jeżeli którś z pierwszych rzędów jest taki sam jak obecnie przetwarzany triplet to dodajemy do 2giej kolumny w tym rzędzie +1
  28.                                 jest = true                         // Jest przeskakuje na true aby nie dodało nam kolejnego rzędu
  29.                                 stats[y][1] = stats[y][1] + 1;      // Zwiększa nam ilość danego tripletu
  30.                             }
  31.                         }
  32.                         if(jest == false) {
  33.                             stats.push(Array(tri, 1));              // Jeżeli nie znalazł pasującego tripletu to tworzy z nim nowy rząd
  34.                         }
  35.  
  36.             if(tri == ("ATG")) {                                                                    // Sprawdzamy czy dany triplet jest tripletem "atg" czy też innym wymaganym
  37.                 tri = "<b><font style='color: #00ff00'>" + tri + "</font></b>";                     //jeśli jest to edytujemy jego styl przy użyciu wrapera
  38.             }
  39.             if(tri == ("TAA") || tri == ("TAG") || tri == ("TGA")) {                                // Sprawdzamy czy dany triplet jest tripletem "atg" czy też innym wymaganym
  40.                 tri = "<font style='background-color: #ffff00'>" + tri + "</font>";                 //jeśli jest to edytujemy jego styl przy użyciu wrapera
  41.             }
  42.  
  43.            
  44.             tablica.push(tri);
  45.         }
  46.  
  47.         document.write(tablica.join(" "))
  48.         document.write("<br><br>")
  49.  
  50.                     // Ta pętla zamienia każdą literke azotową na inną na początku neutralna ( nie występującą w kodzie dna )
  51.                     // po zamienieniu ich na takie które nigdzie nie występują zamienia je z powrotem zgodnie z zasadą nici komplementarnych
  52.                     // bez początkowej zamiany na oznaczenie nie wystepujące w sekwencji mogłoby wyskoczyć sporo błędów wynikających z powielania się symboli
  53.  
  54.         for (i = 0; i < (dlugosc / 3); i++) {
  55.             var triplet = ciag.slice((i * 3), (i * 3 + 3))
  56.             triplet = triplet.replace(/A/g, "p")                    //Zamieniamy litery na neutralne
  57.             triplet = triplet.replace(/T/g, "o")                    //Zamieniamy litery na neutralne
  58.             triplet = triplet.replace(/C/g, "i")                    //Zamieniamy litery na neutralne
  59.             triplet = triplet.replace(/G/g, "u")                    //Zamieniamy litery na neutralne
  60.             triplet = triplet.replace(/p/g, "t")                    //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
  61.             triplet = triplet.replace(/o/g, "a")                    //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
  62.             triplet = triplet.replace(/i/g, "g")                    //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
  63.             triplet = triplet.replace(/u/g, "c")                    //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
  64.             document.write(triplet + " ")
  65.         }
  66.         document.write("<br><br>")
  67.  
  68.  
  69.         stats = stats.sort(function(a,b){                                       // Funkcja która sortuja nam naszą tablice 2 wymiarową
  70.                 return b[1]-a[1];                                               // Szczerze nie  mam pojęcia jak działa, takie coś znalazłem na internecie i działa
  71.             })  
  72.  
  73.  
  74.         for(var i = 0; i<stats.length; i++){                                            // Pętla która powoduje że każda piątka kodonów jest pokolorowana innynm kolorem
  75.             var color = Math.floor(Math.random()*255*255*255).toString(16);             // Linia ta odpowiada za losowanie koloru przy każdym przeskoczeniu pętli, nie wiem jak to działa ale takie coś znalazłem w internecie i działa
  76.             if(i%5 == 0){                                                               // Jeżeli dany rząd jest podzielny przez pięć oznacza to że należy zacząć kolorować triplety innym kolorem
  77.                 document.write("<font style='background-color:#" + color + "'>")
  78.             }
  79.  
  80.             document.write(stats[i][0] + " - " +stats[i][1] + "<br>");                  // Wypisujemy naszą tablice 2 wymiarową
  81.  
  82.         }
  83.        
  84.  
  85.  
  86.  
  87.     </script>
  88.  
  89. </head>
  90. <body>
  91.    
  92. </body>
  93. </html>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top