#1 Le 08/10/2016, à 13:39
- MINYA
Chercher un mot dans un fichier, et extraire les réponses
Bonjour,
J'ai un fichier tab, qui présente un ensemble de données, non organisées en ligne, on va dire c'est un amas, je voudrais extraire des informations relatives à certains mots-clés (plusieurs ), et me faire un fichier résumant le résultat final.
Voici le fichier en lui-même
Entry Entry name Status Protein names Gene names Organism Length Protein existence Absorption Enzyme regulation pH dependence DNA binding Site Nucleotide binding Fragment Gene encoded by Alternative products (isoforms) Mass spectrometry Polymorphism RNA editing Sequence caution Mass Sequence Proteomes Pathway Active site Binding site Catalytic activity EC number Cofactor Function [CC] Kinetics Redox potential Temperature dependence Calcium binding Metal binding
P04637 P53_HUMAN reviewed Cellular tumor antigen p53 (Antigen NY-CO-13) (Phosphoprotein p53) (Tumor suppressor p53) TP53 P53 Homo sapiens (Human) 393 Evidence at protein level DNA_BIND 102 292 SITE 120 120 Interaction with DNA. ALTERNATIVE PRODUCTS: Event=Alternative promoter usage, Alternative splicing; Named isoforms=9; Name=1; Synonyms=p53, p53alpha; IsoId=P04637-1; Sequence=Displayed; Name=2; Synonyms=I9RET, p53beta; IsoId=P04637-2; Sequence=VSP_006535, VSP_006536; Note=Expressed in quiescent lymphocytes. Seems to be non-functional. May be produced at very low levels due to a premature stop codon in the mRNA, leading to nonsense-mediated mRNA decay.; Name=3; Synonyms=p53gamma; IsoId=P04637-3; Sequence=VSP_040560, VSP_040561; Note=Expressed in quiescent lymphocytes. Seems to be non-functional. May be produced at very low levels due to a premature stop codon in the mRNA, leading to nonsense-mediated mRNA decay.; Name=4; Synonyms=Del40-p53, Del40-p53alpha, p47; IsoId=P04637-4; Sequence=VSP_040832; Name=5; Synonyms=Del40-p53beta; IsoId=P04637-5; Sequence=VSP_040832, VSP_006535, VSP_006536; Name=6; Synonyms=Del40-p53gamma; IsoId=P04637-6; Sequence=VSP_040832, VSP_040560, VSP_040561; Name=7; Synonyms=Del133-p53, Del133-p53alpha; IsoId=P04637-7; Sequence=VSP_040833; Note=Produced by alternative promoter usage.; Name=8; Synonyms=Del133-p53beta; IsoId=P04637-8; Sequence=VSP_040833, VSP_006535, VSP_006536; Note=Produced by alternative promoter usage and alternative splicing.; Name=9; Synonyms=Del133-p53gamma; IsoId=P04637-9; Sequence=VSP_040833, VSP_040560, VSP_040561; Note=Produced by alternative promoter usage and alternative splicing.; 43,653 MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD UP000005640: Chromosome 17 COFACTOR: Name=Zn(2+); Xref=ChEBI:CHEBI:29105; ; Note=Binds 1 zinc ion per subunit.; FUNCTION: Acts as a tumor suppressor in many tumor types; induces growth arrest or apoptosis depending on the physiological circumstances and cell type. Involved in cell cycle regulation as a trans-activator that acts to negatively regulate cell division by controlling a set of genes required for this process. One of the activated genes is an inhibitor of cyclin-dependent kinases. Apoptosis induction seems to be mediated either by stimulation of BAX and FAS antigen expression, or by repression of Bcl-2 expression. In cooperation with mitochondrial PPIF is involved in activating oxidative stress-induced necrosis; the function is largely independent of transcription. Induces the transcription of long intergenic non-coding RNA p21 (lincRNA-p21) and lincRNA-Mkln1. LincRNA-p21 participates in TP53-dependent transcriptional repression leading to apoptosis and seem to have to effect on cell-cycle regulation. Implicated in Notch signaling cross-over. Prevents CDK7 kinase activity when associated to CAK complex in response to DNA damage, thus stopping cell cycle progression. Isoform 2 enhances the transactivation activity of isoform 1 from some but not all TP53-inducible promoters. Isoform 4 suppresses transactivation activity and impairs growth suppression mediated by isoform 1. Isoform 7 inhibits isoform 1-mediated apoptosis. Regulates the circadian clock by repressing CLOCK-ARNTL/BMAL1-mediated transcriptional activation of PER2 (PubMed:24051492). {ECO:0000269|PubMed:11025664, ECO:0000269|PubMed:12810724, ECO:0000269|PubMed:15186775, ECO:0000269|PubMed:15340061, ECO:0000269|PubMed:17317671, ECO:0000269|PubMed:17349958, ECO:0000269|PubMed:19556538, ECO:0000269|PubMed:20673990, ECO:0000269|PubMed:20959462, ECO:0000269|PubMed:22726440, ECO:0000269|PubMed:24051492, ECO:0000269|PubMed:9840937}. METAL 176 176 Zinc.; METAL 179 179 Zinc.; METAL 238 238 Zinc.; METAL 242 242 Zinc.
Et voici le bout de code que je débute, mais qui m'affiche pour l'instant tout le fichier, et non le mot spécifié !
chaine = "Cellular"
f = open("uniprot-id%3AP04637.tab", "r")
for line in f:
if chaine in line:
print line
f.close()
Merci
Peace
Hors ligne
#2 Le 08/10/2016, à 14:00
- claudius01
Re : Chercher un mot dans un fichier, et extraire les réponses
Bonjour,
Des exemples de mots clé avec le résultat attendu seraient les bienvenus.
Sinon, dans quel(s) langage(s) préfères tu travailler ?
Hors ligne
#3 Le 08/10/2016, à 14:17
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
En python pardon, je n'avais pas précisé !
Les mots clés en fait diffèrent en fonction des réponses, en fait ce que j'ai mis là, est un seul fichier tab qui correspond à une seule protéine, j'ai plus de 1000 protéines à comparer, donc en fait, je cherche celles qui ont le plus de similitude en fonction des données.
Exemple de mots clés : tumor, Cellular, SITE, FUNCTION, activity...En fait j’ajuste ma recherche au fur et à mesure !
Merci
Dernière modification par MINYA (Le 08/10/2016, à 14:18)
Peace
Hors ligne
#4 Le 08/10/2016, à 14:36
- claudius01
Re : Chercher un mot dans un fichier, et extraire les réponses
Ok, mais indépendamment du langage, dommage que ce fichier tab n'ait pas, sauf erreur de ma part, de séparateur et sur les mots clé et sur les données associées ;-(
Hors ligne
#5 Le 08/10/2016, à 14:43
- Compte anonymisé
Re : Chercher un mot dans un fichier, et extraire les réponses
Bonjour,
Si, le fichier a des séparateurs, j'ai testé avec Libreoffice Calc et en prenant la tabulation comme séparateur ça colle pile poil.
Les 1000 protéines sont dans 1000 fichiers séparés ? Toujours avec les mêmes mots clés dans le même ordre ?
Cordialement
#6 Le 08/10/2016, à 14:46
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
En fait toutes les protéines que je veux comparer sont dans le même fichier tab, l'une après l'autre, et oui, c'est les mêmes mots clés !
Peace
Hors ligne
#7 Le 08/10/2016, à 14:46
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
Je voulais juste montrer un exemple de fichier
Peace
Hors ligne
#8 Le 08/10/2016, à 14:54
- Compte anonymisé
Re : Chercher un mot dans un fichier, et extraire les réponses
Question bête alors, pourquoi pas utiliser Libreoffice pour faire cela ?
C'est quand même plus visuel, tu pourra mettre un filtre dans la première ligne pour afficher ce que tu veux et cacher les colonnes qui t’intéresse pas.
#9 Le 08/10/2016, à 15:43
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
Je n'ai pas le choix, je récupère un fichier englobant les informations de 14000 protéines en fait, sur un site qui est une base de données pour les protéines. Ils proposent un fichier xml et txt, mais les informations diffèrent, le plus complet c'est le tab.
Peace
Hors ligne
#10 Le 08/10/2016, à 16:11
- pingouinux
Re : Chercher un mot dans un fichier, et extraire les réponses
Bonjour,
Le programme que tu montres en #1 fait exactement ce que tu lui demandes : imprimer les lignes contenant Cellular
Ton fichier d'entrée a deux lignes, dont la seconde contient le mot cherché.
Hors ligne
#11 Le 08/10/2016, à 16:29
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
Dans ce cas là, je m'y prends mal, je dois réorganiser mon fichier alors non ?
Le tout en deux lignes, les mots clés en haut (ligne 1), et leur réponse en (ligne2).
Sinon, mon programme m'afficher tout le contenu du fichier et non juste la réponse à mon mot clé.
Exemple avec le mot : FUNCTION
chaine = "FUNCTION"
f = open("uniprot-id%3AP04637.tab", "r")
for line in f:
if chaine in line:
print line
f.close()
Voilà ce qu'il m'affiche (tout le contenu) :
P04637 P53_HUMAN reviewed Cellular tumor antigen p53 (Antigen NY-CO-13) (Phosphoprotein p53) (Tumor suppressor p53) TP53 P53Homo sapiens (Human) 393 Evidence at protein level DNA_BIND 102 292 SITE 120 120 Interaction with DNA. ALTERNATIVE PRODUCTS: Event=Alternative promoter usage, Alternative splicing; Named isoforms=9; Name=1; Synonyms=p53, p53alpha; IsoId=P04637-1; Sequence=Displayed; Name=2; Synonyms=I9RET, p53beta; IsoId=P04637-2; Sequence=VSP_006535, VSP_006536; Note=Expressed in quiescent lymphocytes. Seems to be non-functional. May be produced at very low levels due to a premature stop codon in the mRNA, leading to nonsense-mediated mRNA decay.; Name=3; Synonyms=p53gamma; IsoId=P04637-3; Sequence=VSP_040560, VSP_040561; Note=Expressed in quiescent lymphocytes. Seems to be non-functional. May be produced at very low levels due to a premature stop codon in the mRNA, leading to nonsense-mediated mRNA decay.; Name=4; Synonyms=Del40-p53, Del40-p53alpha, p47; IsoId=P04637-4; Sequence=VSP_040832; Name=5; Synonyms=Del40-p53beta; IsoId=P04637-5; Sequence=VSP_040832, VSP_006535, VSP_006536; Name=6; Synonyms=Del40-p53gamma; IsoId=P04637-6; Sequence=VSP_040832, VSP_040560, VSP_040561; Name=7; Synonyms=Del133-p53, Del133-p53alpha; IsoId=P04637-7; Sequence=VSP_040833; Note=Produced by alternative promoter usage.; Name=8; Synonyms=Del133-p53beta; IsoId=P04637-8; Sequence=VSP_040833, VSP_006535, VSP_006536; Note=Produced by alternative promoter usage and alternative splicing.; Name=9; Synonyms=Del133-p53gamma; IsoId=P04637-9; Sequence=VSP_040833, VSP_040560, VSP_040561; Note=Produced by alternative promoter usage and alternative splicing.; 43,653 MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD UP000005640: Chromosome 17 COFACTOR: Name=Zn(2+); Xref=ChEBI:CHEBI:29105; ; Note=Binds 1 zinc ion per subunit.; FUNCTION: Acts as a tumor suppressor in many tumor types; induces growth arrest or apoptosis depending on the physiological circumstances and cell type. Involved in cell cycle regulation as a trans-activator that acts to negatively regulate cell division by controlling a set of genes required for this process. One of the activated genes is an inhibitor of cyclin-dependent kinases. Apoptosis induction seems to be mediated either by stimulation of BAX and FAS antigen expression, or by repression of Bcl-2 expression. In cooperation with mitochondrial PPIF is involved in activating oxidative stress-induced necrosis; the function is largely independent of transcription. Induces the transcription of long intergenic non-coding RNA p21 (lincRNA-p21) and lincRNA-Mkln1. LincRNA-p21 participates in TP53-dependent transcriptional repression leading to apoptosis and seem to have to effect on cell-cycle regulation. Implicated in Notch signaling cross-over. Prevents CDK7 kinase activity when associated to CAK complex in response to DNA damage, thus stopping cell cycle progression. Isoform 2 enhances the transactivation activity of isoform 1 from some but not all TP53-inducible promoters. Isoform 4 suppresses transactivation activity and impairs growth suppression mediated by isoform 1. Isoform 7 inhibits isoform 1-mediated apoptosis. Regulates the circadian clock by repressing CLOCK-ARNTL/BMAL1-mediated transcriptional activation of PER2 (PubMed:24051492). {ECO:0000269|PubMed:11025664, ECO:0000269|PubMed:12810724, ECO:0000269|PubMed:15186775, ECO:0000269|PubMed:15340061, ECO:0000269|PubMed:17317671, ECO:0000269|PubMed:17349958, ECO:0000269|PubMed:19556538, ECO:0000269|PubMed:20673990, ECO:0000269|PubMed:20959462, ECO:0000269|PubMed:22726440, ECO:0000269|PubMed:24051492, ECO:0000269|PubMed:9840937}. METAL 176 176 Zinc.; METAL 179 179 Zinc.; METAL 238 238 Zinc.; METAL 242 242 Zinc.
Peace
Hors ligne
#12 Le 08/10/2016, à 16:36
- pingouinux
Re : Chercher un mot dans un fichier, et extraire les réponses
Quel résultat attends-tu avec FUNCTION, par exemple ?
Hors ligne
#13 Le 08/10/2016, à 16:57
- claudius01
Re : Chercher un mot dans un fichier, et extraire les réponses
Déjà, je passerais ledit tab qui est, entre nous un CSV, dans un format XML.
Ce qui donne (je n'ai pas tout collé) avec Convert CSV to XML (à vérifier;-):
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row>
<FIELD1>Entry</FIELD1>
<FIELD2>Entry name</FIELD2>
<FIELD3>Status</FIELD3>
...
<FIELD31>Function [CC]</FIELD31>
<FIELD32>Kinetics</FIELD32>
<FIELD33>Redox potential</FIELD33>
<FIELD34>Temperature dependence</FIELD34>
<FIELD35>Calcium binding</FIELD35>
<FIELD36>Metal binding</FIELD36>
</row>
<row>
<FIELD1>P04637</FIELD1>
<FIELD2>P53_HUMAN</FIELD2>
<FIELD3>reviewed</FIELD3>
...
<FIELD31>FUNCTION: Acts as a tumor suppressor in many tumor types; induces growth arrest or apoptosis depending on the physiological circumstances and cell type. Involved in cell cycle regulation as a trans-activator that acts to negatively regulate cell division by controlling a set of genes required for this process. One of the activated genes is an inhibitor of cyclin-dependent kinases. Apoptosis induction seems to be mediated either by stimulation of BAX and FAS antigen expression, or by repression of Bcl-2 expression. In cooperation with mitochondrial PPIF is involved in activating oxidative stress-induced necrosis; the function is largely independent of transcription. Induces the transcription of long intergenic non-coding RNA p21 (lincRNA-p21) and lincRNA-Mkln1. LincRNA-p21 participates in TP53-dependent transcriptional repression leading to apoptosis and seem to have to effect on cell-cycle regulation. Implicated in Notch signaling cross-over. Prevents CDK7 kinase activity when associated to CAK complex in response to DNA damage, thus stopping cell cycle progression. Isoform 2 enhances the transactivation activity of isoform 1 from some but not all TP53-inducible promoters. Isoform 4 suppresses transactivation activity and impairs growth suppression mediated by isoform 1. Isoform 7 inhibits isoform 1-mediated apoptosis. Regulates the circadian clock by repressing CLOCK-ARNTL/BMAL1-mediated transcriptional activation of PER2 (PubMed:24051492). {ECO:0000269|PubMed:11025664, ECO:0000269|PubMed:12810724, ECO:0000269|PubMed:15186775, ECO:0000269|PubMed:15340061, ECO:0000269|PubMed:17317671, ECO:0000269|PubMed:17349958, ECO:0000269|PubMed:19556538, ECO:0000269|PubMed:20673990, ECO:0000269|PubMed:20959462, ECO:0000269|PubMed:22726440, ECO:0000269|PubMed:24051492, ECO:0000269|PubMed:9840937}.</FIELD31>
<FIELD32></FIELD32>
<FIELD33></FIELD33>
<FIELD34></FIELD34>
<FIELD35></FIELD35>
<FIELD36>METAL 176 176 Zinc.; METAL 179 179 Zinc.; METAL 238 238 Zinc.; METAL 242 242 Zinc.</FIELD36>
</row>
</root>
Et après, libre à toi d'utiliser les bibliothèques de traitement de données XML proposées en Python...
Dernière modification par claudius01 (Le 08/10/2016, à 17:06)
Hors ligne
#14 Le 08/10/2016, à 17:26
- MINYA
Re : Chercher un mot dans un fichier, et extraire les réponses
Déjà, je passerais ledit tab qui est, entre nous un CSV, dans un format XML.
Si je prends le fichier tel quel, il y a en effet des erreurs (j'ai vérifié), donc il faut d'abord que je réorganise mon fichier d'origine, ne pas oublier aussi que mon fichier (le vrai) contient plus de 14000 protéines (je ne sais pas si ça pourra le faire) !
Peace
Hors ligne
#15 Le 08/10/2016, à 18:08
- claudius01
Re : Chercher un mot dans un fichier, et extraire les réponses
Si je prends le fichier tel quel, il y a en effet des erreurs (j'ai vérifié), donc il faut d'abord que je réorganise mon fichier d'origine, ne pas oublier aussi que mon fichier (le vrai) contient plus de 14000 protéines (je ne sais pas si ça pourra le faire) !
Il va de soit que les convertisseurs en ligne refuseront de prendre en compte des milliers de lignes; choisir un convertisseur à télécharger localement...
Quitter ce format CVS au profit du XML permet de manipuler le fichier final avec plus de souplesse et surtout d'éviter de le parser à la main qui sera source d'erreurs inévitables. De plus, passer de XML à XML ou à un autre format (but de XSLT), en extraire (XPATH) ou comparer des données (cf. A comparative study of XML dif f tools et VM Tools User Documentation - v0.5 - sujet très ardu et vieux comme le monde XML ;-) et ce sur des milliers d'enregistrements est plus facile surtout si Python est l'orchestre (cf. XML - eXtensible Markup Language et en autre XML et python).
Maintenant l'autre alternative est de passer lesdites données à une base de données et là c'est Byzance pour peu que l'on maîtrise la question, ce qui n'est pas mon cas car c'est un métier à part entière ;-)
À suivre...
Edit: @ ... choisir un convertisseur à télécharger localement.... Je suis sûr que Python offre dans ses nombreux packages une telle conversion :-)
Dernière modification par claudius01 (Le 08/10/2016, à 18:32)
Hors ligne
#16 Le 08/10/2016, à 23:17
- mandeb
Re : Chercher un mot dans un fichier, et extraire les réponses
bonsoir,
Claudius01 a raison, c'est un travail typique pour une base de données.
Il suffit de remplir un table avec votre fichier et de faire des requêtes en langage SQL sur cette table.
Si vous avez Python, vous disposez du moteur de BDD Sqlite (il est installé avec python automatiquement). Il vous faut ensuite un petit utilitaire d'exploitation de Sqlite, il en existe plusieurs gratuits sur le net, perso j'utilise Sqlitestudio.
Cet utilitaire vous permet de créer une base, d'y ajouter une table par import direct depuis votre fichier TAB puisque d'après votre exemple la première ligne contient des en-têtes de colonnes. Il est en français et très complet.
Ensuite un peu d'autoformation à SQL sur le net (il y a des dizaines de tutos un peu partout) en regardant particulier la fonction SELECT avec toute ses possibilités de conditions de sélection, ce qui vous suffira largement dans un premier temps. Ca ne demandera pas beaucoup de temps, le langage est très proche de l'anglais naturel. Les résultats des requêtes SELECT sont exportables dans des format compatibles avec tous les tableurs existants.
Le temps de mise en œuvre de cette solution est, à mon humble avis, largement inférieur (auto-formation comprise) à celui de l'écriture d'un code python, de son débogage (ce qui est presque toujours le plus long). De plus, une fois formé c'est fou le nombre de situations où ce type de solution peut resservir.
bon courage.
Hors ligne
#17 Le 09/10/2016, à 05:35
- pingouinux
Re : Chercher un mot dans un fichier, et extraire les réponses
@MIINYA : Tu n'as pas répondu à ma question en #12
Hors ligne