Un exemple de php pour la biologie moléculaire NON FONCTIONNEL Page 1
<html> <head> <meta http-equiv=“content-type” content=“text/html;charset=iso-8859-1”> <meta name=“generator” content=“Adobe GoLive”> <title>bm</title> </head> <body bgcolor=“#ccffcc”> <h1>Biologie moléculaire</h1> <hr> <p>exemples simples de scripts pour générer des DNA, RNA, protéines et autres outils à faire !</p> <form id=“FormName” action=“traitement.php” method=“post” name=“traitement”> Introduire le nombre de nucléotides du DNA à générer<br> (vous pouvez exagérer le nombre… mais la durée de traitement sera élevée et l'(affichage peu pratique) <p><input type=“text” name=“nombre” size=“24”><input type=“submit” name=“Envoyer”></p> </form> <p> </p> </body></html>
ATTENTION : deux fichiers liés contiennent le code génétique (en chaine ou tableau) codeG1.txt et codeG2.txt
Bouton envoyer : <!DOCTYPE HTML PUBLIC “-W3CDTD HTML 4.01 TransitionalFR”> <html><head> <?php fonction vide($id) { si ($id==“”){retourne vrai;} sinon {retourne faux;} }
fonction genererDNA($nb) {
$dna=""; pour ($i=0; $i<$nb; $i++) { $dna=$dna.aleabaseDNA(); };
retourner $dna; }
fonction complémentADN($z, $option) {
$dna=""; pour ($i=0; $i<strlen($z); $i++) { $a=substr($z,$i,1); si ($a=="A") { si ($option==1) {$c="T";} sinon {$c="U";};}; si ($a=="C") {$c="G";}; si ($a=="G") {$c="C";}; si ($a=="T") {$c="A";}; $ADN=$ADN.$c; };
retourner $dna; }
fonction compteurDNA($z, $option) {
$dna=""; saut(1); $dna[0]=0;$dna[1]=0;$dna[2]=0;$dna[3]=0; pour ($i=0; $i<strlen($z); $i++) { $a=substr($z,$i,1); si ($a=="A") {$dna[0]++;}; si ($a=="C") {$dna[1]++;}; si ($a=="G") {$dna[2]++;}; si ($a=="T") {$dna[3]++;}; si ($a=="U") {$dna[3]++;}; };
retourner $dna;
}
fonction traduireADN($dna, $depart, $option) la fonction rend une chaîne contenant la protéine correspondante au $dna fournie en commençant à $depart si un codon est non-sens, la chaîne est interrompue. { LECTURE D'UN FICHIER $nomFic=“CodeG2.txt”; $fp=fopen($nomFic, “r+”); OUVERTURE
$tab=fgets($fp); // ON RÉCUPÈRE LES DONNEES SOUS FORME D'UNE STRING fclose($fp); $codeG=exploser("@",$tab); // on fabrique le tableau sous forme AAA&AcA pour chaque ligne $protéine=""; // initialisation de la protéine pour ($i=$départ; $i<strlen($dna); $i=$i+3) { $triplet=substr($dna,$i,3); //saut();echo $triplet; echo $i; pour ($j=0; $j<64; $j++) { $codon = substr($codeG[$j],0,3); $aa = substr($codeG[$j],4,3); si ($triplet == $codon) { si ($aa <> "NSs") { $protéine=$protéine.$aa."-"; casser;} autre { pause 2 ;}; // le break c'est pas propre mais le do while déconne }; } };
retourner $protéine; }
fonction affXNA($z) {
echo '<font face="Courier Nouveau, Courier, Monaco, monospace">'.$z.'</font>';
}
fonction aleabaseDNA() {
//$x="A"; $x = substr("ATCG",mt_rand(0,3),1); retourner $x;
}
fonction comptage ($chaine,$car) {
$i=strpos($chaine,$car); si ($i==0) {retourne 0;} sinon {retourne 1+comptage(substr($chaine,$i+1),$car);}
}
function aff($x) affiche les éléments d'un tableau avec saut de ligne et sans l'indice (modifiable &) { $base[0]=“A”;$base[1]=“C”;$base[2]=“G”;$base[3]=“T”;$base[4]=“U”; saut(); echo “tableau affiché : <br />”; pour ($i=0;$i<count($x);$i++) { écho “ je=”; écho $i; écho “ → ” ;
echo "numéro de ";echo $base[$i];echo " : ";echo $x[$i]; écho " <br />"; }
}
function affT($x) affiche les éléments d'une chaîne en tableau { saut(); saut(1); pour ($i=0;$i<strlen($x[$i]);$i++) { écho “ je=”; écho $i; écho “ → ” ;
écho $x[$i]; écho " "; }
}
fonction saut()
{ echo "<br/>";}
fonction affH2($x) {
saut();echo "<H2>".$x."</H2>";
}
?> </tête><corps> <br> <br> </body></html>