Parentela

Parentela

Blog: genetica forense y probabilidad

Familias y mucho más
¿No os acordáis? sen^2 x + cos^2 x = 1 :))))))

relMix-pedigries 1

SoftwarePostado por Lourdes Prieto Solla vie, mayo 25, 2018 19:44:25

Definiendo pedigríes sencillos

Hola queridos!
Hoy os voy a mostrar una de las cosas más entretenidas de relMix, la definición de los pedigríes. Es como hacer sudokus! Incluso podríamos hacer una competición para ver quién hace el pedigrí más complejo.

Como sabéis, por defecto, relMix ya viene con los típicos pedigríes de un caso estándar de paternidad: el que define el trío padre-madre-hijo (llamado "Paternity") y el que define que el presunto padre no está realmente relacionado con el hijo (llamado "Unrelated", definiendo sólo la relación madre-hijo). Seguro que os habéis preguntado cómo relMix establece las relaciones de parentesco. Bueno, pues lo hace con una de las funciones de Familias en R, llamada FamiliasPedigree, creada por Peter Mostad y que se basa en una función anterior llamada kinship2. Me parece bastante difícil que yo pueda entender con claridad cómo funciona FamiliasPedigree, pero es bastante fácil darle órdenes.

Esto os va a ser muy útil para usar relMix con otros pedigríes que no sean el típico trío, ya vemos un ejemplo después. Pero es mejor empezar por lo más sencillo, el trío. El pedigrí se define mediante 4 vectores. Ya empezamos ... vectores, estudié esto en el Jurásico!! Pero no nos compliquemos, un vector no es más que una lista de valores, y para que R lo entienda hay que escribirlo con una "c" y unos paréntesis que contienen los valores. Ejemplo para tres valores: c("valor1", "valor2", "valor3").

Bueno, pues ya casi sabemos todo lo que necesitamos saber en cuanto a programación, lo demás es lógica pura. Vamos a ver entonces los cuatro vectores necesarios:

a) En el primer vector (llamado id), definimos los individuos necesarios para el pedigrí, por ejemplo: c("mother", " child", "AF") para el típico trío

b) En el segundo vector (llamado dadid) definimos los padres de cada uno de los individuos del primer vector. En el caso del trío, no nos interesa para nada quién es el padre de "mother", ni quién es el padre del presunto padre "AF", así que sólo tenemos que decir que "Not Available" (NA). El orden de los valores es el que define a quién nos estamos refiriendo, me explico, en el vector id, el valor "mother" está en la primera posición, así que en este vector "dadid", tenemos poner quién es el padre de "mother" también en la primera posición. Y lo mismo para las siguientes posiciones. Así, con el vector

c(NA, "AF", NA)

estamos diciendo que no nos importa quién es el padre de "mother" (primera posición), que el padre de "child" es "AF" (segunda posición), y que no nos no nos importa quién es el padre de "AF" (tercera posición). ¿Se entiende?

c) En el tercer vector (llamado momid) definimos las madres de cada uno de los individuos del primer vector. En el caso del trío, también teniendo en cuenta sus posiciones:

c(NA, "mother", NA)

Traducido a frase: no nos importa quién es la madre de "mother", la madre de "child" es "mother", y no nos no nos importa quién es la madre de "AF".

d) Y el cuarto vector (llamado sex) nos sirve para establecer el género de cada individuo. En el caso de que "child" fuera una niña, el vector se definiría:

c("female", "female", "male")

Es decir, "mother" es "female", "child" es también "female" y "AF" es "male". El hecho de que los varones no puedan quedarse embarazados facilita mucho este vector ;)))))

Bueno, pues ya casi lo tenemos! Ahora sólo tenemos que llamar a FamiliasPedigree y mandarle que cree el pedigrí teniendo en cuenta la información que le damos en los 4 vectores. Hay varias formas de escribir el código para esto, pero la más sencilla tiene la estructura:

ped1 <- FamiliasPedigree(vector1, vector2, vector3, vector4)

Es decir, en el ejemplo que hemos visto, sería:

ped1 <- FamiliasPedigree(c("mother", "child", "AF"), c(NA, "AF", NA), c(NA, "mother", NA), c("female", "female", "male"))

Qué contenta estoy!! Me siento menos analfabeta al saber interpretar unas líneas de código!! Los jóvenes no pensaréis lo mismo, pero para los que somos del siglo pasado esto es todo un hito!


Una vez que ya sabemos todo esto, es más fácil definir el pedigrí para hipótesis alternativa (AF no está relacionado con child):

ped2 <- FamiliasPedigree(c("mother", "child", "AF"), c(NA, NA, NA), c(NA, "mother", NA), c("female", "female", "male"))

La única diferencia con ped1 está en el segundo vector (dadid), que define quién es el padre de "child".

Bueno, algo muy importante, los vectores dadid, momdid y sex deben tener la misma longitud que el vector id siempre, es decir, si id tiene tres valores, los demás deben tener también 3 valores. Como os he dicho, lógica pura.

Podéis descargaros aquí un resumen de todo lo que hemos visto.

En el siguiente post veremos cómo definir los pedigríes para resolver este caso:

Una mujer mantiene relaciones sexuales con dos hermanos y queda embarazada. Con el fin de saber cuál de los dos es el padre del bebé antes de su nacimiento, se somete a una prueba no invasiva de paternidad a partir de plasma.

Y nada más por hoy, que me he enrollado mucho! Dejarme sólo que le de las gracias a Thore por revisarme esto. Y esta vez se merece mucho el agradecimiento, pues están teniendo temperaturas de 20 grados por las noches en Oslo y él ha tenido la paciencia de sentarse a leer esto, perdiéndose un rato del Caribe Noruego!!




Fill in only if you are not real





Se permiten las siguientes etiquetas XHTML: <b>, <br/>, <em>, <i>, <strong>, <u>. No se permiten estilos CSS y Javascript.
Postado por Hortensia Cano vie, mayo 25, 2018 19:58:09

Gracias a todos!! Nos ayudan a estar actualizados siempre. Saludos