This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
SMLMData.jl is a Julia package for handling Single Molecule Localization Microscopy (SMLM) data. It provides types for representing fluorophore localizations, camera geometries, and complete SMLM datasets, along with tools for coordinate conversion, filtering, and I/O operations.
# Full test suite
julia --project=. -e 'using Pkg; Pkg.test()'
# Direct test execution
julia --project=. test/runtests.jl
# Single test file
julia --project=. test/test_emitters.jl# Build and open documentation
julia dev/build_docs.jl# Install dependencies
julia --project=. -e 'using Pkg; Pkg.instantiate()'
# Update dependencies
julia --project=. -e 'using Pkg; Pkg.update()'- Abstract Types:
AbstractEmitter,AbstractCamera,SMLDdefine interfaces - Emitter Types:
Emitter2D,Emitter3D,Emitter2DFit,Emitter3DFitrepresent localizations - Container Types:
BasicSMLD,SmiteSMLDstore collections of emitters - Camera Types:
IdealCameradefines pixel-to-physical coordinate mapping
- Coordinates (
src/core/coordinates.jl): Conversions between pixel and physical coordinates - Filters (
src/core/filters.jl):@filtermacro and spatial/temporal selection functions - Operations (
src/core/operations.jl): Dataset concatenation and merging - I/O (
src/io/smite/): SMITE format support for MATLAB interoperability
- All spatial coordinates are in microns
- Parametric types
{T}for numeric precision flexibility - Immutable structs for basic types, mutable for fit results
- Operations return new SMLD objects (functional style)
- Macro-based filtering syntax for intuitive API
Tests are organized by component in separate files:
test_emitters.jl: Emitter type teststest_cameras.jl: Camera and coordinate teststest_smld.jl: Container type teststest_filters.jl: Filtering functionalitytest_operations.jl: Dataset operationstest_smite.jl: SMITE format I/O
All tests use @testset blocks for organization and run via runtests.jl.