[PHP] Communication Html/PHP

Communication Html/PHP [PHP] - PHP - Programmation

Marsh Posté le 27-04-2008 à 18:42:06    

Bonjour, j'ai un problème tout con mais que je n'arrive pas à résoudre :
 
En fait j'ai une page html où l'utilisateur rentre une séquence d'ADN, enfin peu importe, et je voudrais qu'à partir de cette page, 2 pages php lui soient associées et qu'on puisse choisir entre les 2 en cliquant sur 2 boutons "submit" différents...
 
Je sais pas si c'est possible
 
Merci

Reply

Marsh Posté le 27-04-2008 à 18:42:06   

Reply

Marsh Posté le 27-04-2008 à 20:11:39    

personne n'a de petite idée?? dites moi si vous n'avez pas compris ce que je voulais dire :)

Reply

Marsh Posté le 27-04-2008 à 20:54:24    

pas trop compris :d
 
tu peux  faire deux formulaire ,non?


---------------

Reply

Marsh Posté le 27-04-2008 à 21:02:03    

flo850 a écrit :

tu peux faire deux formulaire, non?


 
Pas mieux !
 
Au pire tu peux faire deux <input name='...' type='image' .../> (chacun correspondant à un bouton).
Lorsque tu testes la valeur, tu dois faire :

Code :
  1. if (isset($_POST['monnomdebouton_x']) || isset($_POST['monnomdebouton_y']) {
  2.  // monnomdebouton (bouton graphique) a été pressé par l'utilisateur ; x et y sont des coordonnées
  3. }


Message édité par CyberDenix le 27-04-2008 à 21:03:08

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 27-04-2008 à 21:23:58    

c'est à dire faire 2 formulaires?

Reply

Marsh Posté le 27-04-2008 à 21:43:11    

Non, mais utilises une page intermédiaire :
 

Code :
  1. <form id="form" method='post" action="page_intermediaire.php">
  2. (...)
  3. <input type="submit" name="mode1" value="Mode 1" />
  4. <input type="submit" name="mode2" value="Mode 2" />


 
page_intermediaire.php :

Code :
  1. if(isset($_POST['mode1']))
  2.     include('mode1.php');
  3. elseif(isset($_POST['mode2']))
  4.     include('mode2.php');


 
ou mode1.php et mode2.php sont "les pages associées".

Reply

Marsh Posté le 28-04-2008 à 09:29:05    

Même si j'en vois pas trop l'interet, tu peut aussi utiliser une petite fonction javascript sur le 2éme bouton (qui ne devra pas être un submit) pour modifier "action" du formulaire et envoyer le formulaire.

Reply

Marsh Posté le 28-04-2008 à 20:15:22    

ok, merci, j'ai réussi à faire ce que je voulais gràce à Martius :)
 
Mais j'ai d'autres soucis : je dois créer des histogrammes avec jpgraph en fonction d'une séquence de lettres rentrées par l'utilisateur. La séquence qu'il rentre est constitué uniquement de A,T,C et G
 
Donc mon souci n°1 est de "corriger" sa séquence tout ce qui n'est pas A,T,C ou G, c'est à dire le chiffres, les autres lettres, les espaces, ... pour que je puisse ensuite le traiter.
 
Mon souci n°2 est plus compliqué à mon avis : je crée des histo avec jpgraph comme je l'ai dit. L'histo est basé sur 2 tableaux. Je vais faire un exemple pour que ce soit plus clair :  
 
Imaginons que l'utilisateur rentre un phrase et que je veuille compter le nombre de fois qu'il y a le même mot. Je crée donc 2 tableaux avec dans le 1er les mots que je voudrais compter et dans le second leur fréquence.  
 
1er tableau     'banane' 'cerise' 'pomme' 'poire'
2eme tableau  'freq[banane]' 'freq[cerise]' 'freq[pomme]' 'freq[poire]'
 
Mais le probleme c'est que si dans la phrase il n'y pas banane par exemple, eh bien l'histogramme plante au lieu de m'afficher "0".
Peut etre un truc "if/else" ??
 

Reply

Marsh Posté le 28-04-2008 à 20:51:26    

Cachouguinteur a écrit :

ok, merci, j'ai réussi à faire ce que je voulais gràce à Martius :)
 
Mais j'ai d'autres soucis : je dois créer des histogrammes avec jpgraph en fonction d'une séquence de lettres rentrées par l'utilisateur. La séquence qu'il rentre est constitué uniquement de A,T,C et G
 
Donc mon souci n°1 est de "corriger" sa séquence tout ce qui n'est pas A,T,C ou G, c'est à dire le chiffres, les autres lettres, les espaces, ... pour que je puisse ensuite le traiter.
 
Mon souci n°2 est plus compliqué à mon avis : je crée des histo avec jpgraph comme je l'ai dit. L'histo est basé sur 2 tableaux. Je vais faire un exemple pour que ce soit plus clair :  
 
Imaginons que l'utilisateur rentre un phrase et que je veuille compter le nombre de fois qu'il y a le même mot. Je crée donc 2 tableaux avec dans le 1er les mots que je voudrais compter et dans le second leur fréquence.  
 
1er tableau     'banane' 'cerise' 'pomme' 'poire'
2eme tableau  'freq[banane]' 'freq[cerise]' 'freq[pomme]' 'freq[poire]'
 
Mais le probleme c'est que si dans la phrase il n'y pas banane par exemple, eh bien l'histogramme plante au lieu de m'afficher "0".
Peut etre un truc "if/else" ??
 


 
array_count_values(preg_split('/\s+/', $phrase))


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 28-04-2008 à 20:55:53    

merci de ta réponse mais ça veut dire quoi?? excuse je suis pas très expérimenté en php...

Reply

Marsh Posté le 28-04-2008 à 20:55:53   

Reply

Marsh Posté le 28-04-2008 à 21:12:14    

Ben ça te sort la fréquence des mots dans une phrase (même si c'est une version assez naïve là dans sa conception du "mot" ).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 28-04-2008 à 21:14:40    

mais dans mon prog j'ai déjà les freq, mon souci c'est juste que si dans la phrase il n'y a pas un mot alors que c'est une entrée du tableau, l'histo plante au lieu de me dire qu'il y est 0 fois

Reply

Marsh Posté le 28-04-2008 à 21:14:53    

Chaque bouton submit va avoir l'url differente, sa doit suffire non?


---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 28-04-2008 à 21:18:52    

Cachouguinteur a écrit :

mais dans mon prog j'ai déjà les freq, mon souci c'est juste que si dans la phrase il n'y a pas un mot alors que c'est une entrée du tableau, l'histo plante au lieu de me dire qu'il y est 0 fois


 
Ah ok j'avais pas exactement compris ce que tu voulais (ma manie de lire les posts en vertical :/). Donc c'est pas la fréquence des mots (quels qu'ils soient) d'une phrase que tu veux, mais la fréquence d'un ensemble de mots donnés...
 
Bon, ben commence par montrer ce que tu fais pour construire ton truc. [:petrus75]


Message édité par sielfried le 28-04-2008 à 21:19:11

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 28-04-2008 à 21:43:51    

Code :
  1. if (isset($freq['banane'])) {
  2.  // $freq['banane'] existe !
  3. }
  4. else {
  5.  // $freq['banane'] n'existe pas !
  6. }

Message cité 1 fois
Message édité par CyberDenix le 28-04-2008 à 21:44:07

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 28-04-2008 à 23:05:42    

Et donc ?
 
edit: wups, je croyais que c'était un post de Cachou. :o


Message édité par sielfried le 29-04-2008 à 10:05:23

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-04-2008 à 10:04:08    

je vais mettre un morceau de mon code brut, dites moi ce que vous comprenez pas

Reply

Marsh Posté le 29-04-2008 à 10:06:27    

CyberDenix a écrit :

Code :
  1. if (isset($freq['banane'])) {
  2.  // $freq['banane'] existe !
  3. }
  4. else {
  5.  // $freq['banane'] n'existe pas !
  6. }



 
La fonction array_key_exists est là pour ça dans les tableaux.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-04-2008 à 10:08:57    

Code :
  1. <?
  2. $sequ=$_POST['sequence'];
  3. $long=strlen($sequ);
  4. $traduction='';
  5. $code_choisi=$_POST['code_choisi'];
  6. $aa_choisi=$_POST['aa_choisi'];
  7. // Il faut au préalable traiter la séquence pour vérifier plusieurs choses : qu'il n'y a que des A, T, C, G ou U
  8. $sequ=strtoupper($sequ); // Met toute le séquence en majuscule
  9. $sequ=str_replace ("U", "T", $sequ); // Remplace les U par des T
  10. $code=array("GCT"=>"A","GCC"=>"A","GCA"=>"A","GCG"=>"A","CGT"=>"R","CGC"=>"R","CGA"=>"R","CGG"=>"R",
  11. "AGA"=>"R","AGG"=>"R","AAT"=>"N","AAC"=>"N","GAT"=>"D","GAC"=>"D","TGT"=>"C","TGC"=>"C","CAA"=>"E",
  12. "CAG"=>"E","GAA"=>"Q","GAG"=>"Q","GGT"=>"G","GGC"=>"G","GGA"=>"G","GGG"=>"G","CAT"=>"H","CAA"=>"H",
  13. "ATT"=>"I","ATC"=>"I","ATA"=>"I","TTA"=>"L","TTG"=>"L","CTT"=>"L","CTC"=>"L","CTA"=>"L","CTG"=>"L","AAA"=>"K",
  14. "AAG"=>"K","ATG"=>"M","TTT"=>"F","TTC"=>"F","CCT"=>"P","CCC"=>"P","CCA"=>"P","CCG"=>"P","TCT"=>"S",
  15. "TCC"=>"S","TCA"=>"S","TCG"=>"S","AGT"=>"S","AGC"=>"S","ACT"=>"T","ACC"=>"T","ACA"=>"T","ACG"=>"T",
  16. "TGG"=>"W","TAT"=>"Y","TAC"=>"Y","GTT"=>"V","GTC"=>"V","GTA"=>"V","GTG"=>"V","TAA"=>"Z","TAG"=>"Z",
  17. "TGA"=>"Z" ); //tableau du code génétique
  18. (...)
  19. for ($i=0; $i<$long; $i+=3)
  20. {
  21. $codon=substr($sequ,$i,3);
  22. $AA=$code[$codon];
  23. if(empty($AA_tab[$AA]['total']))
  24. {
  25.  $AA_tab[$AA]['total']= 1;
  26. }
  27. else
  28. {
  29.  $AA_tab[$AA]['total']++;
  30. }
  31. if(empty($AA_tab[$AA][$codon]))
  32. {
  33.  $AA_tab[$AA][$codon] = 1;
  34. }
  35. else
  36. {
  37.  $AA_tab[$AA][$codon]++;
  38. }
  39. }
  40. for ($lettre=ord('A');$lettre<=ord('Z');$lettre++) //boucle qui parcoure l'alphabet
  41. {
  42. if (isset($AA_tab[chr($lettre)]))
  43. {
  44.  foreach ($AA_tab[chr($lettre)] as $codon => $nombre)
  45.  {
  46.   if ($codon!="total" )
  47.   {
  48.    $pourcentage[chr($lettre)][$codon] = $nombre*100 / $AA_tab[chr($lettre)]['total'];
  49.   }
  50.   else
  51.   {
  52.    $pourcentage[chr($lettre)][$codon] = 0;
  53.   }
  54.  }
  55. }
  56. }
  57. //Et après je crée mes histo avec JpGraphp pour chaque AA (acide aminé), là je met en exemple un histo
  58. include ("jpgraph-2.3/src/jpgraph.php" );
  59. include ("jpgraph-2.3/src/jpgraph_bar.php" );
  60. $tableau_codons = array('CGT', 'CGC', 'CGA', 'CGG', 'AGA', 'AGG');
  61. $tableau_pourcentages = array($pourcentage['R']['CGT'], $pourcentage['R']['CGC'], $pourcentage['R']['CGA'], $pourcentage['R']['CGG'], $pourcentage['R']['AGA'], $pourcentage['R']['AGG']);
  62. $graph = new Graph(400,250);
  63. $graph->SetScale("textlin" );
  64. $graph->SetShadow();
  65. $graph->img->SetMargin(40,30,25,40);
  66. $bplot = new BarPlot($tableau_pourcentages);
  67. $bplot->SetFillColor(array('red', 'green', 'blue', 'orange', 'black', 'purple'));
  68. $bplot->SetShadow();
  69. $bplot->value->Show();
  70. $bplot->value->SetFont(FF_FONT1,FS_BOLD);
  71. $bplot->value->SetFormat('%d');
  72. $graph->Add($bplot);
  73. $graph->title->Set("Graphique : Arginine" );
  74. $graph->title->SetFont(FF_FONT1,FS_BOLD);
  75. $graph->xaxis->title->Set("Codons" );
  76. $graph->yaxis->title->Set("Pourcentages" );
  77. $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
  78. $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
  79. $graph->xaxis->SetTickLabels($tableau_codons);
  80. $graph->Stroke();
  81. break;
  82. ?>


 

Reply

Marsh Posté le 29-04-2008 à 10:11:54    

et donc mon souci c'est que ce si dans $sequ, l'utilisateur n'a pas mis CGT par exemple, eh bien l'histogramme en question plante au lieu de m'afficher 0 et me dit "undefined index : CGT"...

Reply

Marsh Posté le 29-04-2008 à 10:14:49    

Cachouguinteur a écrit :

et donc mon souci c'est que ce si dans $sequ, l'utilisateur n'a pas mis CGT par exemple, eh bien l'histogramme en question plante au lieu de m'afficher 0 et me dit "undefined index : CGT"...


donne la ligne sur laquelle ça plante...je vois pas l'accès à $sequ qui peut planter dans ton paté de code là...[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-04-2008 à 10:21:29    

Ça a l'air vachement compliqué ton truc. [:petrus75]
 
Je pense que tu ferais mieux d'utiliser des fonctions du genre :
http://fr.php.net/manual/fr/function.str-split.php (pour couper ta chaîne en codes de 3 caractères)
http://fr.php.net/array_count_values (calcule une fréquence)
etc.


Message édité par sielfried le 29-04-2008 à 10:21:58

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-04-2008 à 10:29:52    

Le souci est là :

Code :
  1. if(empty($AA_tab[$AA][$codon]))
  2. {
  3.   $AA_tab[$AA][$codon] = 1;
  4. }


 
Tu initialises à 1 si c'est vide. Il faudrait tout initialiser à 0 avant :

Code :
  1. $code=array("GCT"=>"A",... ); //tableau du code génétique
  2. (...)
  3. foreach($code as $val)
  4.    $AA_tab[$val]['total']=0;
  5. for ($i=0; $i<$long; $i+=3)
  6. {
  7.    $codon=substr($sequ,$i,3);
  8.    $AA=$code[$codon];
  9.    $AA_tab[$AA]['total']++;
  10.    ...

Reply

Marsh Posté le 29-04-2008 à 10:31:09    

ben ça plante à la ligne 69 dans mon exemple càd qd il accède au tableau des pourcentages

Reply

Marsh Posté le 29-04-2008 à 10:34:09    

Cachouguinteur a écrit :

ben ça plante à la ligne 69 dans mon exemple càd qd il accède au tableau des pourcentages


Si ton tableau pourcentage['R'] a des indices fixes et prédéfinis, initialise-le par défaut à zéro pour tous ces indices avant de le remplir.


Message édité par skeye le 29-04-2008 à 10:34:20

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-04-2008 à 10:35:39    

ok donc je vais essayer la suggestion de Paulp

Reply

Marsh Posté le 29-04-2008 à 10:39:55    

je doit donc remplacer :

Code :
  1. for ($i=0; $i<$long; $i+=3)
  2. {
  3. $codon=substr($sequ,$i,3);
  4. $AA=$code[$codon];
  5. if(empty($AA_tab[$AA]['total']))
  6. {
  7.  $AA_tab[$AA]['total']= 1;
  8. }
  9. else
  10. {
  11.  $AA_tab[$AA]['total']++;
  12. }
  13. if(empty($AA_tab[$AA][$codon]))
  14. {
  15.  $AA_tab[$AA][$codon] = 1;
  16. }
  17. else
  18. {
  19.  $AA_tab[$AA][$codon]++;
  20. }
  21. }


 
par :

Code :
  1. foreach($code as $val)
  2.     $AA_tab[$val]['total']=0;
  3. for ($i=0; $i<$long; $i+=3)
  4. {
  5.     $codon=substr($sequ,$i,3);
  6.     $AA=$code[$codon];
  7.     $AA_tab[$AA]['total']++;
  8. }


 
??

Reply

Marsh Posté le 29-04-2008 à 10:43:41    

Cachouguinteur a écrit :

je doit donc remplacer :
...


 
Ah je n'avais pas vu la distinction $AA_tab[$AA]['total'] / $AA_tab[$AA][$codon]
je vais regarder ton code en détail ...
 
EDIT :
 
J'espere avoir compris ce que tu veux faire, ...
Essaie ce code là, j'ai essayé de rester le plus proche de ce que tu faisais, en simplifiant

Code :
  1. $code=array("GCT"=>"A","GCC"=>"A","GCA"=>"A","GCG"=>"A","CGT"=>"R","CGC"=>"R","CGA"=>"R","CGG"=>"R",
  2. "AGA"=>"R","AGG"=>"R","AAT"=>"N","AAC"=>"N","GAT"=>"D","GAC"=>"D","TGT"=>"C","TGC"=>"C","CAA"=>"E",
  3. "CAG"=>"E","GAA"=>"Q","GAG"=>"Q","GGT"=>"G","GGC"=>"G","GGA"=>"G","GGG"=>"G","CAT"=>"H","CAA"=>"H",
  4. "ATT"=>"I","ATC"=>"I","ATA"=>"I","TTA"=>"L","TTG"=>"L","CTT"=>"L","CTC"=>"L","CTA"=>"L","CTG"=>"L","AAA"=>"K",
  5. "AAG"=>"K","ATG"=>"M","TTT"=>"F","TTC"=>"F","CCT"=>"P","CCC"=>"P","CCA"=>"P","CCG"=>"P","TCT"=>"S",
  6. "TCC"=>"S","TCA"=>"S","TCG"=>"S","AGT"=>"S","AGC"=>"S","ACT"=>"T","ACC"=>"T","ACA"=>"T","ACG"=>"T",
  7. "TGG"=>"W","TAT"=>"Y","TAC"=>"Y","GTT"=>"V","GTC"=>"V","GTA"=>"V","GTG"=>"V","TAA"=>"Z","TAG"=>"Z",
  8. "TGA"=>"Z" ); //tableau du code génétique
  9. (...)
  10. foreach($code as $codon=>$aa){ // Initialisation des compteurs à 0
  11.    $AA_tab[$aa][$codon]= 0;
  12. }
  13. for ($i=0; $i<$long; $i+=3){ // Pour chaque codon de la sequence
  14.    $codon=substr($sequ,$i,3);
  15.    $AA=$code[$codon];
  16.    $AA_tab[$AA][$codon]++; // On met à jour le compteur
  17. }
  18. // Calcul des pourcentages
  19. foreach($AA_tab as $aa=>$codons){                    // Pour chaque acide aminé
  20.    $tot = array_count($codons);                      // On calcule le total d'occurences
  21.    foreach($codons as $codon=>$nombre){              // Et pour chaque codon correspondant à cet AA
  22.       $pourcentage[$aa][$codon]=$nombre*100/$tot;    // On calcule le pourcentage
  23.    }
  24. }
  25. // affichage
  26. ...


 
Sinon, avec str_split :

Code :
  1. $code=array("GCT"=>"A","GCC"=>"A","GCA"=>"A","GCG"=>"A","CGT"=>"R","CGC"=>"R","CGA"=>"R","CGG"=>"R",
  2. "AGA"=>"R","AGG"=>"R","AAT"=>"N","AAC"=>"N","GAT"=>"D","GAC"=>"D","TGT"=>"C","TGC"=>"C","CAA"=>"E",
  3. "CAG"=>"E","GAA"=>"Q","GAG"=>"Q","GGT"=>"G","GGC"=>"G","GGA"=>"G","GGG"=>"G","CAT"=>"H","CAA"=>"H",
  4. "ATT"=>"I","ATC"=>"I","ATA"=>"I","TTA"=>"L","TTG"=>"L","CTT"=>"L","CTC"=>"L","CTA"=>"L","CTG"=>"L","AAA"=>"K",
  5. "AAG"=>"K","ATG"=>"M","TTT"=>"F","TTC"=>"F","CCT"=>"P","CCC"=>"P","CCA"=>"P","CCG"=>"P","TCT"=>"S",
  6. "TCC"=>"S","TCA"=>"S","TCG"=>"S","AGT"=>"S","AGC"=>"S","ACT"=>"T","ACC"=>"T","ACA"=>"T","ACG"=>"T",
  7. "TGG"=>"W","TAT"=>"Y","TAC"=>"Y","GTT"=>"V","GTC"=>"V","GTA"=>"V","GTG"=>"V","TAA"=>"Z","TAG"=>"Z",
  8. "TGA"=>"Z" ); //tableau du code génétique
  9. (...)
  10. $codons=str_split($sequ, 3)                     // Decoupage de la sequence en tableaux de codons
  11. $n_occurences=array_count_values($codons)       // Calcul du nombre d'occurences de chaque codon
  12. foreach($code as $codon=>$aa)                   // Tri par acide aminé
  13.   $n_occurences_trie[$aa][$codon]=(empty($n_occurences[$codon])?0:$n_occurences[$codon]);
  14. foreach($code as $codon=>$aa)                   // Calcul des pourcentages
  15.   $pourcentage[$aa][$codon]=100*$n_occurences_trie[$aa][$codon]/array_sum($n_occurences_trie[$aa])
  16. // affichage
  17. ...


Message édité par Paulp le 29-04-2008 à 15:23:19
Reply

Marsh Posté le 29-04-2008 à 11:00:44    

Merci Paulp et puis les autres, c'est sympa de se pencher sur mon problème :)

Reply

Marsh Posté le 29-04-2008 à 18:47:27    

merci Paulp, il me dit "Call to undefined function array_count()" ce qui correspond à la ligne 25 de ton ex 1
 
EDIT : j'ai mis array_count_values à la place, et maintenant j'ai un un souci à la ligne 27 "Unsupported operand types"


Message édité par Cachouguinteur le 29-04-2008 à 19:14:00
Reply

Marsh Posté le 29-04-2008 à 20:09:52    

qqun a une idée??

Reply

Marsh Posté le 29-04-2008 à 22:14:26    

essaye ca :
$tot=array_sum($codons);

Reply

Marsh Posté le 30-04-2008 à 09:04:34    

maintenant il est pas content parce il ne veut pas trop diviser par zéro. Je fait une boucle if??

Reply

Marsh Posté le 30-04-2008 à 09:05:47    

Dis, tu comptes vraiment venir demander sur le forum à CHAQUE problème que tu peux croiser?[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 30-04-2008 à 10:23:28    

Cachouguinteur a écrit :

maintenant il est pas content parce il ne veut pas trop diviser par zéro. Je fait une boucle if??


un test if, ou plus simplement, avec l'operateur conditionnel ternaire

Code :
  1. $pourcentage[$aa][$codon]=($tot ? ($nombre*100/$tot) : 0);

Reply

Marsh Posté le 30-04-2008 à 10:28:06    

youpiiiiiii merci paulp, ça marche du tonnerre. Merci merci merci. Et désolé de vous avoir saoulé :)

Reply

Marsh Posté le 18-05-2008 à 10:20:10    

un petit up, car j'aurais à  nouveau besoin d'aide :  
 

Code :
  1. foreach($code as $codon=>$AA){ // Initialisation des compteurs à 0
  2. $AA_tab[$AA][$codon]= 0;
  3. }
  4. for ($i=0; $i<$long; $i+=3){ // Pour chaque codon de la sequence
  5.    $codon=substr($sequ,$i,3);
  6.    @$AA=$code[$codon];
  7.    @$AA_tab[$AA][$codon]++; // On met à jour le compteur
  8. }
  9. // Calcul des pourcentages
  10. foreach($AA_tab as $AA=>$codons) // Pour chaque acide aminé
  11. echo "L'acide aminé ", $AA, " est codé par : ";
  12. $tot = array_sum($codons); // On calcule le total d'occurences
  13.     foreach($codons as $codon=>$nombre) // Et pour chaque codon correspondant à cet AA
  14.     {             
  15.  $pourcentage[$AA][$codon]=($tot ? ($nombre*100/$tot) : 0); // On calcule le pourcentage
  16.  echo "$codon à ", round($pourcentage[$AA][$codon]),"% ";
  17.     }
  18. echo "<br>";
  19. }


 
ça m'affiche un truc du genre :
 
L'acide aminé A est codé par : GCT à 0% GCC à 0% GCA à 0% GCG à 0%
L'acide aminé R est codé par : CGT à 0% CGC à 0% CGA à 0% CGG à 0% AGA à 0% AGG à 0%
L'acide aminé N est codé par : AAT à 0% AAC à 0%
L'acide aminé D est codé par : GAT à 0% GAC à 0%
L'acide aminé C est codé par : TGT à 0% TGC à 0%
L'acide aminé E est codé par : GAA à 0% GAG à 0%
L'acide aminé Q est codé par : CAA à 0% CAG à 0%
L'acide aminé G est codé par : GGT à 0% GGC à 0% GGA à 0% GGG à 0%
L'acide aminé H est codé par : CAT à 0% CAC à 0%
L'acide aminé I est codé par : ATT à 0% ATC à 0% ATA à 0%
L'acide aminé L est codé par : TTA à 0% TTG à 0% CTT à 0% CTC à 0% CTA à 0% CTG à 0%
L'acide aminé K est codé par : AAA à 100% AAG à 0%
L'acide aminé M est codé par : ATG à 0%
L'acide aminé F est codé par : TTT à 0% TTC à 0%
L'acide aminé P est codé par : CCT à 0% CCC à 0% CCA à 0% CCG à 0%
L'acide aminé S est codé par : TCT à 0% TCC à 0% TCA à 0% TCG à 0% AGT à 0% AGC à 0%
L'acide aminé T est codé par : ACT à 0% ACC à 0% ACA à 0% ACG à 0%
L'acide aminé W est codé par : TGG à 0%
L'acide aminé Y est codé par : TAT à 0% TAC à 0%
L'acide aminé V est codé par : GTT à 0% GTC à 0% GTA à 0% GTG à 0%
L'acide aminé * est codé par : TAA à 0% TAG à 0% TGA à 0%
 
Et en fait j'aurai aimé savoir comment faire pour que si jamais le % est nul, eh bien ne pas l'afficher :)

Reply

Marsh Posté le 13-02-2011 à 20:15:54    

Martius a écrit :

Non, mais utilises une page intermédiaire :
 

Code :
  1. <form id="form" method='post" action="page_intermediaire.php">
  2. (...)
  3. <input type="submit" name="mode1" value="Mode 1" />
  4. <input type="submit" name="mode2" value="Mode 2" />


 
page_intermediaire.php :

Code :
  1. if(isset($_POST['mode1']))
  2.     include('mode1.php');
  3. elseif(isset($_POST['mode2']))
  4.     include('mode2.php');


 
ou mode1.php et mode2.php sont "les pages associées".


 
 
salut,
j'ai probleme moins complexe:
 
je travail sur un scpt de traduction d'ADN en acide aminé en php . sans tenir compte des introns etc.
j'ai un formulaire que je souhaite relier a une base de donné contenant les codon et les AA aminé correspondants. dans le formulaire je colle ma séquence et je clique sur un bouton traduction pour avoir la correspondance en AA  

Reply

Marsh Posté le 13-02-2011 à 20:24:50    

Suffit d'utiliser la fonction adn_decode de php  [:torsadealanapo:2]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed