Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 [python] leggere una seq e scomporla in triplette
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

anty77
Nuovo Arrivato



8 Messaggi

Inserito il - 02 marzo 2010 : 14:25:17  Mostra Profilo  Visita l'Homepage di anty77 Invia a anty77 un Messaggio Privato  Rispondi Quotando
Ciao, qualcuno è sarebbe così gentile da aiutarmi a fare un esercizio di un esame su python. Non avendo pratica nella programmazione riscontro difficoltà nello svolgimento.

L'esercizio che dovrei svolgere è di bioinformatica:

Script python che riceve in imput un file di sequenze nucleotidiche in formato fasta e restituisca in output un file con
le stesse sequenze, nelle quali ciascun codone sia modificato in modo random senza alterare la corrispondente sequenza aminoacidica

Qualcuno sarebbe cosi gentile da aiutarmi?

comincio con la lettura e la stampa del file

file=open('1.fasta','r')
S=file.readlines()
print S

e poi mi blocco

Grazie

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 02 marzo 2010 : 16:44:42  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
Innanzitutto prendiamo come esempio un file fasta:

>seq1
ACACAGTGCTAC
CGGCGATATATT
CACAC



La prima cosa da fare é distinguere le linee che contengono l'intestazione (ovvero iniziano con '>') da quelle che contengono la sequenza. Per farlo, puoi prendere il primo carattere di ogni linea e con '>':

for line in S:
    # verifica che la linea corrente non sia vuota
    if line.strip() != '':
        if line[0] == '>':
            # questa é una linea di intestazione
        elif line[0].upper() in ('A', 'C', 'G', 'T', 'N'):
            # questa linea contiene una sequenza

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

anty77
Nuovo Arrivato



8 Messaggi

Inserito il - 02 marzo 2010 : 16:58:48  Mostra Profilo  Visita l'Homepage di anty77 Invia a anty77 un Messaggio Privato  Rispondi Quotando
ok,
successivamente come faccio a scorrere le line a 3 a 3?penso si possa fare con un ciclo for...
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 02 marzo 2010 : 18:03:44  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
per scorrere la seq 3 a 3 devi fare un loop in range(0, len(seq)-2, 3) e usare il valore ottenuto come indice.

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

anty77
Nuovo Arrivato



8 Messaggi

Inserito il - 02 marzo 2010 : 18:24:23  Mostra Profilo  Visita l'Homepage di anty77 Invia a anty77 un Messaggio Privato  Rispondi Quotando
faccio cosi:

for tripletta in range(0, len(line)-2, 3):
triplet = line[tripletta, tripletta+3]
print triplet

ma mi da errore
come mai?
grazie
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 02 marzo 2010 : 18:34:46  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
é line[triplette:tripletta+3], non line[tripletta,tripletta+3]

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

anty77
Nuovo Arrivato



8 Messaggi

Inserito il - 02 marzo 2010 : 19:00:18  Mostra Profilo  Visita l'Homepage di anty77 Invia a anty77 un Messaggio Privato  Rispondi Quotando
ok grazie
l'ultimo passo è sostituire i codoni in modo random facendo riferimento alla tabbel del codice genetico
come posso fare?
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 02 marzo 2010 : 22:14:03  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
beh, puoi dare una occhiata al modulo random e random.choice..

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina