pronto : Python frontend to Ontologies
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).
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
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
git clone https://github.com/althonos/pronto cd pronto python setup.py install # may also require admin rights
Ontology class is the main entrypoint of
pronto. It can
be instantiated with a given ontology file (
or from scratch, without any existing terms.
Open an ontology and get a term by accession:
import pronto ont = pronto.Ontology('path/to/file.obo') term = ont['REF:ACCESSION']
Display an ontology in obo format and in json format:
import pronto ont = pronto.Ontology('https://net.path.should/work/too.owl') print(ont.obo) print(ont.json)
Merge two ontologies:
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'
Find ontology terms with children
import pronto ont = pronto.Ontology('path/to/file.obo') for term in ont: if term.children: print(term)
Get all the transitive children of an ontology 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).