Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 Laboratorio
 Bioinformatica e Biostatistica
 Esercizio in R: ContaMotif(dna)
 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  

ki4rett4
Nuovo Arrivato



35 Messaggi

Inserito il - 03 marzo 2011 : 13:15:59  Mostra Profilo  Visita l'Homepage di ki4rett4 Invia a ki4rett4 un Messaggio Privato  Rispondi Quotando
Buongiorno ragazzi domani dovrò sostenere l' esame orale di informatica....Spero che qualcuno possa correggermi questo esercizio di programmazione in R:

Scrivere una funzione contaMotif(dna) che prende in input una sequenza di dna rappresentata come un vettore di caratteri: "A","T","C","G" e restituisce il numero di occorrenze del motif:
GC[T]T(1,2)A all' interno della sequenza.
Si ricorda che:
-Le parentesi quadre racchiudono le basi che possono comparire in quella posizione
-Le parentesi graffe racchiudono le basi che non possono comparire in quelle posizioni
-Il punto . equivale a [ATGC], cioè che in tale posizione può comparire qualsiasi base
-Le parentesi tonde indicano l' intervallo di basi qualsiasi che possono comparire in tali posizioni


Io l' ho risolto in questo modo:

contaMotif <- function ( dna ) {
contatore <- 0
indiceMax1<- length ( dna ) - 6
indiceMax2<- length(dna)-5
for ( i in c ( 1 : indiceMax1 ) ) {
if (dna [ i ] == "G" & dna[i+1]=="C" & dna[i+2]=="T" & dna[i+3]=="T" & dna[i+6]=="A"){
contatore<-contatore+1
}
}
for(i in c(1:indiceMax2)){
if(dna [ i ]== "G" & dna[i+1]=="C" & dna[i+2]=="T" & dna[i+3]=="T" & dna[i+5]=="A"){
contatore <- contatore + 1
}
}
return ( contatore )
}

Il problema è che quando considero che il motif è lungo 7,mi conta correttamente....quando considero che è lungo 6, mi dice che c' è qualche errore.
Il motif può essere lungo o 6 o 7 proprio perchè in posizione 5 possono esserci o 1 o 2 basi!! Spero che qualcuno riesca a capire dov' è l' errore visto che domani il prof. me lo farà sicuramente eseguire all' esame!
Grazie mille anticipatamente a tutti!!

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 03 marzo 2011 : 14:07:05  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Ti dà errore perchè
dna[i+6]
va a leggere dna[7] quando i=1. Se la sequenza è di 6bp, dna[7] non esiste.

Dovresti quindi avere un controllo sulla lunghezza della stringa.

PS: come ho già detto in passato questa è una delle soluzioni più inefficienti di risolvere questo tipo di problemi e -semmai ti ritrovassi a dover risolvere un problema del genere in una situazione reale- dovresti evitare assolutamente questo tipo di approccio, molto prono ad errori.

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
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