miércoles, 23 de febrero de 2011

Descarga de secuencias Nucleotidicas de GenBank desde R

El post anterior manejaba distancias geneticas desde secuencias nucleotidicas; pero como y donde se obtienen estas secuencias?:


Una forma de obtener las secuencias es bajandolas una por una! desde el GenBank. Pero esto definitivamente es super tedioso!!!, ya que de hecho navegar por la pagina del GenBank es complicado como tal sí uno no sabe como buscar y en que enlaces entrar, y cuando uno necesita un gran numero de secuencias lleva mucho pero mucho tiempo decargarlas una por una!!!
Gracias a (Dios, Alá, Yahveh o Jehová, Zeus, Achamán, Ahura Mazda, Kamisama, Cao Dái, Waheguru, Shang Di, Elohim, cualquiera que sea!! o definitivamente a Emmanuel Paradis) existe ape en R y nos permite bajar secuencias del GenBank mucho mas sencillo y de una forma muy rapida por muchas que sean las secuencias a bajar... 


Para ello lo primero que debemos hacer es construir una matriz de formato .csv que contenga el codigo de cada secuencia que vayamos a bajar, los nombres de todos los taxa y el nombre del gen de las secuencias que vayamos a utilizar!!: (Para este ejemplo utilizaremos una matriz en formato .csv con 29 Especies de Canidos representativos de todo el mundo y  las secuencias que se bajaran pertenecen al mismo gen (TRSP) para todo los taxa).
Entonces la apariencia de la matriz de datos construida en formato .csv debe der asi:



"cod","taxon","gen"
AY609086,Alopex_lagopus,TRSP
AY609087,Atelocynus_microtis,TRSP
AY609088,Canis_adustus,TRSP
AY609089,Cuon_alpinus,TRSP
AY609091,Canis_aureus,TRSP
AY609092,Chrysocyon_brachyurus,TRSP
AY609094,Canis_latrans,TRSP
AY609095,Canis_lupus,TRSP
AY609097,Canis_mesomelas,TRSP
AY609098,Cerdocyon_thous,TRSP
AY609084,Canis_familiaris,TRSP
AY609101,Pseudalopex_griseus,TRSP
AY609104,Pseudalopex_gymnocercus,TRSP
AY609100,Pseudalopex_sechurae,TRSP
AY609106,Fennecus_zerda,TRSP
AY609108,Lycaon_pictus,TRSP
AY609109,Nycteruetes_procyonoides,TRSP
AY609112,Otocyon_megalotis,TRSP
AY609115,Speothos_venaticus,TRSP
AY609117,Urocyon_cinereoargenteus,TRSP
AY609120,Vulpes_corsac,TRSP
AY609121,Vulpes_macrotis,TRSP
AY609122,Vulpes_vulpes,TRSP
AY609123,Ursus_americanus,TRSP
DQ093097,Ailuropoda_melanoleuca,TRSP
DQ093098,Mirounga_augustirostris,TRSP
DQ093099,Odobenus_rosmarus,TRSP
DQ093100,Enhydra_lutris,TRSP
DQ093101,Lontra_longicaudis,TRSP
DQ093102,Procyon_lotor,TRSP

Donde la primera fila muestra que la tabla contiene tres columnas con sus respectivos nombres: "cod" (codigo), "taxon" y "gen".
Despues de tener el archivo formato.csv llamado "canidos.csv"que acabamos de crear y ponerlo en el directorio sobre el cual estamos trabajando en R, Iniciamos con la descarga de secuencias:


>library(ape)
#(Suponiendo que ya hemos descargado el paquete "ape" se debe llamar el paquete a R con el comando anterior.)


>berraco <- read.csv("canidos.csv",header=T)
# (Con este comando leemos la tabla creada anteriormente y usamos el vector de codigos para hacer del objeto secuencias, con el argumento "header=T" o "header=TRUE" le indicamos que la primera fila de nuestra tabla son los nombre de cada columna, de lo contrario utilizamos "header=F" o "header=FALSE")


>seqcanidae <- read.GenBank(berraco$cod)
#(leemos los codigos del GenBank del objeto antes creado "berraco" y leemos la columna "cod")


>nombres <-mat.or.vec(length(berraco$taxon),1)
#(Tomamos los nombres del objeto "berraco" y consturimos un vector de nombres para las secuencias de los codigos que acabamos de leer)

>nombres <-paste(berraco$taxon)
#(Unimos los nombres que esten espaciados)

>names(seqcanidae) <- nombres
#(Se le asiganan los nombres a las secuencias del objeto "seqcanidae" con el vector de nombres que creamos)

>write.dna(seqcanidae, "canidae.fas", format = "fasta")
#(Bajamos las secuencias finalmente y las escribimos en formato fasta con el nombre de "canidae.fas", este archivo quedara guardado en el directorio sobre el cual estemos trabajando)


>write.nexus.data(seqcanidae, "canidae.nex", format = "nexus")
#(Tambien podemos escribir las secuencias en otor tipo de formatos como el formato "nexus" pero esto ya se hace depende de los requerimientos del usuario. Otro tipo de formatos mirar el manual de ape.)

No siendo mas....
Hasta la proxima....

1 comentario:

  1. Hola Ambrosio te hago una consulta, cree un script en R con las lineas que indicaste más arriba, sin embargo al ejecutarlo me aparece el mensaje: Error en scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
    la linea 10 no tiene 3 elementos
    que puede ser???(la línea 10 del archivo si tiene 3 elementos). Desde ya muchas gracias. Mi nombre es Alfredo. Mi mail es alfredoholley@yahoo.com.ar

    ResponderEliminar