Electron Microscopy Nexus LIMS project (Datasophos fork)
Project description
NexusLIMS - Automated Laboratory Information Management for Electron Microscopy
⚠️ Notice: This is a fork of the original NexusLIMS project, created after the lead developer (@jat255) left NIST and founded Datasophos. This fork is maintained by Datasophos and is not affiliated with NIST in any way. For the official NIST version, please visit the original repository.
What is NexusLIMS?
NexusLIMS automatically generates experimental records by extracting metadata from microscopy data files and harvesting information from laboratory calendar systems.
Originally developed by the NIST Office of Data and Informatics, NexusLIMS transforms raw microscopy data into structured, searchable experimental records without requiring manual data entry. By combining file metadata extraction with reservation calendar information, NexusLIMS creates comprehensive documentation of microscopy sessions automatically.
What it does
- Reads metadata from
.dm3/.dm4(DigitalMicrograph),.tif(FEI/Thermo),.ser/.emi(FEI TIA), and other microscopy formats - Pulls reservation and usage context from NEMO to associate files with the right session and user
- Groups files from the same session into logical acquisition activities using temporal clustering
- Generates thumbnail previews alongside the extracted metadata
- Builds XML records conforming to the "Nexus Experiment" schema and uploads them to the NexusLIMS CDCS web frontend
How it works
When an instrument session ends in NEMO, NexusLIMS finds all data files saved during the reservation window, extracts their metadata, and assembles everything into a structured record — no manual data entry required. Records are uploaded to a searchable web interface where users can browse and retrieve their experimental data.
For more details, see the Record Building Workflow documentation.
Quick Start
Installation
Option 1: uv tool install (Recommended)
The easiest way to install NexusLIMS is as an isolated command-line tool using uv (requires installing uv first):
uv tool install nexuslims
Option 2: pip (virtual environment)
Install in a user-managed virtual environment:
python -m venv nexuslims-venv
source nexuslims-venv/bin/activate
pip install nexuslims
Option 3: Development install (from source)
For contributors or developers who want to modify NexusLIMS source code:
git clone https://github.com/datasophos/NexusLIMS.git
cd NexusLIMS
uv sync
Note: For development installs, you will need to prefix NexusLIMS commands with
uv run(e.g.uv run nexuslims config edit).
Configuration
Run nexuslims config edit to interactively configure your installation. You'll need to set:
- CDCS frontend credentials and URL
- File paths for data storage
- NEMO API credentials (if using)
- Database path
Note: For development installs from source, you can also
cp .env.example .envand edit it manually.
See Configuration Documentation for details.
Initialize Database
nexuslims db init
Then add your instruments using the interactive instrument manager:
nexuslims instruments manage
See the Getting Started Guide for more details.
Build Records
nexuslims build-records
Documentation
📚 Full documentation: https://datasophos.github.io/NexusLIMS/stable/
System Requirements
- Backend: Linux or macOS. Windows is not currently supported.
- Python: 3.11 or 3.12
- Network Access: Read-only access to centralized instrument data storage
- Calendar System: NEMO instance (or custom harvester implementation)
- Frontend: NexusLIMS CDCS instance for browsing and searching records (optional, but probably desired)
Current Limitations
NexusLIMS is under active development, but there are some limitations:
- File Format Support: Currently supports a subset of common electron microscopy formats (see extractor documentation for details). If you have different isntrumentation at your institution, custom extractors will be needed.
- Calendar Integration: NexusLIMS is designed to inteface with the NEMO laboratory facility management system. Other systems would require custom harvester implementation.
- Platform Support: The NexusLIMS backend is intended to be run on in a server environment, and thus supports Linux or macOS only (theoretically WSL2 on Windows as well, though this is untested). Full Windows support would require additional development effort.
Need help adding features or deploying at your institution? Datasophos offers professional services for NexusLIMS deployment, customization, and support. Contact us at josh@datasophos.co.
Development Quick Start
# Install development dependencies
uv sync --dev
# Run tests
./scripts/run_tests.sh
# Run linting
./scripts/run_lint.sh
# Build documentation
./scripts/build_docs.sh
See the Developer Guide for detailed information about:
- Architecture overview
- Adding new file format extractors
- Creating custom harvesters
- Testing and CI/CD
- Release process
Contributing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Make your changes with tests (100% coverage required)
- Submit a pull request to
main
See Contributing Guidelines for more details, including our AI contribution policy.
About the Logo
The NexusLIMS logo is inspired by Nobel Prize winner Dan Shechtman's groundbreaking work at NIST in the 1980s. Using transmission electron diffraction, Shechtman discovered quasicrystals - a new class of crystals that have regular structure and diffract, but are not periodic. This discovery overturned fundamental paradigms in crystallography.
We chose Shechtman's first published quasicrystal diffraction pattern as inspiration due to its significance in electron microscopy and its storied NIST heritage.
License
See LICENSE for details.
Support
Datasophos offers deployment assistance, custom extractor and harvester development, and training for teams adopting NexusLIMS. Get in touch at josh@datasophos.co.
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 nexuslims-2.5.0.tar.gz.
File metadata
- Download URL: nexuslims-2.5.0.tar.gz
- Upload date:
- Size: 18.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
293c8eb3035cf14355df12e6e5663d90b6e8473f52811886c7cbc72e4ef2e024
|
|
| MD5 |
2b5e3b923e2d3d4c1b66322bf9489d3e
|
|
| BLAKE2b-256 |
e8b0674914e378b999967ec4788364c90064b42f5ad3a6157ede284eee563e06
|
Provenance
The following attestation bundles were made for nexuslims-2.5.0.tar.gz:
Publisher:
release.yml on datasophos/NexusLIMS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nexuslims-2.5.0.tar.gz -
Subject digest:
293c8eb3035cf14355df12e6e5663d90b6e8473f52811886c7cbc72e4ef2e024 - Sigstore transparency entry: 967638332
- Sigstore integration time:
-
Permalink:
datasophos/NexusLIMS@919035c2cd3042d91937a46c2ba0b9d417bc593d -
Branch / Tag:
refs/tags/v2.5.0 - Owner: https://github.com/datasophos
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@919035c2cd3042d91937a46c2ba0b9d417bc593d -
Trigger Event:
push
-
Statement type:
File details
Details for the file nexuslims-2.5.0-py3-none-any.whl.
File metadata
- Download URL: nexuslims-2.5.0-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50083eb4fc8e85050b665d70a4f9c05024c4f0a9ce534763b5b62b22b9abb938
|
|
| MD5 |
dbc776b7627b9c541a0d883e6da3b6f3
|
|
| BLAKE2b-256 |
3b1dcc63766acd3e253e9e09583be18cfd0cee5623a53d2d9f077caf84fb5bdd
|
Provenance
The following attestation bundles were made for nexuslims-2.5.0-py3-none-any.whl:
Publisher:
release.yml on datasophos/NexusLIMS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nexuslims-2.5.0-py3-none-any.whl -
Subject digest:
50083eb4fc8e85050b665d70a4f9c05024c4f0a9ce534763b5b62b22b9abb938 - Sigstore transparency entry: 967638405
- Sigstore integration time:
-
Permalink:
datasophos/NexusLIMS@919035c2cd3042d91937a46c2ba0b9d417bc593d -
Branch / Tag:
refs/tags/v2.5.0 - Owner: https://github.com/datasophos
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@919035c2cd3042d91937a46c2ba0b9d417bc593d -
Trigger Event:
push
-
Statement type: