Skip to content

amph-evodevo-lab-ub/dynamics_of_size_and_shape_variation

Repository files navigation

dynamics_of_size_and_shape_variation

This repository includes R scripts and data for geometric morphometric analyses of morphological variation during embryonic development in Triturus newts.
We explored two phases of embryonic development separately:

  • Tailbud phase: Quantified the shape of the whole embryo
  • Prehatching phase: Quantified head shape

Input Files

  • FactorsGroup1.xlsx – Classifiers for tailbud embryos
  • FactorsGroup2.xlsx – Classifiers for prehatching embryos
  • g1a.tps – The first replicate of landmark coordinates for tailbud embryos
  • g1b.tps – The second replicate of landmark coordinates for tailbud embryos
  • g2a.tps – The first replicate of landmark coordinates for prehatching embryos
  • g2b.tps – The second replicate of landmark coordinates for prehatching embryos
  • slajding2.xlsx – Matrix defining semilandmarks in tailbud embryos
  • slajding.xlsx – Matrix defining semilandmarks in prehatching embryos

Dependencies

Install the following R libraries before running analyses:

library(RRPP)
library(geomorph)
library(xlsx)
library(ggplot2)
library(abind)
library(car)

Workflow Overview

Data Import & Preprocessing

  • Read TPS coordinates
  • Link with metadata
  • Check outliers
  • Define stage factors

Procrustes Superimposition & Extracting Symmetric Component

  • For tailbud embryos:
    procGPA <- gpagen(coords, curves = sliders)
  • For prehatching embryos:
    gpag2 <- bilat.symmetry(dfg2$shape, ind = dfg2$ind, object.sym = TRUE, land.pairs = parovi, curves = slide2)

These steps:

  • Correct for size, orientation, and translation
  • Slide semilandmarks to minimize bending energy

Output:

  • Shape (Procrustes coordinates for tailbud stages and symmetric component for prehatching stages)
  • Size (centroid size) coordinates

Clustering

Gaussian Mixture Model clustering using Expectation-Maximisation:

cluster <- hddc(two.d.array(gpa$coords), model = "ALL", criterion = "bic", itermax = 10000, mc.cores = 30, scaling = TRUE)
predict(cluster) # Calculates posterior probabilities for each embryo

Principal Component Analysis (PCA)

  • Visualizes group separation

Shape Differences

  • Test mean shape differences between stages with permutations:
    pairwise.procD.lm(...)
    # 999 permutations for p-values

Size Differences

  • Test differences in size between stages:
    summary(aov(Csize ~ as.factor(stage)))
    TukeyHSD(aov(Csize ~ as.factor(stage))) # Multiple comparisons of means

Allometry

  • Test allometric effect:
    procD.lm(shape ~ log(Csize))
    # Produces allometric regression scores for visualization

Morphological Disparity

  • Compare within-group variance across development:
    morphol.disparity(procD.lm object, ...)
    # Plotted with confidence trends through stages

Citation

If using this workflow in your publication, please cite:

Bugarcic, M., Ivanovic, A., Cvijanovic, M., Ajdukovic, M., Drobnjakovic, M., Wielstra, B., Vucic, T. (2025). Dynamics of size and shape variation during embryonic development in the Balkan crested newt (2025), Under Review


Contact

For issues within script:
Marko Bugarcic, MSc
PhD Candidate
University of Belgrade – Faculty of Biology
Email: marko.bugarcic@bio.bg.ac.rs

For data requests:
Tijana Vucic
Leiden University – Institute of Biology Leiden, University of Belgrade – Faculty of Biology
Email: tijana.vucic@bio.bg.ac.rs

About

This repository contains script and data for geometric morphometric analyses of newt embryos' size and shape. Associated results are published in [too add upon acceptance].

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors