Page 1 sur 2

Probleme avec un script php

Posté : 23 mars 2010, 14:05
par Olivier13
Bonjour, j'ai un projet à réaliser ou le but est d'écrire un programme qui recense dans une séquence d'ADN tous les codons présents, regroupe ensemble les codons synonymes, et, pour un groupe de codons synonymes, recense les codons les plus fréquents. j'ai donc fais un script php mais je n'arrive pas a ce que je veux, lorsque j'entre ma séquence dans mon formulaire get, ca ne me met comme résultat uniquement le dernièr codon.

Par exemple si ma sequence entrée dans le formulaire est ATGATGATT,lorsque je lance l'analyse j'obtien:

Le codon 'Isoleucine' apparaît 1 fois

et non pas

Le codon 'Isoleucine' apparaît 1 fois
Le codon 'Méthionine' apparaît 2 fois

Voici mon script php...

<?php

$adn=$_GET['adn'];
$len=strlen($adn);
$codons=array('GCA' => 'Alanine',
'GCC' => 'Alanine',
'GCG' => 'Alanine',
'GCT' => 'Alanine',
'CGA' => 'Arginine',
'CGC' => 'Arginine',
'CGG' => 'Arginine',
'CGT' => 'Arginine',
'AGA' => 'Arginine',
'AGG' => 'Arginine',
'GAC' => 'Acide aspartique',
'GAT' => 'Acide aspartique',
'AAC' => 'Asparagine',
'AAT' => 'Asparagine',
'TGC' => 'Cysteine',
'TGT' => 'Cysteine',
'GAA' => 'Acide glutamique',
'GAG' => 'Acide glutamique',
'CAA' => 'Glutamine',
'CAG' => 'Glutamine',
'GGA' => 'Glycine',
'GGC' => 'Glycine',
'GGG' => 'Glycine',
'GGT' => 'Glycine',
'CAC' => 'Histidine',
'CAT' => 'Histidine',
'ATA' => 'Isoleucine',
'ATC' => 'Isoleucine',
'ATT' => 'Isoleucine',
'CTA' => 'Leucine',
'CTC' => 'Leucine',
'CTG' => 'Leucine',
'CTT' => 'Leucine',
'TTA' => 'Leucine',
'TTG' => 'Leucine',
'AAA' => 'Lysine',
'AAG' => 'Lysine',
'ATG' => 'Methionine',
'TTC' => 'Phenylalanine',
'TTT' => 'Phenylalanine',
'CCA' => 'Proline',
'CCC' => 'Proline',
'CCG' => 'Proline',
'CCT' => 'Proline',
'TCA' => 'Sérine',
'TCC' => 'Sérine',
'TCG' => 'Sérine',
'TCT' => 'Sérine',
'AGC' => 'Sérine',
'AGT' => 'Sérine',
'ACT' => 'Thréonine',
'ACC' => 'Thréonine',
'ACG' => 'Thréonine',
'ACT' => 'Thréonine',
'TGG' => 'Tryptophane',
'TAC' => 'Tyrosine',
'TAT' => 'Tyrosine',
'GTA' => 'Valine',
'GTC' => 'Valine',
'GTG' => 'Valine',
'GTT' => 'Valine',
'TAG' => 'STOP',
'TAA' => 'STOP',
'TGA' => 'STOP');
$freq=array();
for ($i=0;$i<$len;$i+=3)
$l=$codons{(substr($adn, $i, 3))};
if (isset($freq[$l])) {
$freq[$l]+=3;
} else {
$freq[$l]=1;
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<title>Biais</title>
</head>

<body>
<div>
<?php

foreach ($freq as $l => $nb)
{
echo "Le codon '".htmlentities($l)."' apparaît ".$nb." fois<br />\n";
}

?>
</div>
<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a>
</body>
</html>

Merci de m'aider je c pas quoi faire (pour info $codons et mon tableau indicé ou je stocke les codons,$freq est un tableau indicé ou je stocke les fréquences et je dois absolument utiliser une boucle for afin de faire le projet)

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:14
par stealth35

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:16
par Invité
Oui mais ca ne ma pas tellement aider dsl et je savais pas si je devais poster a la suite ou sur un autre post...

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:18
par stealth35
Oui mais ca ne ma pas tellement aider dsl et je savais pas si je devais poster a la suite ou sur un autre post...
pourtant je t'ai mis la solution...

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:19
par Invité
Je dois utiliser la fonction for et non pas foreach c'est pour ca...

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:25
par stealth35
Je dois utiliser la fonction for et non pas foreach c'est pour ca...
ah oui c'est vrai les prof c'est des boulets, mais Patriboom t'avais aussi donner la solution avec for :wink:

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:26
par Invité
Oui j'ai vu mais les prof sont encore plus que des boulet, ile veulent un if et un else dans la boucle for lol :p
Dsl mdr

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:31
par stealth35
Oui j'ai vu mais les prof sont encore plus que des boulet, ile veulent un if et un else dans la boucle for lol :p
Dsl mdr
c'est vraiment des glands :mrgreen:
ta le droit d'utiliser plusieurs fois "for" ?

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:35
par Invité
Hum je sais pas lol mais je galere deja bien comme ca hihi

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:39
par Invité
Le prof nous a dit qu'on pouvait le faire en utilisant 1 seule fois "for"...

Re: Probleme avec un script php

Posté : 23 mars 2010, 14:48
par stealth35
Le prof nous a dit qu'on pouvait le faire en utilisant 1 seule fois "for"...
lol, c'est vraiement pour faire chié le coup du for, tu nous donneras la correction je suis sur que c'est drole :mrgreen:
$group 	= array_count_values($codons);
$key	= array_keys($group);
$val 	= array_values($group);

for($i = 0; $i < count($group); $i++)
{
	if($key[$i] !== 'STOP')
	{
		echo sprintf("Le codon %s apparaît %d fois\n", $key[$i], $val[$i]);  <br />\n", $val[$i], $key[$i]);
	}
}
EDIT: le STOP faut le garder non ?

Re: Probleme avec un script php

Posté : 23 mars 2010, 15:54
par Invité
ben en fait la sequence se fini toujours par un stop.
Au final il faut que j'ai comme resultat:

Le codonc CGA aparait 8 fois
Le codonc TGG aparait 5 fois
Le codonc ATT aparait 9 fois

cela doit etre stoké dans un tableau $freq pour pouvoir faire un histogramme de la frequence de chaque codon ensuitre.
Donc ta methode marche pas la,il faut proceder comme j'ai fait sof qu'il y a des erreur dan le mien et que sa ne marche pas :s

Re: Probleme avec un script php

Posté : 23 mars 2010, 16:01
par stealth35
ta un exemple de séquence d'ADN

Re: Probleme avec un script php

Posté : 23 mars 2010, 16:14
par stealth35
ca donnerais plus un truc du genre
$adn 	= str_split($_GET['adn'], 3);
$freq 	= array_count_values($adn);
		
foreach($freq as $val => $num)
{
    echo sprintf("J'ai %d codons %s codant pour la %s<br />", $num, $val, $codons[$val]);
}

Re: Probleme avec un script php

Posté : 23 mars 2010, 16:45
par Invité
Par exemple si la sequence ADN est : ATGATTATTTCCGCAGGGGGGTGA.

Ca donnerai:

Le codon 'ATG' apparaît 1 fois
Le codon 'ATT' apparaît 2 fois
Le codon 'TCC' apparaît 1 fois
Le codon 'GCA' apparaît 1 fois
Le codon 'GGG' apparaît 1 fois
Le codon 'TGA' apparaît 1 fois

tout sa stoqué dans un tableau $freq=array() pour pouvoir faire un histogramme en utilisant une boucle for, avec des else if comme j'ai fait...c mega chiant