Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Document</title>
- <script>
- var ciag =prompt("Podaj ciag DNA")
- ciag = ciag.toUpperCase()
- var tablica = Array()
- var stats = Array()
- var dlugosc = ciag.length
- for ( i = 0; i<(dlugosc/3);i++ ){
- var tri = (ciag.slice((i*3), (i*3+3)));
- // Tworzymy tablice 2 wymiarową a następnie przy każdym przeskoczeniu pętli 'for'
- // sprawdzamy czy dany triplet już w niej jest dodany czy tez nie,
- // 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)
- // odpowiada za to przeskakująca wartość "jest"
- var jest = false
- for (var y = 0; y < stats.length; y++){
- 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
- jest = true // Jest przeskakuje na true aby nie dodało nam kolejnego rzędu
- stats[y][1] = stats[y][1] + 1; // Zwiększa nam ilość danego tripletu
- }
- }
- if(jest == false) {
- stats.push(Array(tri, 1)); // Jeżeli nie znalazł pasującego tripletu to tworzy z nim nowy rząd
- }
- if(tri == ("ATG")) { // Sprawdzamy czy dany triplet jest tripletem "atg" czy też innym wymaganym
- tri = "<b><font style='color: #00ff00'>" + tri + "</font></b>"; //jeśli jest to edytujemy jego styl przy użyciu wrapera
- }
- if(tri == ("TAA") || tri == ("TAG") || tri == ("TGA")) { // Sprawdzamy czy dany triplet jest tripletem "atg" czy też innym wymaganym
- tri = "<font style='background-color: #ffff00'>" + tri + "</font>"; //jeśli jest to edytujemy jego styl przy użyciu wrapera
- }
- tablica.push(tri);
- }
- document.write(tablica.join(" "))
- document.write("<br><br>")
- // Ta pętla zamienia każdą literke azotową na inną na początku neutralna ( nie występującą w kodzie dna )
- // po zamienieniu ich na takie które nigdzie nie występują zamienia je z powrotem zgodnie z zasadą nici komplementarnych
- // bez początkowej zamiany na oznaczenie nie wystepujące w sekwencji mogłoby wyskoczyć sporo błędów wynikających z powielania się symboli
- for (i = 0; i < (dlugosc / 3); i++) {
- var triplet = ciag.slice((i * 3), (i * 3 + 3))
- triplet = triplet.replace(/A/g, "p") //Zamieniamy litery na neutralne
- triplet = triplet.replace(/T/g, "o") //Zamieniamy litery na neutralne
- triplet = triplet.replace(/C/g, "i") //Zamieniamy litery na neutralne
- triplet = triplet.replace(/G/g, "u") //Zamieniamy litery na neutralne
- triplet = triplet.replace(/p/g, "t") //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
- triplet = triplet.replace(/o/g, "a") //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
- triplet = triplet.replace(/i/g, "g") //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
- triplet = triplet.replace(/u/g, "c") //Zamieniamy je z powrotem na właściwe odpowiedniki komplementarne
- document.write(triplet + " ")
- }
- document.write("<br><br>")
- stats = stats.sort(function(a,b){ // Funkcja która sortuja nam naszą tablice 2 wymiarową
- return b[1]-a[1]; // Szczerze nie mam pojęcia jak działa, takie coś znalazłem na internecie i działa
- })
- for(var i = 0; i<stats.length; i++){ // Pętla która powoduje że każda piątka kodonów jest pokolorowana innynm kolorem
- 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
- if(i%5 == 0){ // Jeżeli dany rząd jest podzielny przez pięć oznacza to że należy zacząć kolorować triplety innym kolorem
- document.write("<font style='background-color:#" + color + "'>")
- }
- document.write(stats[i][0] + " - " +stats[i][1] + "<br>"); // Wypisujemy naszą tablice 2 wymiarową
- }
- </script>
- </head>
- <body>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement