Les Allergies
Alimentaires
Posez votre question Signaler

Parser un xml énorme [Résolu]

sly-bzh 415Messages postés 10 janvier 2008Date d'inscription 25 février 2010Dernière intervention - Dernière réponse le 14 févr. 2008 à 16:51
Bonjour a tous et toutes,
J'aurais aimé savoir s'il était possible d'avoir une astuce pour pouvoir parser un fichier xml de 2,7 Go ? (mais c'est énorme me direz vous et j'ai envie de répondre ...)
Avant de le parser il faudrait déja que je puisse l'ouvrir pour en voir sa structure et ce n'est possible, ni avec firefox, ni avec IE, ni avec notepad 2, ni avec notepad++. Donc si vous avez un petit logiciel qui puisse m'ouvrir ce P.... de fichier xml qui me fait planter mon Win depuis ce matin, je suis preneur (vous me direz, XP n'a pas besoin de ça pour planter mais bon on va éviter de glisser vers ce terrain là)
Donc voilà, merci d'avance de vos réponses
PS. Si vous voulez savoir ce qu'est un fichier xml de 2.7 Go, il s'agit de la base de données swissprot contenant l'ensemble des protéines connues à ce jour et tous les commentaires, annotations, etc qui vont avec... Accessible ici : http://beta.uniprot.org/downloads
Lire la suite 

Parser un xml énorme »

14 réponses
Réponse
+0
moins plus
Bonjour,

En effet pour ouvrir le gros pépère... Au pire il faut le découper et le regarder par petits morceaux pour voir sa structure.

J'ai essayer d'ouvrir divers fichiers avec Textpad, un exe de 500 Mo en mode texte ça passe mais un iso de 2 Go il n'a pas voulu. Ca ne ferait pas encore trop de fichiers si tu le découpes juste en 10.

Pour ce qui est de le parser... Si c'est pour une opération one-shot ça va être douloureux mais bon... Il fera meilleur dans la pièce quand vous arriverez le matin. ^^ Si c'est pour l'interroger, soit tu as à disposition un pc avec 4 Go de ram ou plus, soit je le ré-injecterais dans une base de données locale. (Et éventuellement accessible à tout le monde via le réseau)

M.
Ajouter un commentaire
Réponse
+0
moins plus
Moi je veux bien le fragmenter en 10 "petits" fichiers différents pour le parser (oui c'est ensuite pour le parser mais avec la puissance matérielle que j'ai à ma disposition ce sera pas le problème) mais euh... Comment tu fais ?
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Si c'est pour l'interroger, soit tu as à disposition un pc avec 4 Go de ram ou plus

Je ne crois pas.
Sur mon debian avec 512 DDRAM je peut le parcourir ;-)


Ton fichier en effet fait 2.7 Go et il a 68201421 lignes
lami20j@debian:/mnt/hda5$ du -sh uniprot_sprot.xml
2,7G    uniprot_sprot.xml
lami20j@debian:/mnt/hda5$ cat uniprot_sprot.xml | wc -l
68201421
lami20j@debian:/mnt/hda5$  


La question est : Que veux tu obtenir de ce fichier?
Ajouter un commentaire
Réponse
+0
moins plus
pour l'info voici le nombre de caractères du fichier
lami20j@debian:/mnt/hda5$ cat uniprot_sprot.xml | wc -c
2805234706
lami20j@debian:/mnt/hda5$

Ajouter un commentaire
Réponse
+0
moins plus
Sniff, j'en ai plus que marre de mon XP qui avec 2 Go de ram peut pas l'ouvrir :(... C'est décidé dans la semaine qui vient je passe sous nunux !!!!
Put... 68 millions de lignes quand même... Heureusement que j'aurais le cluster sous la main :D

Sinon si tu pouvais juste, s'il te plait, me donner entre quelles balises (et l'arborescence bien évidemment) tu trouve un numéro d'accession de la forme XXXXX (en gros 5 caractères pouvant être des lettres en majuscules ou des chiffres)
Et la même chose pour les séquences protéiques (pouvant aller de quelques lettres en majuscules à plusieurs centaines de lettres, toujours en majuscule...)

Merci
Ajouter un commentaire
Réponse
+0
moins plus
je pense que tu parles ça
  <dbReference type="Gene3D" key="21" id="G3DSA:1.20.190.20">
    <property value="14-3-3" type="entry name"/>
    <property value="1" type="match status"/>
  </dbReference>


et de ça
  <sequence version="2" modified="1996-02-01" mass="29636" length="261" checksum="DE7B707538BA1662">MASAELSREENVYMAKLAEQAERYEEMVEFMEKVAKTVDSEELTVEERNLLSVAYKNVIGARRASWRIISSIEQKEEGRGNEDRVTLIKDYRGKIE
TELTKICDGILKLLESHLVPSSTAPESKVFYLKMKGDYYRYLAEFKTGAERKDAAENTMVAYKAAQDIALAELAPTHPIRLGLALNFSVFYYEILNSPDRACSLAKQAFDEAISELDTLSEESYKDSTLIMQLLHDNLTLWTSDISEDPAEEIREAPKHDLSEGQ</sequence>


?
Ajouter un commentaire
Réponse
+0
moins plus
Oui tout a fait mais je te conseil d'abbord de mettre les spaghetti dans la casserole puis la mozzarella ...Quoi ? Pas le bon forum ? Oh...
Hé hé... ( bruit de pas précipités et claquement de porte )
Ajouter un commentaire
Réponse
+0
moins plus
Oui je parlais de ça, du moins pour la séquence.
Pour le numéro d'accession ça doit plus ressembler à quelque chose comme ça :
<primaryAcc>
    A0A1F3
</primaryAcc>

ou
<AccNumber type="primary"> A0A1F3

Il me semble que A0A1F3 est le numéro d'accession de la toute première protéine mais je n'en suis pas sûr, désolé

Et merci de faire tout cela pour moi

PS. Excuse moi de ne pas t'avoir répondu hier soir mais impossible de se connecter de chez moi ("couleur entre le jaune et le rouge" Powa...)
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

ecoute, parser ton fichier n'est pas un problème pour moi (je parle au niveau de la taille ;-)
en revanche j'ai besoin que tu me dises ce que je dois extraire et ça sera fait ;-)
Ajouter un commentaire
Réponse
+0
moins plus
En fait, le parsage n'est pas un problème pour moi non plus, étant donné que cet après midi j'aurais accès à un cluster sur puissant qui va me faire ça en moins de temps qu'il faut pour le dire, je voulais juste avoir la structure du xml pour préparer mon petit script et pas monopoliser l'engin trop longtemps pour faire un truc tout pourite
Donc si tu pouvais juste me donner l'arborescence qui amène à la balise séquence que tu as trouvée (<sequence version="2" modified="1996-02-01" mass="29636" length="261" checksum="DE7B707538BA1662">) et celle amenant à une balise contenant, par exemple, A0A1F3 qui est le numéro d'accession d'une protéine dont la séquence devrait être : MKFLVLLFNILCLFPILGADELVMSPIPTTDVQPKVTFDINSEVSSGPLYLNPVEMAGVKYLQLQRQPGVQVHKVVEGDIVIWENEEMPLYTCAIVTQNEVPYMAYVELLEDPDLIFFLKEGDQWAPIPEDQYLARLQQLRQQIHTESFFSLNLSFQHENYKYEMVSSFQHSIKMVVFTPKNGHICKMVYDKNIRIFKALYNEYVTSVIGFFRGLKLLLLNIFVIDDRGMIGNKYFQLLDDKYAPISVQGYVATIPKLKDFAEPYHPIILDISDIDYVNFYLGDATYHDPGFKIVPKTPQCITKVVDGNEVIYESSNPSVECVYKVTYYDKKNESMLRLDLNHSPPSYTSYYAKREGVWVTSTYIDLEEKIEELQDHRSTELDVMFMSDKDLNVVPLTNGNLEYFMVTPKPHRDIIIVFDGSEVLWYYEGLENHLVCTWIYVTEGAPRLVHLRVKDRIPQNTDIYMVKFGEYWVRISKTQYTQEIKKLIKKSKKKLPSIEEEDSDKHGGPPKGPEPPTGPGHSSSESKEHEDSKESKEPKEHGSPKETKEGEVTKKPGPAKEHKPSKIPVYTKRPEFPKKSKSPKRPESPKSPKRPVSPQRPVSPKSPKRPESLDIPKSPKRPESPKSPKRPVSPQRPVSPRRPESPKSPKSPKSPKSPKVPFDPKFKEKLYDSYLDKAAKTKETVTLPPVLPTDESFTHTPIGEPTAEQPDDIEPIEESVFIKETGILTEEVKTEDIHSETGEPEEPKRPDSPTKHSPKPTGTHPSMPKKRRRSDGLALSTTDLESEAGRILRDPTGKIVTMKRSKSFDDLTTVREKEHMGAEIRKIVVDDDGTEADDEDTHPSKEKHLSTVRRRRPRPKKSSKSSKPRKPDSAFVPSIIFIFLVSLIVGIL
Voilà mais merci quand même de t'être occupé de mon cas
Ajouter un commentaire
Réponse
+0
moins plus
Le fichier je l'ai à la maison.
Je ne pourrai regarder que ce soir.
Ajouter un commentaire
Réponse
+0
moins plus
Pas grave, je me suis démerdé tout seul, à partir du moment où j'ai pu l'ouvrir j'ai créé un petit script en 30 secondes, et apparemment ça a marché.

Merci beaucoup de m'avoir aidé quand même :D
Ajouter un commentaire
Réponse
+0
moins plus
c'est parfait ;-)
ça m'evitera de travailler, je suis un peu paresseux ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Ca alors un informaticien paresseux... XD
Comme c'est bizarre...
Ajouter un commentaire
Ce document intitulé « parser un xml énorme » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?