PHP:fusion de tableau par 1 variable commune
mickeynad
Messages postés
21
Statut
Membre
-
mickeynad Messages postés 21 Statut Membre -
mickeynad Messages postés 21 Statut Membre -
Bonjour tout le monde,
Voila je débute sur php et cela fait 2 jours que je bloque sur un tri de tableaux.
Je vous explique. Je dois parser deux fichiers de maniere a implémenter une base de données : Un fichier fasta et un fichier texte.
Une fois parsé, le fichier fasta me donne :
-> l'identifiant de la proteine
-> l'organisme
-> la sequence
Une fois parsé, le fichier texte me donne :
->l'identifiant de la proteine
->la base de données de référence
->le nom de la protéine
J'ai réussi a parser les 2 fichiers individuellements. Tout marche tres bien. Sauf que je veux faire un code unique ou je pourrai fusionner ces deux tableaux par l'identifiant de la proteine de maniere a ce qu'a chaque fois que l'identifiant est le meme dans les 2 fichiers, j'affiche tous les attributs des 2 fichiers soit :
Identifiant Proteine -> organisme, sequence, base de données de référence, nom de la proteine.
Voici mon code fasta :
Cela donne un resultat du genre :
Voici mon code texte :
ce qui donne comme resultat un truc du genre :
Voila ce qui est commun aux deux fichiers, c'est l'identifiant de la proteine et je voudrais recuperer tous les attributs pour en faire un tuple unique. J'ai essaye avec array_merge mais cela ne marche pas.
Merci a tous ceux qui pourront m'aide
Voila je débute sur php et cela fait 2 jours que je bloque sur un tri de tableaux.
Je vous explique. Je dois parser deux fichiers de maniere a implémenter une base de données : Un fichier fasta et un fichier texte.
Une fois parsé, le fichier fasta me donne :
-> l'identifiant de la proteine
-> l'organisme
-> la sequence
Une fois parsé, le fichier texte me donne :
->l'identifiant de la proteine
->la base de données de référence
->le nom de la protéine
J'ai réussi a parser les 2 fichiers individuellements. Tout marche tres bien. Sauf que je veux faire un code unique ou je pourrai fusionner ces deux tableaux par l'identifiant de la proteine de maniere a ce qu'a chaque fois que l'identifiant est le meme dans les 2 fichiers, j'affiche tous les attributs des 2 fichiers soit :
Identifiant Proteine -> organisme, sequence, base de données de référence, nom de la proteine.
Voici mon code fasta :
<?php
//Parseur pour Leishmania
//Chargement du fichier fasta
$fichier_Leishmania = 'LmajorAnnotatedProteins_TriTrypDB-2.0.fasta';
//On teste l'ouverture du fichier
if (!$f = fopen("$fichier_Leishmania","rb"))
{ echo "Echec de l'ouverture de $fichier_Leishmania "; }
//On parcourt le fichier fasta
while (!feof($f))
{
//On regarde si la ligne commence par un chevron
if(preg_match('/^>/',$line))
{
$proteine = explode ('|', $line);
//On recupere l'id de la proteine et le nom de l'organisme (qui est toujours le meme donc gain de temps en le definissant une fois!)
echo "Identifiant : ".$proteine[1]."<br />\n"."Organisme : Leishmania_major"."<br />\n";
//On saute une ligne pour recuperer la sequence
$line = fgets($f);
//Printage des lignes jusqu'au prochain chevron correspondantes a la sequence
while ($line{0} != '>' && !feof($f))
{
// On lit une ligne et on passe à la ligne suivante tout en la printant
echo ($sequence = $line);
$line = fgets($f);
}
}
else $line=fgets($f);
echo "<br>";
echo "<br>";
}
?>
Cela donne un resultat du genre :
identifiant : LmjF09.0003 Organisme : Leishmania_major MGKESTVPTGCGAVNREVVLERMLVEEVAKRDDAERAAEELRKQMQLLKAEALDLRQARD LTKGSVLCTAAAHEGTAVSTVRDAECAESRESALKGENHRLRQLVKRQNALIDVLRRQKV LLEASAAINISVRDFDKQLEIHKV Identifiant : LmjF09.0005 Organisme : Leishmania_major MTCVTGDDTGVVKIWDISKSSGATLKFSFGEQSRKRAIMGMCWQDSSTSSVAFSSSNGVL SVLDINDYVVSSSVKANTVAGLPNAMSFVKGKLVVVSKDGEASIFSSDLTSSSCFSGNGP IDAVHIHRKFGMVAMGGRENDLCVYDLASDSLEEPVFKARNVRDHILDVPFPVFVTGACI VNPYVFATCTAYHQVRFYDRRSNDRPVQEFEISREIERRPTTMLQWNANKFLIGEASGDV HLYDTRRGFCSRAKLRGGVGSVRCMCKHPAGHQILGVTGLDRKARLYHVPTGKLLMSVYV KQKANCVLLDKQLPMRDRVAVFSGVVNTKQPEKANTLGDALWDDMDPVLDDLDEKAMVAD TVAENRRKVQRKE
Voici mon code texte :
<?php
//Parseur pour Leishmania
//Chargement du fichier texte
$fichier_LeishmaniaNom = 'LmajorInterpro_TriTrypDB-1.1.txt';
//On teste l'ouverture du fichier
if (!$fp = fopen("$fichier_LeishmaniaNom","rb"))
{ echo "Echec de l'ouverture de $fichier_LeishmaniaNom "; }
//On parcourt le fichier texte
while (!feof($fp))
{
$line=fgets($fp);
$nom=preg_split('/\t/', $line, -1);
if(preg_match('/\D/',$nom[3]))
{ echo "IdProteine : ".$nom[0]."<br />\n"."BD de reference : ".$nom[1]."<br />\n"."NomProteine : ".$nom[3];}
else {echo "IdProteine : ".$nom[0]."<br />\n"."BD de reference : ".$nom[1]."<br />\n"."NomProteine : None";}
echo "<br>\n";
echo "<br>\n";
}
?>
ce qui donne comme resultat un truc du genre :
IdProteine : LmjF36.6990 BD de reference : PFAM NomProteine : zf-C2H2 IdProteine : LmjF36.6990 BD de reference : PFAM NomProteine : MOZ_SAS
Voila ce qui est commun aux deux fichiers, c'est l'identifiant de la proteine et je voudrais recuperer tous les attributs pour en faire un tuple unique. J'ai essaye avec array_merge mais cela ne marche pas.
Merci a tous ceux qui pourront m'aide
A voir également:
- PHP:fusion de tableau par 1 variable commune
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP