这是indexloc提供的服务,不要输入任何密码
Skip to content

JSDNE is an age estimation methods with 3D reconstructed auricular surface. The surface is calculated by Dirichlet Normal Energy. The package provides five age estimation models:PCQDA, PCR, PCLR, A_PCR, and M_PCR.

Notifications You must be signed in to change notification settings

jisunjang19/cran-JSDNE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# JSDNE

<!-- badges: start -->
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12708779.svg)](https://doi.org/10.5281/zenodo.12708779)
<!-- badges: end -->

## Contents

📂 [vignettes](/vignettes) has vignettes of the package\

📂 [man](/man) contains the description and example of the code and data\
  ⊢ 📄 [Apex.Rd](/man/Apex.Rd)\
  ⊢ 📄 [WholeSurface.Rd](/man/WholeSurface.Rd)\
  ⊢ 📄 [PCLR_Test.Rd](/man/PCLR_Test.Rd)\
  ⊢ 📄 [PCLR_Train.Rd](/man/PCLR_Train.Rd)\
  ⊢ 📄 [PCLR_result.Rd](/man/PCLR_result.Rd)\
  ⊢ 📄 [PCR_Test.Rd](/man/PCR_Test.Rd)\
  ⊢ 📄 [PCR_Train.Rd](/man/PCR_Train.Rd)\
  ⊢ 📄 [PCR_result.Rd](/man/PCR_result.Rd)\
  ⊢ 📄 [PCQDA_Test.Rd](/man/PCQDA_Test.Rd)\
  ⊢ 📄 [PCQDA_Train.Rd](/man/PCQDA_Train.Rd)\
  ⊢ 📄 [PCQDA_result.Rd](/man/PCQDA_result.Rd)\
  ⊢ 📄 [A_PCR_Test.Rd](/man/PCR_Test.Rd)\
  ⊢ 📄 [A_PCR_Train.Rd](/man/PCR_Train.Rd)\
  ⊢ 📄 [A_PCR_result.Rd](/man/PCR_result.Rd)\
  ⊢ 📄 [A_PCR_Test.Rd](/man/PCR_Test.Rd)\
  ⊢ 📄 [M_PCR_Train.Rd](/man/PCR_Train.Rd)\
  ⊢ 📄 [M_PCR_result.Rd](/man/PCR_result.Rd)\

📂 [data](/data) contains the raw data to develop the models and obtain the findings in the manuscript, and example 3D models\
  ⊢ 📄 [Apex.rda](/data/Apex.rda) is the loaded example data of apex\
  ⊢ 📄 [WholeSurface.rda](/data/WholeSurface.rda)is loaded example data of Whole surface\
  ⊢ 📄 [PCLR_Test.rda](/data/PCLR_Test.rda)\
  ⊢ 📄 [PCLR_Train.rda](/data/PCLR_Train.rda)\
  ⊢ 📄 [PCR_Test.rda](/data/PCR_Test.rda)\ 
  ⊢ 📄 [PCR_Train.rda](/data/PCR_Train.rda)\
  ⊢ 📄 [PCQDA_Test.rda](/data/PCQDA_Test.rda)\
  ⊢ 📄 [PCQDA_Train.rda](/data/PCQDA_Train.rda)\
  ⊢ 📄 [PCQDA_Test.rda](/data/PCQDA_Test.rda)\
  ⊢ 📄 [PCLR_Train.rda](/data/PCLR_Train.rda)\
  ⊢ 📄 [A_PCR_Test.rda](/data/PCR_Test.rda)\ 
  ⊢ 📄 [A_PCR_Train.rda](/data/PCR_Train.rda)\
  ⊢ 📄 [M_PCR_Test.rda](/data/PCR_Test.rda)\ 
  ⊢ 📄 [M_PCR_Train.rda](/data/PCR_Train.rda)\


📂 [R](/R) contains code for developing the age estimation models, the example 3D models, and raw data to develop the estimation models\
  ⊢ 📄 [Apex.R](/R/Apex.R)\
  ⊢ 📄 [WholeSurface.R](/R/WholeSurface.R)\
  ⊢ 📄 [PCLR_Test.R](/R/PCLR_Test.R)\
  ⊢ 📄 [PCLR_Train.R](/R/PCLR_Train.R)\
  ⊢ 📄 [PCR_Test.R](/R/PCR_Test.R)\ 
  ⊢ 📄 [PCR_Train.R](/R/PCR_Train.R)\ 
  ⊢ 📄 [A_PCR_Test.R](/R/PCR_Test.R)\ 
  ⊢ 📄 [A_PCR_Train.R](/R/PCR_Train.R)\ 
  ⊢ 📄 [M_PCR_Test.R](/R/PCR_Test.R)\ 
  ⊢ 📄 [M_PCR_Train.R](/R/PCR_Train.R)\ 
  ⊢ 📄 [PCQDA_Test.R](/R/PCQDA_Test.R)\ 
  ⊢ 📄 [PCQDA_Train.R](/R/PCQDA_Train.R)\ 
  ⊢ 📄 [PCQDA_Test.R](/R/PCQDA_Test.R)\
  ⊢ 📄 [PCLR_Train.R](/R/PCLR_Train.R)\
  ⊢ 📄 [PCLR_result.R](/R/PCLR_result.R) is the PCLR model for age estimation\
  ⊢ 📄 [PCR_result.R](/R/PCR_result.R) is the PCR model for age estimation
  ⊢ 📄 [A_PCR_result.R](/R/PCR_result.R) is the A_PCR model for age estimation
  ⊢ 📄 [M_PCR_result.R](/R/PCR_result.R) is the M_PCR model for age estimation
  ⊢ 📄 [PCQDA_result.R](/R/PCQDA_result.R) is the PCQDA model for age estimation\

📂 [inst](/inst) has the citation information of JSDNE package\

📂 [Jang et al.(2024)_JAS](/Jang et al.(2024)_JAS) contains the source code of Jang et al. (2024) published at Journal of Archaeological Science\

📂 [source code](/source code) contains the source code, DNE.png, and raw csv files for anlyais\
  ⊢ 📄 [A_PCR_Test.csv](/source code/A_PCR_Test.csv)\
  ⊢ 📄 [A_PCR_Train.csv](/source code/A_PCR_Train.csv)\
  ⊢ 📄 [DNE.png](/source code/DNE.png) is the image file to describe DNE\
  ⊢ 📄 [Distribution.csv](/source code/Distribution.csv)\
  ⊢ 📄 [FirstObservation.csv](/source code/FirstObservation.csv)\
  ⊢ 📄 [SecondObservation.csv](/source code/SecondObservation.csv)\
  ⊢ 📄 [M_PCR_Test.csv](/source code/M_PCR_Test.csv)\
  ⊢ 📄 [M_PCR_Train.csv](/source code/M_PCR_Train.csv)\
  ⊢ 📄 [MultiData.csv](/source code/MultiData.csv)\
  ⊢ 📄 [ThaiData.csv](/source code/ThaiData.csv)\
  ⊢ 📄 [TrendLine.csv](/source code/TrendLine.csv)\
  ⊢ 📄 [source code.Rmd](/source code/source code.Rmd)\

## 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, M_PCR_Train, and M_PCR_Test)
could be loaded with JSDNE package. For example,

```r
library(JSDNE)
data(PCLR_Train)
```

All of the data preparation and anlysis in the source code_Manuscript could be re-runed. For example, 

```r
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

```r
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.



About

JSDNE is an age estimation methods with 3D reconstructed auricular surface. The surface is calculated by Dirichlet Normal Energy. The package provides five age estimation models:PCQDA, PCR, PCLR, A_PCR, and M_PCR.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages