Saltar al contenido principal
LibreTexts Español

10.4: R y forma

  • Page ID
    149946
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    El análisis de la forma biológica es una técnica realmente útil. Inspirado en obras altamente influyentes de D'Arcy Thompson\(^{[1]}\), toma en cuenta no las medidas lineales sino toda la forma del objeto: contornos de dientes, huesos, hojas, pétalos de flores e incluso objetos 3D como cráneos o picos.

    Naturalmente, la forma no es exactamente datos de medición, debe analizarse con enfoques especiales. Existen métodos basados en el análisis de curvas (es decir, coeficientes de Fourier) y métodos que utilizan puntos de referencia y splines de placa delgada (TPS). El último método permite visualizar formas alineadas con PCA (en el llamado espacio tangente) y trazar cuadrículas de transformación.

    En R, varios paquetes capaces de realizar este análisis estadístico de forma, o morfometría geométrica. El análisis de Fourier es posible con momocs, y el análisis de puntos de referencia se usa a continuación con el paquete geomorfo:

    Código\(\PageIndex{1}\) (R):

    library(geomorph)
    TangentSpace2 <- function(A){
    x <- two.d.array(A)
    pc.res <- prcomp(x)
    pcdata <- pc.res$x
    list(array=x, pc.summary=summary(pc.res), pc.scores=pcdata)}

    (Se definió una función adicional para simplificar el flujo de trabajo).

    Los datos provienen de las medidas foliares del aliso. Hay dos archivos de datos: dataset morfométrico clásico con múltiples mediciones lineales y conjunto de datos morfométricos geométricos:

    Código\(\PageIndex{2}\) (R):

    am <- read.table("data/bigaln.txt", sep=";", head=TRUE)
    ag <- readland.tps("data/bigaln.tps", specID="imageID")

    Los datos morfométricos geométricos se prepararon con programa separado, TPSDig\(^{[2]}\). En el campo, cada hoja estaba contorneada con lápiz afilado, y luego se escanearon todas las imágenes.

    Captura de pantalla 2019-02-01 a las 9.39.33 PM.png
    Figura\(\PageIndex{1}\) Ejemplo de tres contornos de hojas de aliso con ubicaciones emblemáticas.

    A continuación, se suministraron imágenes PNG a TPSDig y pasaron por mapeo de puntos de referencia\(^{[3]}\). En total, hubo 12 puntos de referencia: superior, base y puntos finales de los primeros cinco pares (inferiores) de venas foliares primarias (Figura\(\PageIndex{1}\)). Tenga en cuenta que en la morfometría geométrica, el número preferible de casos debe ser > 11 veces mayor que el número de variables.

    El siguiente paso es el Análisis Generalizado de Procrustes (GPA). El nombre hace referencia a bandido de la mitología griega que hizo que sus víctimas encajaran en su cama ya sea estirando sus extremidades o cortándolas (Figura\(\PageIndex{2}\)). GPA alinea todas las imágenes juntas:

    Captura de pantalla 2019-02-01 a las 9.40.59 PM.png
    Figura\(\PageIndex{2}\) Teseo y Procrustes (de Attic rojo-figura cuello ánfora, 470—460 a.C.).

    Código\(\PageIndex{3}\) (R):

    ag <- readland.tps("data/bigaln.tps", specID="imageID")
    gpa.ag <- gpagen(ag)

    ... y siguiente análisis de componentes principales sobre los resultados de GPA:

    Código\(\PageIndex{4}\) (R):

    ag <- readland.tps("data/bigaln.tps", specID="imageID")
    gpa.ag <- gpagen(ag)
    ta.ag <- TangentSpace2(gpa.ag$coords)
    screeplot(ta.ag$pc.summary) # importance of principal components
    pca.ag <- ta.ag$pc.summary$x

    (Comprueba tú mismo la trama de la PCA).

    Ahora podemos trazar los resultados (Figura\(\PageIndex{3}\)). Por ejemplo, comprobemos si las hojas de las ramas superiores (índices P.1 altos) difieren en su forma de las hojas de ramas inferiores (pequeños índices P.1):

    Código\(\PageIndex{5}\) (R):

    ag <- readland.tps("data/bigaln.tps", specID="imageID")
    gpa.ag <- gpagen(ag)
    ta.ag <- TangentSpace2(gpa.ag$coords)
    pca.ag <- ta.ag$pc.summary$x
    pca.ag.ids <- as.numeric(gsub(".png", "", row.names(pca.ag)))
    branch <- cut(am$P.1, 3, labels=c("lower", "middle", "top"))
    b.code <- as.numeric(Recode(pca.ag.ids, am$PIC, branch, char=FALSE)) # recode.r
    plot(pca.ag[, 1:2], xlab="PC1", ylab="PC2", pch=19, col=b.code)
    legend("topright", legend=paste(levels(branch), "branches"),pch=19, col=1:3)

    Bueno, la diferencia, si incluso existe, es pequeña.

    Ahora traza formas consensuadas de hojas superiores e inferiores. Primero, necesitamos formas medias para todo el conjunto de datos y por separado para las ramas inferior y superior, y luego enlaces para conectar puntos de referencia:

    Código\(\PageIndex{6}\) (R):

    ag <- readland.tps("data/bigaln.tps", specID="imageID")
    gpa.ag <- gpagen(ag)
    c.lower <- mshape(gpa.ag$coords[, , b.code == 1])
    c.top <- mshape(gpa.ag$coords[, , b.code == 3])
    all.mean <- mshape(gpa.ag$coords)
    ag.links <- matrix(c(1, rep(c(2:7, 12:8), each=2), 1),ncol=2, byrow=TRUE)

    Finalmente, trazamos cuadrículas de transformación de D'Arcy Thompson (Figura C.5.1):

    Código\(\PageIndex{7}\) (R):

    ag <- readland.tps("data/bigaln.tps", specID="imageID")
    ag.links <- matrix(c(1, rep(c(2:7, 12:8), each=2), 1),ncol=2, byrow=TRUE)
    old.par <- par(mfrow=c(1, 2))
    GP <- gridPar(grid.col="grey", tar.link.col="darkseagreen", tar.pt.bg=0)
    plotRefToTarget(c.lower, all.mean, links=ag.links, gridPars=GP)
    title(main="lower branches", line=-5, cex=0.8)
    plotRefToTarget(c.top, all.mean, links=ag.links, gridPars=GP)
    title(main="top branches", line=-5, cex=0.8)
    par(old.par)
    Captura de pantalla 2019-02-01 a las 9.49.27 PM.png
    Figura Formas de hojas de\(\PageIndex{3}\) aliso en espacio tangente bidimensional realizadas con análisis de Procrustes.

    Pequeña diferencia es claramente visible y podría ser el punto de partida para la investigación posterior.

    Referencias

    1. Thompson D. W. 1945. Sobre crecimiento y forma. Cambridge, Nueva York. 1140 pp.

    2. Rohlf F.J. TPSDig. Departamento de Ecología y Evolución, Universidad Estatal de Nueva York en Stony Brook. Disponible gratuitamente en life.bio.sunysb.edu/morph/

    3. En realidad, el paquete geomorfo es capaz de digitalizar imágenes con la función digitize2d () pero solo funciona con imágenes JPEG.


    This page titled 10.4: R y forma is shared under a Public Domain license and was authored, remixed, and/or curated by Alexey Shipunov via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.