Parser un xml énorme [Résolu/Fermé]

Signaler
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
-
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
-
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 : https://www.uniprot.org/downloads

14 réponses

Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
123
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.
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
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 ?
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
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?
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
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$

Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
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>


?
Messages postés
11
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
19 février 2008

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 )
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
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...)
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
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 ;-)
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
Le fichier je l'ai à la maison.
Je ne pourrai regarder que ce soir.
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
c'est parfait ;-)
ça m'evitera de travailler, je suis un peu paresseux ;-)
Messages postés
409
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
Ca alors un informaticien paresseux... XD
Comme c'est bizarre...