Autore |
Discussione |
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:07:47
|
Ciao! Ho scaricato tramite KEGG-API la lista completa delle reazioni di alcune pathway (in file.txt tab delimited) ma sono ordinate seguendo il Reaction number (R00001). Sto cercando (con poco successo!)di scrivere uno script in Perl per ordinare le reazioni nella successione biochimica corretta ispirandomi a ViMac http://www.bioinformaticslaboratory.nl/. Ho delle grosse difficolta ad isolare solo la parte del programma che mi interessa anche perche gli scripts sono collegati e molto intricati. Non e'che per caso qualcuno di voi ha gia messo a punto un programmino del genere (in versione moolto piu semplice) e mi riesce ad aiutare?
|
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Cittą: Barcelona/Bologna
2445 Messaggi |
Inserito il - 02 aprile 2009 : 17:17:33
|
Ciao, perché non fai un esempio di file di testo di input, e uno dell'output che vuoi ottenere? Lo potrai utilizzare anche come unitį di test. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:26:35
|
input rn:R01529 C00199 <=> C00231 rn:R01528 C00345 + C00006 <=> C00199 + C00011 + C00005 + C00080 rn:R02035 C01236 + C00001 <=> C00345
output rn:R02035 C01236 + C00001 <=> C00345 rn:R01528 C00345 + C00006 <=> C00199 + C00011 + C00005 + C00080 rn:R01529 C00199 <=> C00231 praticamente cambia solo l 'ordine. si puo fare manualmente ma....e'lunga...si puo chiedere a Perl di cercare la reazione che contiene nella sua parte sinistra uno o piu elementi della porzione destra della reazione precedente. Tra il dire e il fare c'e'di mezzo il mare .. |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Cittą: Barcelona/Bologna
2445 Messaggi |
Inserito il - 02 aprile 2009 : 17:31:19
|
Lo devi solo ordinare in base ad una colonna? Non e' complicato. Non capisco peró quale sia la colonna da ordinare. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Cittą: Barcelona/Bologna
2445 Messaggi |
Inserito il - 02 aprile 2009 : 17:35:05
|
Una cosa del genere:
output
rn:R11111 C00001 + C00002 <=> C00003
rn:R11112 C00003 + C00004 <=> C00005 + C00006 + C00007 + C00008
rn:R11113 C00007 <=> C00010 ?? |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:36:12
|
Le due colonne sono collegate: ad ogni equazione(2) corrisponde un reaction-number(1). Il programma dovrebbe "spostare" entrambe le colonne facendo riferimento soltanto alla seconda |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:38:50
|
anzi l'input puo' essere anche solo la colonna 2, lįltra la posso associare in seguito, quando e'gia tutto ordinato. |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:43:55
|
si esatto, l'output dovrebbe essere cosi.. |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Cittą: Barcelona/Bologna
2445 Messaggi |
Inserito il - 02 aprile 2009 : 17:45:51
|
Io lo farei in python piś che in perl, e possibilmente usando degli oggetti. Con perl impazziresti in mezzo ad 'hashes di hashes' e perderesti tempo.
Comunque non é chiaro l'algoritmo secondo cui vuoi ordinare. Una reazione puo' avere piu' di un prodotto, e ognuno di questi partecipare a piu' reazioni. In questi casi, come fai?
E' piu' giusto questo:
output
rn:R11111 C00001 + C00002 <=> C00003 + C00004
rn:R11112 C00003 + C00005 <=> C00006 + C00007 + C00008
rn:R11112 C00004 <=> C00009
o questo:
output
rn:R11111 C00001 + C00002 <=> C00003 + C00004
rn:R11112 C00004 <=> C00009
rn:R11112 C00003 + C00005 <=> C00006 + C00007 + C00008
|
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 02 aprile 2009 : 17:51:48
|
..non sono pratico di Phyton... vanno bene tutti e due gli output, entrambi hanno un senso logico nella successione (nel mio file vorrei evitare che due reazioni successive siano intervallate da 20 altre reazioni) |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Cittą: Barcelona/Bologna
2445 Messaggi |
Inserito il - 02 aprile 2009 : 18:01:09
|
Ti devi creare due variabili, una contenente le informazioni per le reazioni, e l'altra che sia un dizionario in cui per ogni metabolita, ti dica in quale reazione viene prodotto.
Vedi qui: - http://pastebin.com/m218014db
Purtroppo, tutto questo sarebbe piś facile con le classi. Inoltre, dovresti considerare di adottare un sistema piu' sicuro e comodo che i file di testo per organizzare i tuoi dati, come un database o un pickle. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
mikeee
Nuovo Arrivato
18 Messaggi |
Inserito il - 03 aprile 2009 : 09:24:05
|
Grazie, adesso ci rifletto un po! |
|
|
|
Discussione |
|