Autore |
Discussione |
|
anty77
Nuovo Arrivato
8 Messaggi |
Inserito il - 17 febbraio 2010 : 12:22:00
|
Vorrei scrivere uno script in python che accetti in input un file di sequenze nucleotidiche in formato FASTA e restituisca in output un file contenente,per ogni sequenza, la lista degli anticodoni necessari per la traduzione,supponendo che la lettura avvenga nell'ordine 5'->3'.
Qualcuno mi potrebbe, gentilmente, aiutare? Grazie mille
|
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
|
anty77
Nuovo Arrivato
8 Messaggi |
Inserito il - 17 febbraio 2010 : 14:58:20
|
perchè mi serve per svolgere un esercizio!! |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 17 febbraio 2010 : 18:29:14
|
Mi dispiace, ma penso che dovresti leggere il regolamento del forum :-)
Prova a postare il codice che hai scritto fino ad adesso, o a descrivere quali librerie hai intenzione di usare e con quale approccio. Prova a descrivere il programma che scriverai in 4-5 punti, indicando come si potrebbero implementare. Se non fai questo, non ti potremo risponderti, il sommo Atreliu ci proibisce di risolvere problemi partendo da 0 :-) |
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 - 17 febbraio 2010 : 18:36:55
|
Rileggendo la tua domanda comunque mi sono reso conto che la risposta che ti avevo dato prima non era corretta... E' abbastanza semplice, devi solo dividere la sequenza in triplette e calcolare il complementare. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
MB
Nuovo Arrivato
58 Messaggi |
Inserito il - 17 febbraio 2010 : 21:15:47
|
non ho capito bene neanche io il problema.. devi fare un programma che faccia il complementare invertito? Se è così devi fare come dice dallolio invertire la stringa.. della serie...
INPUT: >fasta AAATTTGGG
OUTPUT: CCC AAA TTT |
|
|
anty77
Nuovo Arrivato
8 Messaggi |
Inserito il - 17 febbraio 2010 : 21:50:41
|
ad esempio potrei iniziare cosi per leggere il file e stamparlo:
from Bio import seqIO handle = open("file.fasta") for seq_record in SeqIO.parse(handle, "fasta") : print seq_record.id print seq_record.seq print len(seq_record.seq) handle.close()
il file fasta potrebbe essere in questo modo: >gi|179370:32-751 ATGGCGCACGCTGGGAGAACAGGGTACGATAACCGGGAGATAGTGATGAAGTACATCCATTATAAGCTGT CGCAGAGGGGCTACGAGTGGGATGCGGGAGATGTGGGCGCCGCGCCCCCGGGGGCCGCCCCCGCGCCGGG CATCTTCTCCTCGCAGCCCGGGCACACGCCCCATACAGCCGCATCCCGGGACCCGGTCGCCAGGACCTCG CCGCTGCAGACCCCGGCTGCCCCCGGCGCCGCCGCGGGGCCTGCGCTCAGCCCGGTGCCACCTGTGGTCC ACCTGACCCTCCGCCAGGCCGGCGACGACTTCTCCCGCCGCTACCGCCGCGACTTCGCCGAGATGTCCAG GCAGCTGCACCTGACGCCCTTCACCGCGCGGGGACGCTTTGCCACGGTGGTGGAGGAGCTCTTCAGGGAC
come faccio a dividere le sequenze in triplette?
Grazie a tutti per la disponibilità |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 18 febbraio 2010 : 18:09:31
|
Prima di tutto scriviti una funzione di test:
def test_list_anticodons():
seq1 = 'AAAACTACT'
expected_result = ('TTT', 'TGA', 'TGA')
assert list_anticodons(seq1) == expected_result
Quando hai definito uno o piú test, puoi iniziare a scrivere il codice. Un test é un esempio di quello che ti aspetti di vedere come output della tua funzione, dato un certo input. Per esempio io ho capito che se do in pasto alla tua funzione la stringa 'AAAACTACT' ottengo la tupla ('TTT', 'TGA', 'TGA'), e se questo é sbagliato vuol dire che non ho capito il tuo esempio.
def list_anticodons(seq):
"""given a sequence, return the list of tRNA anticodons"""
pass
Penso che in biopython non vi sia una funzione per ottenere le triplette direttamente dalla sequenza, cosí dovrai farlo manualmente. La maniera piu' classica per fare questo é usare le funzioni range e len:
def list_anticodons(seqfile):
"""given a sequence, return the list of tRNA anticodons"""
for seq_record in SeqIO.parse(seqfile):
# ogni "seq_record" e' un oggetto di tipo Bio.Seq, nel caso vi siano piu' di un record nella sequenza
for triplet_start in xrange(0, len(seq_record.seq), 3):
triplet = seq_record.seq[triplet_start, triplet_start+3]
print triplet
Da qui puoi continuare lavorando su 'triplet', che é una stringa di 3 caratteri. Nota che bisogna adattare il test affinché legga un file di testo invece che una stringa.
|
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
anty77
Nuovo Arrivato
8 Messaggi |
Inserito il - 18 febbraio 2010 : 18:25:34
|
Ok, grazie mille sei stato gentilissimo a presto |
|
|
|
Discussione |
|