Professional Documents
Culture Documents
Antes de empezar, el curso, es necesario que generes una carpeta llamada genpobs en la que vas a
copiar todos los archivos que se te vayan dando a lo largo del curso y en donde vas a realizar todas
las prcticas. Si ests en sistema Unix (linux / Mac), genera la carpeta en tu home: $ mkdir
~/genpobs . Si ests en windows, abre el navegador de archivos y genera la carpeta en
C:/genpobs . Revisa que tengas permiso de lectura escritura y ejecucin sobre esa carpeta ( $
chmod u+rwx ~/genpobs/ ). A partir de ahora, esta carpeta va a ser tu ruta de trabajo
QU ES R
http://www.r-project.org/
language and environment for statistical computing and graphics. It is a GNU
R is a
project (http://www.gnu.org) which is similar to the S language and environment which was developed at
Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues. R can be
considered as a different implementation of S. There are some important differences, but much code written
for S runs unaltered under R.
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series
analysis, classification, clustering, ...) and graphical techniques, and is highly extensible. The S language is
often the vehicle of choice for research in statistical methodology, and R provides an Open Source
route to participation in that activity.
One of R's strengths is the ease with which well-designed publication-quality plots can be produced, including
mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor
design choices in graphics, but the user retains full control.
R is available as Free Software under the terms of the Free Software
Foundation's GNU General Public License in source code form. It compiles and runs
on a wide variety of UNIX platforms and similar systems (including FreeBSD and Linux), Windows and
MacOS.
DESCARGAR E INSTALAR R
R se puede descargar a partir de varios servidores repartidos al rededor de todo el mundo llamados
The Comprehensive R Archive Network alias CRAN . En teora, todos los
servidores tienen la misma informacin en el mismo idioma (ingls) por lo que se recomienda
utilizar cualquiera de ellos.
Esto va a abrir el archivo sources.list desde el editor de textos. Ve al final del documento y aande
la siguiente lnea:
deb http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ version/
En donde dice versin debes escribir tu versin de ubuntu (lucid, precise, quantal, saucy, trusty).
Guarda y cierra el editor de texto.
En la consola escribe SOLO UNA de estas dos lneas:
$ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
Y luego escribe:
$ gpg -a --export E084DAB9 | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install R-base
INICIAR R
Si ests en windows o mac, haz click sobre el cono de R: o del manejador que ests usando.
Si ests en linux, abre una consola y escribe: R , si tienes el manejador de R, escribe su nombre: $
rstudio haz doble click sobre el cono del manejador (ej. Rstudio).
El smbolo > se conoce como prompt (en y es indicador de que R est listo para recibir
instrucciones.
De esta forma, podemos guardar los datos de un nio de 3 aos llamado Camilo en diferentes
variables:
> nombre <- Camilo # las variables de tipo caracter se indican entre comillas. Si no las
escribes entre comillas, entonces R entiende que se trata del objeto
cuyo nombre el Camilo.
> nombre # solicita el contenido del objeto nombre
> copiaNombre <- nombre # si indicas nombre sin comillas, entonces R guarda el objeto
llamado nombre en el objeto llamado copiaNombre (hace una
copia del objeto)
> copiaNombre # solicita el contenido del objeto copiaNombre
> copiaNombre <- nombre # si utilizas el mismo nombre de objeto, R sobreescribe el
anterior.
> copiaNombre # solicita el contenido del objeto copiaNombre
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 4
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
1.- Empezando con R VI CONGRESO NACIONAL
DE ECOLOGA
El principio bsico de R es que se pueden hacer operaciones matemticas con las variables:
> edad * 10
> resultado <- (edad * 10) + ( (4 1) / 1.5 )
> resultado
> edad == 4 # la operacin de igualdad se indica con doble igual
> edad < 5
> nombre == Camilo | nombre == Ernesto & edad < 5 # la operacin lgica (OR)
se indica con el
smbolo | (pipe) y el
smbolo Y (AND) se
indica con & (and)
Para borrar objetos del sistema se usa rm (remove):
> ls ( ) # para ver los objetos creados.
[1] "copiaNombre" "edad" "masculino" "nombre"
[5] "resultado"
> rm ( resultado , copiaNombre , masculino ) # borra los objetos enlistados. Siempre
van entre comillas y separados por
comas.
> ls ( )
Ejercicio2. En un archivo de texto simple, escribe los comandos para generar los
siguientes objetos (no escribas el smbolo de prompt y escribe un solo comando en
cada lnea): a) objeto nombre que contenga tu nombre completo; b) objeto
apellido donde introduzcas tu primer apellido; c) objeto nace en el que
introduzcas el ao de tu nacimiento. d) objeto edad en donde se calcule tu edad a
partir del objeto nace; e) objeto mayoria1 donde se calcule, a partir del objeto edad,
si eres (TRUE) o no eres (FALSE) mayor a 17 aos pero menor a 20; f) objeto
mayoria2 donde se calcule, a partir del objeto edad, si eres mayor o igual a 20 aos
pero menor a 22; g) objeto mayoria3 donde calcule, a partir del objeto edad, si eres
mayor o igual a 22 aos; h) objeto freqH que calcule la frecuencia de hombres de un
saln con 15 hombres y 24 mujeres
TERMINAR R
desde la consola de R, escribe:
> q ()
Save workspace image? [y/n/c]: # en esta opcin te est preguntando si quieres guardar toda tu
> data ( ) # Cuandodata se ejecuta vaco, genera el listado de todos los datos de ejemplo que
tiene cargado R. Pica la tecla q para salir.
> data ( women ) # Cuando se ejecuta con el nombre de uno de los datos de ejemplo, carga los
datos en un objeto de R con el mismo nombre.
> ls ( ) # ls muestra el listado de objetos de R guardados en el sistema.
> women # luego de cargar data, se pueden ver los datos invocndolos con su nombre.
> vignette ( ) # Cuando vignette se ejecuta vaco, muestra un listado con todos los distintos
tutoriales de cada uno de los paquetes.
> R.Version ( ) # R.Version muestra todas las caractersticas del sistema y de R
> history ( ) # history muestra el historial de todos los comandos que se han escrito en la
sesin de R.
> savehistory ( ArchivoConHistorial_clase1.txt ) <- savehistory guarda el historial en
un archivo de texto simple en la carpeta de
trabajo.
flecha arriba y flecha abajo # las flechas hacia arriba y hacia abajo van mostrando los
comandos previamente utilizados en la sesin de R.
Son muy tiles para no estar escribiendo varias veces el
mismo comando.
TabuladorTabulador.
TabuladorTabulador R, tiene un sistema inteligente de prediccin de escritura. Cuando
picas tabulador dos veces, el sistema busca predecir lo que le quieres
escribir, por ejemplo, vamos a buscar el comando mahalanobis:
> mTabTab # escribe m y luego pica dos veces tabulador. R comprende que ests buscando un
comando que inicia con m, as que te muestra todos los que inician con m.
> search ( ) # este comando (con argumento vaco) muestra la lista de paquetes activos (cargados
y listos para usarse)
> library ( ) # este comando (con argumento vaco) muestra la lista de todos los paquetes
instalados en R (activos o no)
Muchas libreras estn escritas directamente en R, por lo que no necesitan nada ms que el mismo
sistema R para ser instaladas, pero existen muchas otras que estn escritas en otros lenguajes de
programacin o utilizan libreras no incluidas en R que necesitas instalar en tu computadora primero
independientemente de R, por ejemplo, muchas de ellas requieren C++, algunas otras utilizan
fortran, etc... Para eso necesitar ir al CRAN y revisar, en la pgina especfica de la librera, las
dependencias que require (en Depends) y que si no tiene, vas a tener que instalar, as como las
funciones (y/o programas) que va a requerir importar (en Imports) e igualmente, si no las tienes,
vas a tener que instalar primero. En algunos casos, viene otro apartado SystemRequirements que
tambin debes de revisar.
A continuacin vamos a aprender a instalar una librera desde el CRAN. Por ejemplo, la librera
adegenet.
> install.package ( adegenet ) #install.package se usa para instalar un paquete. Eentra
a internet, baja el archivo del paquete y lo instala.
Installing package into /usr/local/R/linux-gnu-library/3.1
(as lib is unspecified)
--- Please select a CRAN mirror for use in this session ---
Va a salir una ventana con un listado de todos los servidores CRAN de R. Selecciona uno cualquiera
al azar. Cualquiera de ellos debe tener los mismos paquetes en el mismo idioma (no creas que los
servidores de Mxico -que, se encuentran en el ITAM o en el Colegio de Posgraduados- tienen los
paquetes en espaol). Todos los paquetes estn en ingls.
Revisa que la instalacin no indique ningn error. Felicidades, ya tienes instalado el paquete
adegenet!!!
Nota: Muchos paquetes requieren que tu mquina tenga instalado algn compilador de C++ y
muchos otros requieren de la instalacin previa de otros paquetes, revisa la pgina de informacin
del CRAN. Por ejemplo, adegenet, requiere de la instalacin previa de ade4.
Muchas libreras de R, requieren utilizar otro tipo de libreras que luego no estn incluidas en los
sistemas. te recomendamos ampliamente, que antes, instales las libreras
rgdal : En algunas mquinas, vas a necesitar primero ir a www.gdal.org y descargar e instalar gdal
primero. Busca en google: How to install rgdal in windows How to install rgdal in
linux. En linux, prueba instalando: $ sudo apt-get install rgl libproj-dev gdal
Fortran : Algunas pocas libreras requieren de la instalacin previa de fortran. Busca en google:
How to install fortran in windows
En caso de que marque algn error, lee la salida y escribe ese error en google, seguramente alguien
tuvo ese mismo error y ya lo solucion. Recuerda que en ingls suele haber ms informacin
2.- ENTORNO DE R
En esta prctica, se indica en texto blanco sobre fondo negro las instrucciones que debes de
escribir en la consola de R. El smbolo > de la consola de R se conoce como prompt y es un
indicador de que el programa R est listo para recibir rdenes. Se indica en texto blanco sobre
fondo gris, los textos de salida que muestra la consola de R (y que no necesitamos ingresar).
En primera instancia, establecemos la carpeta de trabajo:
> setwd ( C:/Genpobs ) # Si tu mquina est en windows
> setwd ( ~/Genpobs ) # Si tu mquina est en linux mac (el smbolo ~ quiere decir:
/home/usuario/).
INICIAR R
Si ests en windows o mac, haz click sobre el cono de R: o del manejador que ests usando.
Si ests en linux, abre una consola y escribe: $ R , si tienes el manejador de R, escribe su nombre:
$ rstudio haz doble click sobre el cono del manejador (ej. Rstudio)
DATOS EN R
R tiene diversas estructuras de datos:
a) Vectores : listado de elementos -una sola dimensin-, ya sean numricos, de texto o lgicos
(todos los elementos tienen que ser del mismo tipo); por ejemplo de texto: Gaby,
Jaime,Enrique, Lev o numrico: 1,5,3,5,7,3,6 o lgico:
TRUE,FALSE,TRUE,TRUE
b) Matrces : tabla de elementos, ya sean numricos, de texto o lgicos ordenados en columnas
y renglones 2 dimensiones- (todos los elementos tienen que ser del mismo tipo):
alumno sexo edad
1 1 26
2 1 25
3 2 25
4 1 27
5 2 20
2 1 26
salon2:
sexo edad
1 2 27
2 1 20
d) DataFrames : tabla en el que cada columna puede ser de un tipo distinto, ya sea
numricos, de texto o lgicos ordenados en columnas del mismo largo.
ID Nombre Edad Recursa
1 Pepito 25 FALSE
2 Josefita 47 TRUE
3 Miguelito 19 FALSE
e) Listas : Variable que guarda uno o ms de cualquiera de los elementos anteriores: vector(es),
matrz(ces), arreglo(s), dataframe(s) u otra(s) lista(s).
Tomado de Kabacoff RI (2011). R in Action. Data analysis and graphics with R. Edit. Manning Publications.
VECTORES
Para generar un vector, se utiliza la funcin combine: c ( )
> a <- c ( 4, 6, 3, -6, 0) #genera un objeto con un vector numrico.
>a
> b <- c ( Enrique, Gaby, Jaime, Lev ) # genera un objeto con un vector de
caracteres
>b
> c <- c ( TRUE, TRUE, FALSE, FALSE, TRUE) # genera un objeto con un vector lgico
>c
> d <- c (4, 5, 3, 4, 10, -3, a, 5, 3, 23, -9, 0) # genera un objeto con un vector de caracteres
>d
Los elementos de un vector estn numerados de uno hasta length(vector). Para solicitar elementos
particulares de un vector, se indica el nmero de elemento que se desea solicitar dentro de corchetes
vector [ ] :
> seq <- seq ( from = 1, to = 10, by = 0.1 ) # Generamos un vector.
> length ( seq )
> seq
> seq [ 2 ]
> seq [ 7 ]
> seq [ length (seq ) ]
Dentro de los corchetes se puede indicar un vector que solicite varias posiciones:
> seq
> seq [ c( 2, 7:9, 14 ) ]
Si se utiliza el smbolo menos dentro de los corchetes, se excluye el elemento negativo:
> seq [ c ( -1 : -80 ) ]
Tambin se puede hacer alguna proposicin lgico/matemtica dentro del corchete:
> seq [ seq > 7.5 ]
> seq [ seq > 1.5 & seq < 2.6 ]
Ejercicio 1. Genera tres vectores: uno de caracteres con los nombres de los integrantes
del grupo, un segundo vector lgico en el que indiques si son mujeres o no (TRUE,
FALSE), y un tercer vector numrico en el que indiques sus edades. Los datos de los
tres vectores deben estar en el mismo orden (una posicin por cada individuo).
Finalmente, escribe el cdigo para un cuarto vector que solo muestre, a partir de los
MATRICES
Para generar una matrz, se utiliza el comando matrix y se utiliza la siguiente sintaxis:
matrix ( valores , nrow = #deRenglones, ncol = #deColumnas, byrow = TRUE )
> valores <- c (hora1, bicho1, hora2, bicho2, hora3, bicho3) # genero el
vector con los valores.
> ja <- matrix ( valores, nrow = 3, ncol = 2, byrow = FALSE )
> ja
> ja <- matrix ( valores, nrow = 3, ncol = 2, byrow = TRUE )
> ja
Podemos ver algunas caractersticas de la matrz:
> class ( ja ) # nos muestra el tipo de objeto
> ncol ( ja ) # muestra el nmero de columnas
> nrow ( ja ) # muestra el nmero de renglones
> length ( ja ) # muestra el nmero de celdas
> colnames ( ja ) # colnames muestra un vector con los nombres de lass columnas
> colnames ( ja ) <- c (Hora, Bicho) # le asignamos un vector de valores
> ja
> intermedio <- c ( 1 : nrow (ja) ) # genero un vector con nmeros desde 1 hasta 3
> rownames ( ja ) <- intermedio # asigno nombres a los renglones
> ja
Los valores de una matrz estn organizados en coordenadas (igual que excel) en el formato:
(rengln, columna). Para solicitar elementos particulares de una matrz, solo se tiene que indicar las
coordenadas entre corchetes: [ rengln , columna ] .
> ja
> ja [1,2] # solicita rengln uno columna dos
> ja [2,1] # solicita rengln dos, columna uno
Tambin puedes usar vectores dentro de este sistema:
> ja [ c(1,3) , 1 ] # solicita los renglones uno y tres de la columna uno
Si no indicas la columna o el rengln, R entiende que quieres todos:
> ja [ , 1 ] # toda la columna uno
> ja [ 1 , ] # todo el rengln uno.
Si las columnas o renglones tienen nombre, puedes solicitarlos por su nombre:
DATA.FRAME
Los dataframe son muy parecidos a las matrices pero tienen la ventaja de que cada columna puede
tener elementos diferentes (aunque dentro de la columna no se permite mezclar). Los datos de SNP
(Single Nucleotide Polymorphisms) suelen venir en data.frames.
> rownames ( ja )
> colnames ( ja )
> names ( ja ) # en data.frames, es sinnimo de colnames
LISTAS
Primero generamos dos vectores y dos data.frames
> estado <- c ( GRO, HGO )
> TamMtra <- c ( 340, 506, 320, 456, 672 )
> tratamiento <- matrix ( c(1:4), nrow=2, ncol=2 )
> mtras <- matrix( c(15:4), nrow=3, ncol=4)
Genero la lista:
> Mylista <- list (Edo=estado, N=TamMtra,
trat=tratamiento, mtras=matras )
> Mylista
describo la lista:
> class( Mylista )
> names ( Mylista )
> length ( Mylista )
solicito datos:
> Mylista
> Mylista [ [ 2 ] ]
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 15
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
2.- Entorno de R VI CONGRESO NACIONAL
DE ECOLOGA
> Mylista [ [ 2 ] ] [ 3 ]
> Mylista$Edo
> Mylista$Edo[ 1 ]
> names(Mylista)
> Mylista$mtras
> Mylista[ [ 4 ] ] [ 2, 4 ]
SCRIPTS
Cierra R. Abre un editor de texto simple (como Block de Notas, Word Pad, Gedit emacs
vi, etc... PERO NUNCA WORD!!!! ), escribe el texto que esgt en el recuadro de abajo (ten
mucho cuidado en copiarlo EXACTAMENTE IGUAL!!!! ) y gurdalo en un archivo llamado:
~/GenPobs/prac2/MyPrimerPrograma.R
MyPrimerPrograma.R:
########################################### Inicio de script
# toda linea que inicie con smbolo de nmero no se lee!!!
print ("Hola Mundo!!!");
nombre <- readline(prompt="Escribe tu nombre:")
edad <- readline(prompt="Escribe tu edad:")
edad<- as.numeric(edad)
fechaHoy<-Sys.time()
YearHoy <- format(fechaHoy,"%Y")
YearHoy <- as.numeric(YearHoy)
nace<-YearHoy-edad
print( paste("Hoy es:",fechaHoy,sep=" ") )
print( paste("Hola ",nombre,", naciste en ",nace,sep="") )
############################################ Termina el script
Felicidades !!! acabas de escribir tu primer cdigo fuente y de ejecutar tu primer programa de
cmputo!!!!!.
En gentica de poblaciones existen muchos formatos (quiz demasiados) para guardar informacin
de genotipos (prcticamente, cada programa utiliza uno propio): genepop, arlequin, fstat, beast,
mrbayes, tffpga, etc... En esta seccin vamos a aprender a generar bases de datos genotpicas a
partir de un gel electrofortico (a formato genepop y arlequn), de secuencia a partir de un
cromatograma (a formato fasta) y de SNP a partir de un data.frame. Luego vamos a aprender cmo
ingresar estos formatos a R.
Tambin existen muchas formas de ingresar esta informacin a R. En esta seccin vamos a ver
cmo ingresar la informacin de formato Genepop y fasta y tambin vamos a ver como convertirla
en otros formatos tiles para algunas otras libreras y/o programas de gentica de poblaciones.
EL FORMATO GENEPOP
El formato genepop, fue desarrollado para el ser utilizado en el programa Genepop
(http://kimura.univ-montp2.fr/~rousset/Genepop.htm) escrito por Raymond & Rousset (J Hered.
1995. 86:248-249 y Mol. Ecol. 2008. 8:103-106). Es un formato muy sencillo, escrito en un
archivo de texto simple (ej. block de notas, gedit o emacs) que permite describir datos genotpicos
de individuos en poblaciones (no se utiliza para secuencias).
Si por algn motivo no se puede tener los datos de algn loci (missing data), se indica como 00. A
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 20
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
3.- Bases de datos de Gentica de Poblaciones VI CONGRESO NACIONAL
DE ECOLOGA
minipop.gen :
Cinco loci, 2 poblaciones con 5 individuos en cada una
Loc1
Loc2
Loc3
Loc4
Y-linked
POP
AA8, 0405 0711 0304 0000 0505
AA9, 0405 0609 0208 1010 0505
A10, 0205 0609 0101 1010 0305
A11, 0405 0606 0102 1010 0504
A12, 0202 0609 0105 0000 0507
Pop
AF, 0000 0000 0000 1010 0505
AF, 0205 0307 0102 0000 0505
AF, 0202 0609 0202 0000 0505
AF, 0205 0909 0000 0000 0505
AF, 0205 0307 0202 1010 0505
Los archivos de entrada para los programas de gentica de poblaciones (como Genepop) son
archivos de texto simple, por lo que pueden ser generados, editados, y/o visualizados con un
programa de texto simple como Block de notas o Word pad (en windows), gedit, emacs, vi (en
linux) o textedit (mac). NUNCA se debe usar word para editar, abrir o guardar un archivo de
entrada, pues word (o cualquier otro equivalente) guarda en el archivo caracteres ocultos de formato
(tipo de hoja, tipo de letra, tamao, etc.. etc..).
Para leer un archivo de genepop con la librera adegenet, usamos el comando read.genepop :
> require (adegenet) #cargar la librera
> help ( adegenet ) # ver manual del paquete
> help (read.genepop) # ver manual del comando
Los objetos genind son objetos especiales de R generados y ledos por la librera
adegenet que contienen toda la informacin (y de hecho un poco ms) contenida en el archivo
genepop; para ver toda la informacin de un objeto de este tipo, usamos el smbolo @ precedido
por el nombre del objeto del que queremos obtener la informacin:
> gen@tab # contiene la matriz de frecuencias allicas ; Si se ingresan individuos,
la matrz muestra la frecuencia del alelo por individuo (si son diploides:
1=homcigo; 0.5= hetercigo); cada columna es un alelo de un locus, por
ejemplo: L01.1 (Locus1.alelo1). Si se ingresan poblaciones, muestra las
frecuencias allicas por poblacin.
> gen@tab[1:5,1:10] # Matriz de frecs. alelics. solo pedimos los renglones uno a cinco y las
columnas uno a diez
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 22
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
3.- Bases de datos de Gentica de Poblaciones VI CONGRESO NACIONAL
DE ECOLOGA
Otros comandos para solicitar Y EDITAR informacin de un objeto tipo genind son:
> nInd(gen) # muestra el nmero total de individuos
> nLoc(gen) # muestra el nmero de loci
> indNames(gen) #muestra el nombre de los individuos
> locNames(gen) # muestra el nombre de cada uno de los loci
> alleles(gen) # muestra una lista con los nombres de cada uno de los alelos para cada uno de los
loci
> alleles(gen)[[ 1 ]] # llamamos los nombres de cada uno de los alelos del primer locus
> ploidy(gen) # muestra la ploda
> pop (gen) # Indica la poblacin de cada uno de los individuos
Si deseas cambiar alguno de estos elementos (por ejemplo, el nombre de los loci):
> locNames(gen)
> locNames(gen) <- c( micro1, micro2, micro3, micro4,
micro5, micro6, micro7, micro8,
micro9, micro10 )
> locNames(gen)
Para cambiar el nombre de los individuos, podemos usar indNames(gen) <- c(nuevos valores ) .
> indNames (gen)
> pop ( gen ) <- c( rep(Pob1, 30 ) , rep(Pob2 30), .... )
EL FORMATO ARLEQUN
Arlequin es otro programa de amplio uso en gentica de poblaciones. Fue escrito por Laurent
Excoffier (Mol. Ecol Res. 2010. 10:564-567) y se puede descargar de manera gratuita en :
http://cmpg.unibe.ch/software/arlequin35/. El formato de arlequn tiene mas opciones que el
formato genepop (como ingresar datos de estructura, matrices de distancia, etc...) y se puede utilizar
para datos de tipo genotpico o de secuencias. Para conocer el formato Arlequn con detenimiento,
te invitamos a revisar el manual del programa. En esta ocasin no vamos a analizar el formato
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 23
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
3.- Bases de datos de Gentica de Poblaciones VI CONGRESO NACIONAL
DE ECOLOGA
Arlequn, sin embargo, basta mencionar que desde R puedes convertir un archivo en formato
genepop con extensin (*.gen) en un archivo formato Arlequn (extensin *.arp).
EL FORMATO FASTA
El formato fasta es el formato de secuencias ms simple para guardar la informacin de DNA, RNA
o aminocidos. Las secuencias de DNA o RNA se obtienen mediante los mtodos de
secuenciacin. La secuenciacin es un conjunto de metodologas que se encuentra en constante
cambio y desarrollo, sin embargo, uno de los formatos de salida ms comunes en la secuenciacin
clsica tipo sanger es el formato ABIF. El formato ABIF tambin conocido como AB1 es un
archivo binario (con ceros y unos pero solo leble por la computadora, no por el ojo humano), que
contiene, entre muchas otras cosas, las longitudes de onda de cada una de las letras que se leyeron
en la muestra de DNA durante el proceso de secuenciacin. Para poder visualizar un cromatograma,
requieres de un programa especfico (puedes ser BioEdit, Consed algn otro programa diseado
para leer cromatogramas).
Recuerda que las primeras y ltimas letras de una secuenciacin suelen tener muchos errores.
Revisa el cdigo IUPAC para cidos nuclicos: se suele utilizar la letra N para indicar una letra
desconocida (cualqier letra), R para una purina cualquiera (A o G), Y para una purimidina
cualquiera (C, T, U).
Para leer un archivo fasta con la librera ape, usamos el comando read.fasta . Este comando
genera objetos tipo DNAbin (Dna binario)
> secs <- read.FASTA( "~/GenPobs/basesdedatos/Agaves_psbA.fasta" ) # guarda el fasta
en el objeto DNAbin
> class (secs )
> secs
> names ( secs ) # muestra las cabeceras
> length ( secs ) # muestra el nmero de secuencias
> length ( secs [[ 1 ]] ) # muestra el largo de la primer secuencia
> sectres <- secs [ 3 ] # extrae la tercer secuencia y la guarda en un nuevo objeto.
> sectres
> potatorum <- secs$Apotatorum_psbA_trnH # guarda en un nuevo obj. la secuencia
llamada Apotatourm_psbA_trnH
> potatorum
Ejercicio 10. Investiga la funcin cat y sin ejecutarla, deduce qu hara la funcin:
> cat ( as.character(secs)[[1]], sep="" )
uno, dos, tres y cuatro desde el objeto DNAbin y escribe el nuevo archivo
como ~/GenPobs/prac3/Agave_psbA_seleccion.fasta
> Mydata2
> Mydata2$SNP3 <- c(AA, AA) # agreagamos de ltimo momento
> Mydata2
> rownames ( Mydata2 ) <- c( "uno", "dos" )
> Mydata2
va una matrix:
> Mydata3 <- matrix(nrow=2, ncol=2)
> Mydata
> Mydata3[,1] <- SNP1
> Mydata3[,2] <- SNP2
> Mydata3
> colnames(Mydata3) <- c("SNP1","SNP2")
> rownames(Mydata3) <- c("uno","dos")
> Mydata3 <- as.data.frame (Mydata3)
> Mydata3
Tambin podemos leerlo desde un archivo. Por ejemplo, vamos a leer la base de datos
~/GenPobs/basesdedatos/BichoBola_SNP.csv, pero primero, brelo con un editor de textos
simple para ver su contenido.
Nota: los archivos csv tambin se pueden abrir con el programa EXCEL. En caso de que lo hagas,
ten cuidado de no cambiar el formato del archivo (a xls u algn otro). Mejor brelos con un editor
de texto simple.
Para generar el mapa, necesitamos un vector con la latitud en sistema decimal de las poblaciones,
otro vector con la longitud en sistema decimal.
En un estudio de conservacin de la zorra gris (Urocyon cinereoargenteus), se capturaron 6
individuos para su genotipificacin con SNP; sus datos se encuentran en el archivo
~/GenPobs/basesdedatos/ZorraGris_SNP.csv)
1.- Primero, cargamos los datos en forma de data.frame:
> Mydatos<- read.table ( "~/GenPobs/basesdedatos/ZorraGris_SNP.csv",
header=T, sep=",")
> names(Mydatos)
> Mydatos
2.- Cargamos la librera:
> require(RgoogleMaps)
> help (bbox)
> help (GetMap)
> help (PlotOnStaticMap)
3.- Determinamos el rea que queremos dibujar con el comando qbbox :
> area <- qbbox (lat=Mydatos$lat, lon=Mydatos$lon)
> area
4.- Generamos una variable con los datos de los puntos que queremos graficar:
ENRIQUE SCHEINVAR, GABRIELA CASTELLANOS-MORALES Y LUIS EGUIARTE, 2017 Pg. 32
Introduccin a la gentica de poblaciones: entendiendo la teora y aprendiendo a analizar los datos
4.- Medidas de variacin y equilibrio de Hardy-Weinberg VI CONGRESO NACIONAL
DE ECOLOGA
Ejercicio 1. Genera el mapa de los datos del ejercicio 2 del captulo 3 Bases de datos
de Gentica de poblaciones .
Si observas el formato genind (particularmente la seccin @tab) podrs notar que tiene una
estructura organizada por individuos:
> data.adegenet@tab
A continuacin vamos a convertir nuestro objeto genind en un objeto de R llamado genepop
(no confundir con el formato del ARCHIVO genpop) que contiene la misma informacin pero por
poblaciones (va a perder los datos individuales).
> data.genepop <- genind2genpop(data.adegenet)
>data.genepop@tab
Ejercicio 1. Grafica las frecuencias allicas de cada uno de los loci, en cada una
de las poblaciones.
Fig. Correlacin (r =1.0; p<<0.05) entre Fig. Heterocigosis observada (cuadros verdes) y
polimorfismo y Heterocigosis. esperada (crculos rojos) por loci.
Fig. Dendograma upgma de las distancias Fig. rbol del vecino ms cercano de las
genticas de nei entre las poblaciones. distancias genticas de nei entre las poblaciones.
plot (upgma)
### guardamos el arbol en archivo
require (ape)
write.tree ( as.phylo(upgma) , file="Upgma_Fst.tree")