ktch is a python package for model-based morphometrics.
Project description
ktch - A Python package for model-based morphometrics
ktch is a Python package for model-based morphometrics with scikit-learn compatible APIs.
Overview
ktch provides implementations of various morphometric analysis methods:
- Landmark-based methods: Generalized Procrustes Analysis (GPA) with curve/surface semilandmark sliding, thin-plate spline interpolation
- Harmonic-based methods: Elliptic Fourier Analysis (EFA) for 2D/3D closed curves, spherical harmonic analysis (SPHARM) for 3D closed surfaces
- File I/O: Support for standard morphometric file formats (TPS, CHC, SPHARM-PDM)
- Datasets: Built-in example datasets for learning and testing
- Visualization: TPS deformation grids, PCA variance plots (with optional
plotextra)
All analysis classes follow the scikit-learn API (fit, transform, fit_transform), making them easy to integrate into existing data analysis pipelines.
Installation
Python >= 3.11 is required.
From PyPI
pip install ktch
From conda-forge
conda install -c conda-forge ktch
Optional Dependencies
pip install ktch[plot] # matplotlib, plotly, seaborn for visualization
pip install ktch[data] # pooch for remote dataset downloads
Development Installation
git clone https://github.com/noshita/ktch.git
cd ktch
uv sync
Quick Start
Elliptic Fourier Analysis on 2D Outlines
from sklearn.decomposition import PCA
from ktch.datasets import load_outline_mosquito_wings
from ktch.harmonic import EllipticFourierAnalysis
# Load outline data (126 specimens, 100 points, 2D)
data = load_outline_mosquito_wings()
coords = data.coords.reshape(-1, 100, 2)
# Elliptic Fourier Analysis
efa = EllipticFourierAnalysis(n_harmonics=20)
coeffs = efa.fit_transform(coords)
# PCA on EFA coefficients
pca = PCA(n_components=5)
pc_scores = pca.fit_transform(coeffs)
Documentation
See doc.ktch.dev for full documentation:
- Tutorials: Step-by-step guides for GPA, EFA, spherical harmonics, and more
- How-to guides: Task-oriented recipes for data loading, visualization, and pipeline integration
- Explanation: Theoretical background on morphometric methods
- API reference: Complete API documentation
Contributing
Bug reports and feature requests are welcome via GitHub Issues.
See CONTRIBUTING.md for development setup and conventions.
License
ktch is licensed under the Apache License, Version 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ktch-0.7.1.tar.gz.
File metadata
- Download URL: ktch-0.7.1.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
060211c2277b82ac01bffb3e58ff88b04c037847f2991e3e06f39c0d37bcfe20
|
|
| MD5 |
dfc3bd064519051db77256cfd4bbcdb9
|
|
| BLAKE2b-256 |
2bbe816b3978515e48fbe84e782ff2556129232e2e510f406454138dac90ce3d
|
File details
Details for the file ktch-0.7.1-py3-none-any.whl.
File metadata
- Download URL: ktch-0.7.1-py3-none-any.whl
- Upload date:
- Size: 753.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30189fc68a41c340e29c52f7832b636e3f8289cb63ef881b3f8e65001ac0ffdc
|
|
| MD5 |
5338218d341f0623c88334b0007d88f0
|
|
| BLAKE2b-256 |
ab27f60ecd4eb6109253b66017700c441b7e9383b96dafd3bb837c3d28d35628
|