Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  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>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement