Welcome to allotropy -- a Python library for converting instrument data into Allotrope Simple Model (ASM).
The objective of this library is to read text or Excel based instrument software output and return a JSON representation that conforms to the published ASM schema. The code in this library does not convert from proprietary/binary output formats and so has no need to interact with any of the specific vendor softwares.
If you aren't familiar with Allotrope, we suggest you start by reading the Allotrope Product Overview.
We have chosen to have this library output ASM since JSON is easy to read and consume in most modern systems and can be checked by humans without any special tools needed. All of the published open source ASMs can be found in the ASM Gitlab repository.
We currently have parser support for the following instruments:
- Agilent Gen5
- Applied Bio QuantStudio
- Beckman Vi-Cell BLU
- Beckman Vi-Cell XR
- MolDev SoftMax Pro
- NovaBio Flex2
- PerkinElmer Envision
- Roche Cedex BioHT
This code is published under the permissive MIT license because we believe that standardized instrument data is a benefit for everyone in science.
Convert a file to an ASM dictionary:
from allotropy.parser_factory import Vendor
from allotropy.to_allotrope import allotrope_from_file
asm_schema = allotrope_from_file("filepath.txt", Vendor.MOLDEV_SOFTMAX_PRO)or, convert any IO:
from allotropy.parser_factory import Vendor
from allotropy.to_allotrope import allotrope_from_io
with open("filename.txt") as f:
asm_schema = allotrope_from_io(f, Vendor.MOLDEV_SOFTMAX_PRO)
bytes_io = BytesIO(file_stream)
asm_schema = allotrope_from_io(bytes_io, Vendor.MOLDEV_SOFTMAX_PRO).gitignore: used standard GitHub Python template and added their recommended JetBrains lines
Install Hatch: https://hatch.pypa.io/latest/ Install Python: https://www.python.org/downloads/
Add pre-push checks to your repo:
hatch run scripts:setup-pre-pushTo add requirements used by the library, update dependencies in pyproject.toml:
- For project dependencies, update
dependenciesunder[project]. - For script dependencies, update
dependenciesunder[tool.hatch.envs.default]. - For lint dependencies, update
dependenciesunder[tool.hatch.envs.lint]. - For test dependencies, update
dependenciesunder[tool.hatch.envs.test].
hatch env showRun all lint:
hatch run lint:allAuto-fix all possible lint issues:
hatch run lint:fixRun all tests:
hatch run test:testRun all tests with coverage:
hatch run test:covTo publish a new version, update the version in src/allotropy/__about__.py and run:
hatch build
hatch publish