Probleme avec un script php
Posté : 23 mars 2010, 14:05
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)
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)