JSDNE

Contents

πŸ“‚ vignettes has the vignettes of the package
⊒ πŸ“„ introduction.Rmd β€” installing the package and estimating age from your own 3D models
⊒ πŸ“„ articles/population-affinity.Rmd β€” the fully reproducible source of the manuscript

πŸ“‚ man contains the description and example of the code and data
β€ƒβ€ƒβŠ’ πŸ“„ Apex.Rd
β€ƒβ€ƒβŠ’ πŸ“„ WholeSurface.Rd
β€ƒβ€ƒβŠ’ πŸ“„ RawData.Rd
β€ƒβ€ƒβŠ’ πŸ“„ ThaiData.Rd
β€ƒβ€ƒβŠ’ πŸ“„ MultiData.Rd
β€ƒβ€ƒβŠ’ πŸ“„ Distribution.Rd
β€ƒβ€ƒβŠ’ πŸ“„ TrendLine.Rd
β€ƒβ€ƒβŠ’ πŸ“„ FirstObservation.Rd
β€ƒβ€ƒβŠ’ πŸ“„ SecondObservation.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Test.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Train.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_result.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCR_Test.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCR_Train.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCR_result.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Test.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Train.Rd
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_result.Rd
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Test.Rd
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Train.Rd
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_result.Rd
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Test.Rd
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Train.Rd
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_result.Rd

πŸ“‚ data contains the raw data to develop the models and obtain the findings in the manuscript, and example 3D models
β€ƒβ€ƒβŠ’ πŸ“„ Apex.rda is the loaded example data of apex
β€ƒβ€ƒβŠ’ πŸ“„ WholeSurface.rdais loaded example data of Whole surface
β€ƒβ€ƒβŠ’ πŸ“„ RawData.rda
β€ƒβ€ƒβŠ’ πŸ“„ ThaiData.rda
β€ƒβ€ƒβŠ’ πŸ“„ MultiData.rda
β€ƒβ€ƒβŠ’ πŸ“„ Distribution.rda
β€ƒβ€ƒβŠ’ πŸ“„ TrendLine.rda
β€ƒβ€ƒβŠ’ πŸ“„ FirstObservation.rda
β€ƒβ€ƒβŠ’ πŸ“„ SecondObservation.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Test.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Train.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCR_Test.rda  β€ƒβ€ƒβŠ’ πŸ“„ PCR_Train.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Test.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Train.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Test.rda
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Train.rda
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Test.rda
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Train.rda
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Test.rda
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Train.rda

πŸ“‚ R contains code for developing the age estimation models, the example 3D models, and raw data to develop the estimation models
β€ƒβ€ƒβŠ’ πŸ“„ Apex.R
β€ƒβ€ƒβŠ’ πŸ“„ WholeSurface.R
β€ƒβ€ƒβŠ’ πŸ“„ RawData.R
β€ƒβ€ƒβŠ’ πŸ“„ ThaiData.R
β€ƒβ€ƒβŠ’ πŸ“„ MultiData.R
β€ƒβ€ƒβŠ’ πŸ“„ Distribution.R
β€ƒβ€ƒβŠ’ πŸ“„ TrendLine.R
β€ƒβ€ƒβŠ’ πŸ“„ FirstObservation.R
β€ƒβ€ƒβŠ’ πŸ“„ SecondObservation.R
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Test.R
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Train.R
β€ƒβ€ƒβŠ’ πŸ“„ PCR_Test.R  β€ƒβ€ƒβŠ’ πŸ“„ PCR_Train.R  β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Test.R  β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_Train.R  β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Test.R
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_Train.R
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Test.R
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_Train.R
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Test.R
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_Train.R
β€ƒβ€ƒβŠ’ πŸ“„ PCLR_result.R is the PCLR model for age estimation
β€ƒβ€ƒβŠ’ πŸ“„ PCR_result.R is the PCR model for age estimation β€ƒβ€ƒβŠ’ πŸ“„ PCQDA_result.R is the PCQDA model for age estimation
β€ƒβ€ƒβŠ’ πŸ“„ A_PCR_result.R is the A_PCR model for age estimation
β€ƒβ€ƒβŠ’ πŸ“„ M_PCR_result.R is the M_PCR model for age estimation

Abstract

The goal of JSDNE is to estimate the age with the auricular surface. Widely-used traditional age estimation methods involving macroscopic observation suffer from subjectivity. The present package aims to minimize both issues by applying computational and mathematical approaches. Dirichlet Normal Energy (DNE) was applied to assess the curvature of the 3D reconstructed auricular surface models. Ten DNE variables had high correlations, including total DNE per Total polygon faces, Mean value of DNE on apex, proportion of polygon faces with DNE of less than 0.0001 and proportion of polygon faces with DNE of over 0.6. JSDNE includes five functions: principal component quadratic discriminant analysis (PCQDA), principal component regression analysis (PCR), principal component logistic regression analysis with European (PCLR), principal component logistic regression analysis with Southeast Asian (A_PCLR), and principal component logistic regression analysis with multi-population (M_PCLR). JSDNE predicts age mathematically, objectively, and user-independently. The PCQDA function involves four age phases: phase 1(22-44yrs), phase 2(31-74yrs), phase 3(63-93yrs), and phase 4 (Over 76). The PCLR function has two age phases: phase 1 (under 67), phase 2(over 63)). It offers an output of estimated age phase and the age range. Both functions provides an output of estimated age phase and the age range. The PCR, A_PCR, and M_PCR functions provide an output of estimated age in years and the standard error (8.8yrs, 9.0 yrs, and 10.2 yrs, respectively).

Data availability

The raw data obtained the findings of this study are openly available at https://github.com/jisunjang19/cran-JSDNE, doi: 10.5281/zenodo.12708779 or β€˜JSDNE’ package

Replicate analysis

The raw datas of this study (PCLR_Train, PCLR_Test, PCQDA_Test, PCQDA_Train, PCR_Train, PCR_Test, A_PCR_Train, A_PCR_Test, and M_PCR_Train, and M_PCR_Test) could be loaded with JSDNE package. For example,

library(JSDNE)
data(PCLR_Train)

All of the data preparation and analysis in the reproducible manuscript (vignettes/articles/population-affinity.Rmd) can be re-run. For example,

model_PCQDA <- subset(PCQDA_Train, select = -c(Cluster2, Age))
PCQDA_df <- scale(model_PCQDA)
PCQDA_df.pca <- prcomp(PCQDA_df)
PCQDA_pca <- PCQDA_df.pca$x[, 1:2]
PCQDA_df2 <- data.frame(Cluster = PCQDA_Train$Cluster2, PCQDA_pca)
PCQDA <- MASS::qda(Cluster ~ ., data = PCQDA_df2)

Installation of JSDNE package

You can install the development version of JSDNE like so: install.packages(β€œJSDNE”)

Example of using JSDNE package

library(JSDNE)
PCQDA_result(WholeSurface,Apex)
PCLR_result(WholeSurface,Apex)
PCR_result(WholeSurface,Apex)
A_PCR_result(WholeSurface,Apex)
M_PCR_result(WholeSurface,Apex)
  1. When importing the .ply files, I highly recommend use the vcgPlyRead function. If use different function to import the ply files, the function might not be able to read correctly.

  2. After importing the .ply files with the vcgPlyRead function, the auricular surface .ply file should be replaced with x and the apical area with y. If oppositely applied, incorrect results will be calculated. It is recommended to check the location of both ply file.

Reproducible manuscript

The reproducible source for the population-affinity study (Jang et al., JAS) is in vignettes/articles/population-affinity.Rmd. It loads all datasets directly from the installed package (library(JSDNE)), so it knits from start to finish without any external files.