Capítulo 8 Semilandmarks

8.1 Digitalização de semilandmarks

No TPSDig2, abra o arquivo ‘mandibula.tps’ com as coordenadas dos landmarks. Para incluir semilandmarks será usada a ferramenta Draw background curves, que se localiza em ‘Modes>Draw curves’ ou no ícone parecido com uma caneta amarela. Cliques com o botão esquerdo do mouse atribuem as coordenadas para os semilandmarks, um por vez, e os conectam por uma linha azul. Para finalizar a marcação dos semilandmarks na curva desejada basta clicar com o botão direito. O mesmo botão pode ser usado para clicar sobre a curva e acessar o menu opções, onde é possível, por exemplo, ajustar as distâncias entre os semilandmarks e deixá-las igualmente espaçadas. Ao terminar, salve o arquivo normalmente e abra em um bloco de notas. Note que as coordenadas dos semilandmarks aparecem como pontos em curvas. Neste formato, o arquivo está pronto para ser carregado pelo geomorph do R. Para abrir o arquivo em outros programas (ex: MorphoJ) é preciso primeiro fazer o deslizamento dos semilandmarks (‘sliding’) ao longo das curvas. Para isso é preciso: no TPSUtil, (i) transformar os pontos em curva em semilandmarks verdadeiros (operação ‘Append tps Curve to landmarks’), (ii) informar quais pontos correspondem a semilandmarks em quais curvas (operação ‘Make sliders file’), e no TPSRelw, (iii) importar o arquivo contendo todas as coordenadas juntas (criado em (i)) e o arquivo slider (criado em (ii)), realizar a GPA com os semilandmarks e exportar o arquivo com as coordenadas alinhadas; esse último arquivo pode ser aberto em qualquer programa. Note que o método para deslizamento dos semilandmarks no TPSRelw pode ser modificado em ‘Options>Slide Method’.

8.2 Semilandmarks no R

Dados com semilandmarks podem ser carregados diretamente para o R com as coordenadas em formato de curva.

require(geomorph)
#> Le chargement a nécessité le package : geomorph
#> Warning: le package 'geomorph' a été compilé avec la
#> version R 4.3.2
#> Le chargement a nécessité le package : RRPP
#> Warning: le package 'RRPP' a été compilé avec la version R
#> 4.3.2
#> Le chargement a nécessité le package : rgl
#> Le chargement a nécessité le package : Matrix
# Carregar dados usando readcurves = TRUE
tps.semi<-readland.tps("dadosmg/mandibula.dig_curso.tps",specID = "ID", readcurves = TRUE)
tps.semi
dim(tps.semi)

Note que os semilanmarks foram carregados como se fossem landmarks verdadeiros. Precisamos informar quais deles são semilandmarks e em quais curvas vão deslizar. Isso pode ser feito em arquivo texto (veja o formato de curves.slide.txt), pelo programa TPSUtil, ou com uma função interativa do pacote geomorph chamada define.sliders.

# Definir semilandmarks
curveslide<-read.table("dadosmg/curves.slide.txt",h=T) # importa sliders definidos no TPS util 
curveslide<-as.matrix(curveslide) 
curveslide
#>       before slide after
#>  [1,]      2    14    15
#>  [2,]     14    15    16
#>  [3,]     15    16    17
#>  [4,]      3    17    16
#>  [5,]      3    18    19
#>  [6,]     18    19    20
#>  [7,]      4    20    19
#>  [8,]      5    21    22
#>  [9,]     21    22    23
#> [10,]     22    23    24
#> [11,]     23    24    25
#> [12,]     24    25    26
#> [13,]      6    26    25
#> [14,]      6    27    28
#> [15,]     27    28    29
#> [16,]      7    29    28
#> [17,]      7    30    31
#> [18,]     30    31    32
#> [19,]     31    32    33
#> [20,]      8    33    32
#> [21,]      8    34    35
#> [22,]     34    35    36
#> [23,]      9    36    35
#> [24,]      9    37    38
#> [25,]     37    38    39
#> [26,]     38    39    40
#> [27,]     10    40    39
#> [28,]     10    41    42
#> [29,]     41    42    43
#> [30,]     42    43    44
#> [31,]     11    44    43
#> [32,]     11    45    46
#> [33,]     45    46    47
#> [34,]     47    48    49
#> [35,]     46    47    48
#> [36,]     48    49    50
#> [37,]     49    50    51
#> [38,]     50    51    52
#> [39,]     51    52    53
#> [40,]     52    53    54
#> [41,]     12    54    53
#> [42,]     12    55    56
#> [43,]     55    56    57
#> [44,]     56    57    58
#> [45,]     57    58    59
#> [46,]     58    59    60
#> [47,]     13    60    59

Os semilandmarks formam a coluna do meio. Cada curva é colocada entre landmarks verdadeiros.

8.3 Métodos de deslizamento de semilandmarks

Agora podemos realizar uma análise de Procrustes deslizando os semilandmarks. A opção/argumento “ProcD=FALSE” vai deslizar os semilandmarks minimizando a energia de deformação, e a opção/argumento “ProcD=TRUE” vai deslizar os semilandmarks minizando as distâncias de Procrustes.

# Deslizamento por Procrustes
gpa.semi<-gpagen(tps.semi,ProcD=TRUE,curves=curveslide)
shape.procD<-gpa.semi$coords
plotAllSpecimens(shape.procD)

# Deslizamento por Bending Energy
gpa.semi<-gpagen(tps.semi,ProcD=FALSE,curves=curveslide)
shape.bend<-gpa.semi$coords
plotAllSpecimens(shape.bend)

Compare os dois métodos.

par(mfrow=c(1,2))
plotAllSpecimens(shape.procD)
plotAllSpecimens(shape.bend)
par(mfrow=c(1,1))