Advertisement
Hugo7

DNA comparison

Feb 7th, 2017
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.67 KB | None | 0 0
  1. <head>
  2. <style>
  3. body {
  4.     font-family:Monospace;
  5.     font-size:20;
  6. }
  7. </style>
  8. <script>
  9. function prot() {
  10.     location.href = "prot.php";
  11. }
  12. function arn() {
  13.     location.href = "arn.php";
  14. }
  15. </script>
  16. </head>
  17.  
  18. <body>
  19. <?php
  20. for ($i = 0; $i <= 10; $i++) {
  21.     $str[$i] = htmlspecialchars($_POST['in'.$i]);
  22. }
  23.  
  24. if (!$str[1] == null) {
  25.     goto c;              // Si le formulaire a déjà été rempli, on n'affiche pas le formulaire
  26. }
  27. echo "
  28. <form action='adn.php' method='post'>
  29.     Collez la s&eacute;quence ADN de r&eacute;f&eacute;rence ici : <br/>
  30.     <input name=\"in0\" id=\"in0\" type=textarea /><br/>
  31.     <br/>
  32.     Collez ensuite les s&eacute;quences &agrave; comparer, jusqu'&agrave 10 :<br/>
  33.     <input name=\"in1\" id=\"in1\" type=textarea /><br/>
  34.     <input name=\"in2\" id=\"in2\" type=textarea /><br/>
  35.     <input name=\"in3\" id=\"in3\" type=textarea /><br/>
  36.     <input name=\"in4\" id=\"in4\" type=textarea /><br/>
  37.     <input name=\"in5\" id=\"in5\" type=textarea /><br/>
  38.     <input name=\"in6\" id=\"in6\" type=textarea /><br/>
  39.     <input name=\"in7\" id=\"in7\" type=textarea /><br/>
  40.     <input name=\"in8\" id=\"in8\" type=textarea /><br/>
  41.     <input name=\"in9\" id=\"in9\" type=textarea /><br/>
  42.     <input name=\"in10\" id=\"in10\" type=textarea /><br/>
  43.     <br/>
  44.     <input name=\"ok\" id=\"ok\" type=submit value=Comparer! /><br/>
  45. </form>
  46. <br/><br/><br/><br/>Autres fonctions : <br/>
  47. <input type=button onClick='prot();' value='Traduire ARNm en protéine' /><br/>
  48. <input type=button onClick='arn();' value='Transcrire ADN en ARN' /><br/>
  49. ";
  50.  
  51. c: //pour goto
  52.  
  53.  
  54. if ($str[1] == null) {
  55.     exit();              // Si le formulaire n'a pas été rempli, exit
  56. }
  57. for ($i = 1; $i <= 10; $i++) {
  58.     $str_fin[$i] = null;
  59.     $str_cur[$i] = $str[$i];
  60.     $str_cur[0] = $str[0]; //La séqu de réf arrive à null après chaque tour
  61.     $count_id[$i] = 0; //nb de nucléotides en commun à réf ($str[0]) pour faire %id
  62.     $count_total[$i] = strlen($str[$i]); //taille totale de la chaîne à comparer pour faire %id
  63.     while (!$str_cur[0] == null) {
  64.         $str_tmp[$i] = substr($str_cur[$i], 0, 1); //ATGC : prend A
  65.         $str_cur[$i] = substr($str_cur[$i], 1); // ATGC : prend TGC
  66.         $str_tmp[0] = substr($str_cur[0], 0, 1); //ATGC : prend A
  67.         $str_cur[0] = substr($str_cur[0], 1); // ATGC : prend TGC
  68.         if ($str_tmp[$i] == $str_tmp[0]) {
  69.             $str_fin[$i] = $str_fin[$i]."-";
  70.             $count_id[$i] = $count_id[$i] + 1; // +1 nd en commun avec ref ($str[0])
  71.         } elseif ($str_tmp[$i] == null) { // pas de nd alors que réf en a
  72.             $str_fin[$i] = $str_fin[$i]."_";
  73.             $count_total[$i] = $count_total[$i] +1;
  74.         } else {
  75.             $str_fin[$i] = $str_fin[$i].$str_tmp[$i];
  76.         }
  77.     }
  78.     if (!$count_total[$i] == null) {
  79.         $pourcent_id[$i] = $count_id[$i] / $count_total[$i];
  80.         $pourcent_id[$i] = $pourcent_id[$i] * 100;
  81.         $pourcent_id[$i] = round($pourcent_id[$i], 2);
  82.     }
  83. }
  84.  
  85. // Affichage
  86. if (!$str[0] == null) {
  87.         echo "Traitement terminé <br/><br/><u>Affichage des comparaisons :</u><br/>".$str[0]." <- référence";
  88.         for ($i = 1; $i <=10; $i++) {
  89.             if (!$str[$i] == null) {
  90.                 echo "<br/><span id=\"out".$i."str\" name=\"out".$i."str\">".$str_fin[$i]."</span>, soit <span id=\"out".$i."int\" name=\"out".$i."int\">".$pourcent_id[$i]."</span>% d'identité.";
  91.             }
  92.     }
  93.     echo "<br/><br/>La première séquence est la séquence de référence, et les tirets sur les autres <br/>séquences montrent des similitudes par rapport à la séquence de référence.";
  94. }
  95.  
  96.  
  97.  
  98. ?>
  99. <br/><br/>
  100. <small>Cr&eacute;&eacute; par Hugo en php - (c) hugoland.fr<br/>
  101. Code source (pour les curieux...) <a href="http://pastebin.com/as2s8aCx">ici</a></small>
  102. </body>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement