Pronto is a python module to parse, create, browse and export ontologies from some popular formats. For now, obo and owl/xml are available, but more formats are to be added in the future (you can even add your own to work with the current API).
Installing with pip
is the easiest:
pip install pronto # if you have the admin rights
pip install pronto --user # if you want to install it for only one user
There is also a conda
recipe in the bioconda
channel:
conda install -c bioconda pronto
If for some reason you do not like pip
, you can also clone the
repository and install it with the setup script (still requires
setuptools
):
git clone https://github.com/althonos/pronto
cd pronto
python setup.py install # may also require admin rights
The Ontology
class is the main entrypoint of pronto
. It can
be instantiated with a given ontology file (.owl
, .ont
or .obo
)
or from scratch, without any existing terms.
import pronto
ont = pronto.Ontology('path/to/file.obo')
term = ont['REF:ACCESSION']
import pronto
ont = pronto.Ontology('https://net.path.should/work/too.owl')
print(ont.obo)
print(ont.json)
Example here uses the NMR controlled vocabulary and the HUPO-PSI MS controlled vocabulary
import pronto
nmr = pronto.Ontology('http://nmrml.org/cv/v1.1.0/nmrCV.owl')
ms = pronto.Ontology('https://raw.githubusercontent.com/HUPO-PSI/psi-ms-CV/master/psi-ms.obo')
ms.merge(nmr)
>>> 'NMR:1000004' in ms
True
>>> ms.meta['coverage']
'Mass spectrometer output files and spectra interpretation'
import pronto
ont = pronto.Ontology('path/to/file.obo')
for term in ont:
if term.children:
print(term)
import pronto
ont = pronto.Ontology('path/to/file.obo')
print(ont['RF:XXXXXXX'].rchildren())
If you wish to use this library in a scientific publication, please cite it ! (see the Zenodo record to get a DOI or a BibTEX record).