Hola,

Os amplio la informacion al codigo completo. Que estoy intentando probar
para

library("seqinr")

readseq <- read.fasta(file = "datos.fna")
numSeq3 <- length(readseq)

# Obtenemos la secuencia de valores que repiten 3 veces
# o más veces seguidas la misma secuencia.
# En nuestro caso tan solo queremos las AAA CCC GGG TTT
# Vamos a tener 9 filas, ya que analizamos desde cuando
# tenemos 3 caracteres juntos hasta cuando tenemos 12 valores
# del mismo caracter seguidos.
# Tan solo tenemos 4 columnas, ya que cada una de ellas
# identifica a cada una de las variables: a, c, g, t
# Recorremos el todo el fichero, hasta el final de sequencias.

matrizgraf3 <- matrix(0, nr=9, nc=4)


# Nos definimos un string en el que le vamos a ir concatenando
# letras al final, para que asi nos sirva de elemento de busqueda
# para que en cada iteracion nos diga cuantos elementos coinciden
# con esa cantidad de letras dentro de cada una de las secuencias.
listaa <- "aaa"
listac <- "ccc"
listag <- "ggg"
listat <- "ttt"

for(j in c(1:numSeq3)){
for (i in c(1:9)){
for(k in c(1:4)){
# Como comenzamos en 1, y queremos buscar
# a partir del elemento 3, por eso le vamos
# a incrementar en 2 elementos
auxiliar <- count(readseq[j],i+2)

aux_a <- auxiliar["listaa"]
if(aux_a > 0){
matrizgraf3[i][k] = matrizgraf3[i][k] + 1
listaa <- paste(listaa, "a", sep ="")
}
 aux_c <- auxiliar["listac"]
if(aux_c>0){
matrizgraf3[i][k] = matrizgraf3[i][k] + 1
listac <- paste(listac, "c", sep="")
}

aux_g <- auxiliar["listag"]
if(aux_g>0){
matrizgraf3[i][k] = matrizgraf3[i][k] + 1
listag <- paste(listag, "g", sep="")
}

aux_t <- auxiliar["listat"]
if(aux_t>0){
matrizgraf3[i][k] = matrizgraf3[i][k] + 1
listat <- paste(listat, "t", sep="")
}
 }
}
}

#GRAPHICO TRES

barplot(matrizgraf3,beside=TRUE,space=c(0.1,0.4),names.arg=c("3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"),col=c("green",
"blue", "red", "orange","black"),axes = TRUE, axisnames = TRUE, xlab=
"Homopolymer length", ylab = "counts")

legend("topright", c("T","A", "G","C","Other"), cex=0.4,
    bty="n", lty=c(1,1), lwd=c(0.8,0.8),col=c("green", "blue", "red",
"orange","black"));

title(main="Homopolymer counts", cex.main = 1,font.main= 3)

#FIN GRAPHICO TRES

dev.off()

Gracias

Saludos

David Sanchez Rodriguez

Web personal: www.dasanro.es
Blog: www.laideafeliz.es
Twitter: @dasanro <https://twitter.com/#!/dasanro>


El 6 de marzo de 2013 12:04, Carlos Ortega <cof@qualityexcellence.es>escribió:

> Hola,
>
> ¿Valor de "j"? ¿Valor de "i"?
> ¿"count()" es la función del paquete "plyr"?
>
> ¿Puedes enviar un ejemplo más reproducible?
> O darnos detalles de qué es lo que contiene "aux_a"...
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 6 de marzo de 2013 11:23, David Sanchez Rodriguez <dasanro@gmail.com>escribió:
>
>> Buenas,
>>
>> Me encuentro con el mismo problema, de que me dice que el argumento del if
>> no es un "valor ausente donde TRUE/FALSE es necesario"
>>
>> Este es mi codigo de pruebas.
>>
>> readseq <- "aaaaaaaaaaa", "aaa", "aa")
>> auxiliar <- count(readseq[j],i+2)
>> aux_a <- auxiliar["listaa"]
>> if(aux_a > 0){
>> matrizgraf3[i][k] = matrizgraf3[i][k] + 1
>> listaa <- paste(listaa, "a", sep ="")
>> }
>>
>>
>>
>> Gracias
>>
>> Saludos,
>>
>> David Sanchez Rodriguez
>>
>> Web personal: www.dasanro.es
>> Blog: www.laideafeliz.es
>> Twitter: @dasanro <https://twitter.com/#!/dasanro>
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

	[[alternative HTML version deleted]]

