Skip to main content

Implementation of ISA-tools data model and ISA-TAB

Project description

PyPI version Install with Bioconda Continuous Integration Status Codacy Badge Coverage Badge Coverage Status Documentation Status DOI MIT License


AltamISA is an alternative implementation of ISA-tools data model and ISA-Tab file format.


Ambrosia peruviana is a species of plant in the family Asteraceae. It occurs from Mexico south to Argentina, being common in the Antilles and the Andes.

In its native range, A. peruviana is used as a medicinal plant with analgesic, antiinflammatory, anthelmintic and antiseptic properties.

-- Ambrosia peruviana, Wikipedia

For the Impatient

$ pip install altamisa
## OR
$ conda install altamisa

What is ISA and ISA-Tab?

The ISA (Investigation-Study-Assay) defines a data model for describing life science experiments (specification). ISA-Tab defines a file format based on TSV (tab-separated values) for storing of ISA data in files. Shortly, experiments are encoded by DAGs (directed acyclic graphs) of samples being taken from sources (e.g., donor individuals) and then subjected to "operations" (e.g., extraction, assays, transformations) leading to different downstream "materials".

Why AltamISA?

Attempting to use the official isa-api Python package in early 2018 led to quite some frustration. Even the official ISA-tab examples parsed into non-expected graph structures. Attempting bug fixes to isa-api proofed difficult because of not having complete automated tests. Further, the scope of isa-api was much broader (including between ISA-Tab and other formats) such that we expected high maintenance costs (development had apparently stalled).

Quick Facts

  • Programming Language: Python 3 (with full type annotations)
  • License: MIT
  • Test Coverage: >90%
  • Documentation: see here
  • Code Style: black, 100 characters/line



  • Mostly meta adjustments.


  • Adding exception for duplicate node annotations


  • Minor fixes regarding investigation file names and comments.


  • Minor fixes of validation and warnings.
  • Fixes optional parameter filename of AssayReader.


  • Ensuring that input order is output order. This is true except for the corner case where materials are not located in "blocks". Such corner cases would require storing the tabular representation (and keeping it in sync) at all times and does not yield to a robustly usable implementation. NB: the input is also not sorted the test adjusted with this patch shows.
  • Adding optional parameter filename to the various readers.
  • Exposing RefTableBuilder class with slightly changed interface.


  • Minor fixes and additions with focus on improving the export.


  • Updating documentation for JOSS.


  • Adding JOSS paper draft.
  • Fixing problem with writing empty lines on Windows (#52).
  • Update documentation with examples for manual model creation.
  • Fixing authorship documentation.
  • Fixing package (#58).


  • Switching to attrs instead of using Namedtuple. This gets rid of some warts regarding constructor overriding but should offer the same functionality otherwise.
  • Various updates to the documentation.


First public release.

  • Started out with ISA-TAB parser and NamedTuple-based data model.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

altamisa-0.2.9.tar.gz (604.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page