ElabLite is a metadata generator tool for instrumental acquisition batches designed for use with electronic laboratory notebooks (ELN), specifically tailored for elabFTW instances. It simplifies the process of creating, managing, and exporting scientific experiment metadata through an intuitive desktop app offline.
- π Template-based Metadata Creation: Upload or select existing templates (JSON, CSV, ELN formats)
- π¬ Scientific Technique Management: Pre-configured technical analysis codes (3D imaging, spectroscopy, chromatography, etc.)
- π Dataframe Editor: Manage multiple analyses with spreadsheet-like interface
- πΎ Auto-save System: Automatic saving with manual save options
- π¦ Batch Export: Generate CSV files and ZIP archives for multiple experiments`
- π·οΈ Comprehensive Metadata: Support for titles, dates, authors, ratings, tags, and custom fields
- Input: JSON, CSV, ELN, ELABLITE
- Output: ELABLITE (custom format), CSV, ZIP archives
Built-in support for 50+ analytical techniques including:
- Imaging: 3D, RGB, UV, IR, X-ray
- Spectroscopy: FTIR, Raman, XRF, Mass Spec
- Microscopy: SEM, Optical, Multiphoton
- Chromatography: GC-MS, LC-MS, CE-MS
- And many more...
- Platform: Windows
You can download the latest version (.exe) of ElabLite here.
You can find an user guide here.
- Python 3.10 or higher
- pip package manager
git clone https://github.com/CRC-Centre-Recherche-Conservation/ElabLite.git
cd ElabLite# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activatepip install -r requirements.txtStart the Streamlit application:
streamlit run app.pyThe application will open in your default web browser at http://localhost:8501
This project uses stlite@desktop to package the Streamlit application into an executable, standalone format. The commands below install dependencies, generate the necessary files, and test the application locally before creating the final package.
npm install
npm run dump
npm run serve # To test locally
npm npm run app:dist-
Select/Upload Template
- Navigate to "New Experiment" in the sidebar
- Either upload a new template or select an existing one
-
Fill Base Metadata (Step 1)
- Enter experiment title, date, and author
- Select analytical technique
- Add commentary, tags, and rating
- Save your experiment
-
Complete Experiment Metadata (Step 2)
- Fill in technique-specific metadata fields
- All required fields are marked with *
-
Manage Files Metadata (Step 3)
- Add rows for multiple analyses
- Fill in IdentifierAnalysis and Object/Sample
- Edit cells directly in the spreadsheet
-
Export (Step 4)
- Save final version
- Download .elablite file for archiving
- Navigate to "Load Experiment"
- Import or select a saved .elablite file
- Continue editing from where you left off
- Go to "Select Experiment" β "Complete Experiment(s)"
- Upload your .elablite preset
- Upload associated data files
- Map files to metadata rows
- Generate filenames and download ZIP archive
ElabLite/
βββ app.py # Main application entry point
βββ requirements.txt # Python dependencies
βββ __version__.py # Version information
βββ .streamlit/
β βββ config.toml # Streamlit configuration
βββ models/
β βββ forms.py # Metadata form models
β βββ technical.py # Technical analysis definitions
β βββ validator.py # Input validators
βββ pages/
β βββ 1-select_template.py # Template selection page
β βββ 1-load_template.py # Load existing experiment
β βββ 2-metadata_forms.py # Main metadata editor
β βββ 3-metadata_preset.py # Preset selection
β βββ 4-metadata_management.py # File management
βββ utils/
β βββ manager.py # File and data management
β βββ menu.py # Sidebar menu
β βββ parser.py # Template parsers
β βββ save_manager.py # Save operations
β βββ stepper.py # Workflow stepper UI
βββ static/
βββ icons/ # Application icons
Edit .streamlit/config.toml to customize:
[client]
showSidebarNavigation = false
[server]
maxUploadSize = 100 # Maximum upload size in MBELABLITE is a custom serialized format that stores:
- Base metadata (title, date, author, etc.)
- Form data (technique-specific metadata)
- Template metadata structure
- Dataframe of analyses
Required Fields:
- Title
- Date
- Author
- Technique
Optional Fields:
- Commentary
- Tags
- Rating (0-5 stars)
- Project information
Number fields support unit selection. Data is stored as:
value||unit
Example: 25.5||Β°C
- Temporary Storage: Files stored in system temp directory (
tmp/templates/) - Auto-save: Experiments saved to
tmp/templates/presets/ - Retention: Last 10 files kept automatically
- Download: Manual export for permanent archiving
Template not loading:
- Check file format (JSON, CSV, ELN, ELABLITE) -> You need to export model from your instance elabFTW
- Check file permissions
- Verify file is not corrupted
Files not uploading:
- Check file size (max 100MB per file)
- Verify file permissions
Save not working:
- Ensure all required fields are filled
- Check disk space availability
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Developed for the Centre de Recherche et de Conservation (CRC) - Equipex Biblissima+
- Built with Streamlit
- Designed for use with elabFTW
- π Report a Bug
- π Documentation