There is a newer version of this record available.

Software Open Access

althonos/pronto: 2.3.0

Martin Larralde


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/eeeb5ddd-fc19-496b-a651-df7321a15fdc/althonos/pronto-v2.3.0.zip"
      }, 
      "checksum": "md5:2e5d295017126f7e1635d4106f207ff3", 
      "bucket": "eeeb5ddd-fc19-496b-a651-df7321a15fdc", 
      "key": "althonos/pronto-v2.3.0.zip", 
      "type": "zip", 
      "size": 877905
    }
  ], 
  "owners": [
    23304
  ], 
  "doi": "10.5281/zenodo.4041642", 
  "stats": {
    "version_unique_downloads": 45.0, 
    "unique_views": 8.0, 
    "views": 12.0, 
    "version_views": 764.0, 
    "unique_downloads": 0.0, 
    "version_unique_views": 568.0, 
    "volume": 0.0, 
    "version_downloads": 90.0, 
    "downloads": 0.0, 
    "version_volume": 133695208.0
  }, 
  "links": {
    "doi": "https://doi.org/10.5281/zenodo.4041642", 
    "conceptdoi": "https://doi.org/10.5281/zenodo.595572", 
    "bucket": "https://zenodo.org/api/files/eeeb5ddd-fc19-496b-a651-df7321a15fdc", 
    "conceptbadge": "https://zenodo.org/badge/doi/10.5281/zenodo.595572.svg", 
    "html": "https://zenodo.org/record/4041642", 
    "latest_html": "https://zenodo.org/record/4552164", 
    "badge": "https://zenodo.org/badge/doi/10.5281/zenodo.4041642.svg", 
    "latest": "https://zenodo.org/api/records/4552164"
  }, 
  "conceptdoi": "10.5281/zenodo.595572", 
  "created": "2020-09-21T15:46:17.823810+00:00", 
  "updated": "2021-05-08T15:42:28.891843+00:00", 
  "conceptrecid": "595572", 
  "revision": 11, 
  "id": 4041642, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.5281/zenodo.4041642", 
    "description": "<p><strong><code>pronto</code> </strong></p>\n\n<p><em>A Python frontend to ontologies.</em></p>\n\n<p><strong>\ud83d\uddfa\ufe0f Overview</strong></p>\n\n<p>Pronto is a Python library to parse, browse, create, and export ontologies, supporting several ontology languages and formats. It implement the specifications of the <a href=\"http://owlcollab.github.io/oboformat/doc/obo-syntax.html\">Open Biomedical Ontologies 1.4</a> in the form of an safe high-level interface. <em>If you&rsquo;re only interested in parsing OBO or OBO Graphs document, you may wish to consider <a href=\"https://pypi.org/project/fastobo\"><code>fastobo</code></a> instead.</em></p>\n\n<p>\ud83c\udff3\ufe0f Supported Languages</p>\n\n<ul>\n\t<li><a href=\"http://owlcollab.github.io/oboformat/doc/GO.format.obo-1_4.html\">Open Biomedical Ontologies 1.4</a>. <em>Because this format is fairly new, not all OBO ontologies can be parsed at the moment. See the <a href=\"https://github.com/orgs/fastobo/projects/2\">OBO Foundry roadmap</a> listing the compliant ontologies, and don&rsquo;t hesitate to contact their developers to push adoption forward.</em></li>\n\t<li><a href=\"https://github.com/geneontology/obographs\">OBO Graphs</a> in <a href=\"http://json.org/\">JSON</a> format. <em>The format is not yet stabilized to the results may change from file to file.</em></li>\n\t<li><a href=\"https://www.w3.org/TR/owl2-overview/%3E\">Ontology Web Language 2</a> in <a href=\"https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/\">RDF/XML format</a>. <em>OWL2 ontologies are reverse translated to OBO using the mapping defined in the <a href=\"http://owlcollab.github.io/oboformat/doc/obo-syntax.html\">OBO 1.4 Semantics</a>.</em></li>\n</ul>\n\n<p><strong>\ud83d\udd27 Installing</strong></p>\n\n<p>Installing with <code>pip</code> is the easiest:</p>\n\n<pre><code># pip install pronto          # if you have the admin rights\n$ pip install pronto --user   # install it in a user-site directory</code></pre>\n\n<p>There is also a <code>conda</code> recipe in the <code>bioconda</code> channel:</p>\n\n<pre><code>$ conda install -c bioconda pronto</code></pre>\n\n<p>Finally, a development version can be installed from GitHub using <code>setuptools</code>, provided you have the right dependencies installed already:</p>\n\n<pre><code>$ git clone https://github.com/althonos/pronto\n$ cd pronto\n# python setup.py install</code></pre>\n\n<p><strong>\ud83d\udca1 Examples</strong></p>\n\n<p>If you&rsquo;re only reading ontologies, you&rsquo;ll only use the <code>Ontology</code> class, which is the main entry point.</p>\n\n<pre><code>&gt;&gt;&gt; from pronto import Ontology</code></pre>\n\n<p>It can be instantiated from a path to an ontology in one of the supported formats, even if the file is compressed:</p>\n\n<pre><code>&gt;&gt;&gt; go = Ontology(\"tests/data/go.obo.gz\")</code></pre>\n\n<p>Loading a file from a persistent URL is also supported, although you may also want to use the <code>Ontology.from_obo_library</code> method if you&rsquo;re using persistent URLs a lot:</p>\n\n<pre><code>&gt;&gt;&gt; cl = Ontology(\"http://purl.obolibrary.org/obo/cl.obo\")\n&gt;&gt;&gt; stato = Ontology.from_obo_library(\"stato.owl\")</code></pre>\n\n<p><em>\ud83c\udff7\ufe0f Get a term by accession</em></p>\n\n<p><code>Ontology</code> objects can be used as mappings to access any entity they contain from their identifier in compact form:</p>\n\n<pre><code>&gt;&gt;&gt; cl['CL:0002116']\nTerm('CL:0002116', name='B220-low CD38-positive unswitched memory B cell')</code></pre>\n\n<p><em>\ud83d\udd0e Get a term by alternate ID</em></p>\n\n<p>Retrieval of an entity by any alternate ID it was declared from is possible using the same syntax:</p>\n\n<pre><code>&gt;&gt;&gt; hp = pronto.Ontology.from_obo_library(\"hp.obo\")\n&gt;&gt;&gt; 'HP:0001198' in hp['HP:0009882'].alternate_ids\nTrue\n&gt;&gt;&gt; hp['HP:0001198']\nTerm('HP:0009882', name='Short distal phalanx of finger')</code></pre>\n\n<p><em>\ud83d\udd8a\ufe0f Create a new term from scratch</em></p>\n\n<p>We can load an ontology, and edit it locally. Here, we add a new protein class to the Protein Ontology.</p>\n\n<pre><code>&gt;&gt;&gt; pr = Ontology.from_obo_library(\"pr.obo\")\n&gt;&gt;&gt; brh = ms.create_term(\"PR:XXXXXXXX\")\n&gt;&gt;&gt; brh.name = \"Bacteriorhodopsin\"\n&gt;&gt;&gt; brh.superclasses().add(pr[\"PR:000001094\"])  # is a rhodopsin-like G-protein\n&gt;&gt;&gt; brh.disjoint_from.add(pr[\"PR:000036194\"])   # disjoint from eukaryotic proteins</code></pre>\n\n<p><em>\u270f\ufe0f Convert an OWL ontology to OBO format</em></p>\n\n<p>The <code>Ontology.dump</code> method can be used to serialize an ontology to any of the supported formats (currently OBO and OBO JSON):</p>\n\n<pre><code>&gt;&gt;&gt; edam = Ontology(\"http://edamontology.org/EDAM.owl\")\n&gt;&gt;&gt; with open(\"edam.obo\", \"wb\") as f:\n...     edam.dump(f, format=\"obo\")</code></pre>\n\n<p><em>\ud83c\udf3f Find ontology terms without subclasses</em></p>\n\n<p>The <code>terms</code> method of <code>Ontology</code> instances can be used to iterate over all the terms in the ontology (including the ones that are imported). We can then use the <code>is_leaf</code> method of <code>Term</code> objects to check is the term is a leaf in the class inclusion graph.</p>\n\n<pre><code>&gt;&gt;&gt; ms = Ontology(\"ms.obo\")\n&gt;&gt;&gt; for term in ms.terms():\n...     if term.is_leaf():\n...         print(term.id)\nMS:0000000\nMS:1000001\n...</code></pre>\n\n\n<p><strong>\ud83d\udcd6 API Reference</strong></p>\n\n<p>A complete API reference can be found in the <a href=\"https://pronto.readthedocs.io/en/latest/api.html\">online documentation</a>, or directly from the command line using <code>pydoc</code>:</p>\n\n<pre><code>$ pydoc pronto.Ontology</code></pre>\n\n<p><strong>\ud83d\udcdc License</strong></p>\n\n<p>This library is provided under the open-source <a href=\"https://choosealicense.com/licenses/mit/\">MIT license</a>. Please cite this library if you are using it in a scientific context using the following DOI: <a href=\"https://doi.org/10.5281/zenodo.595572\"><strong>10.5281/zenodo.595572</strong></a></p>\n\n<p><strong>\ud83d\udcd2 Changelog</strong></p>\n\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n\n<ul>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.2.4...v2.3.0\">2.3.0</a> - 2020-09-21\n\n\t<ul>\n\t\t<li><em>Added:</em>\n\n\t\t<ul>\n\t\t\t<li>Retrieval of entities via their alternate IDs on the source <code>Ontology</code>.</li>\n\t\t\t<li>Direct edition of entity relationships via the <code>Relationships</code> view.</li>\n\t\t\t<li><code>__all__</code> attribute to all modules of the data model.</li>\n\t\t\t<li><code>RelationshipSet</code> container like <code>TermSet</code> with shortcut attributes and proxying of actual <code>Relationship</code> instances.</li>\n\t\t\t<li><code>Relationship.subproperties</code> and <code>Relationship.superproperties</code> methods to add, remove, clear and iterate over the subproperties and superproperties of a <code>Relationship</code> instance.</li>\n\t\t\t<li><code>Ontology.synonym_types</code> method to count (via <code>SizedIterator</code>) and iterate over the synonym types of an ontology and all of its imports.</li>\n\t\t\t<li><code>Ontology.get_synonym_type</code> method to retrieve a single synonym type by ID from an ontology or one of its imports.</li>\n\t\t\t<li>Changed</li>\n\t\t\t<li>Management of sub-properties / super-properties is now consistent with the management of subclasses / superclasses.</li>\n\t\t\t<li><code>consider</code>, <code>disjoint_from</code>, <code>disjoint_over</code>, <code>equivalent_to</code>, <code>replaced_by</code> <code>transitive_over</code> and <code>union_of</code> properties of <code>Relationship</code> now return a <code>RelationshipSet</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Outdated documentation in <code>Term.subclasses</code> describing the performances of the previous algorithm.</li>\n\t\t\t<li>Possible <code>AttributeError</code> with the setter of the <code>Entity.synonyms</code> property.</li>\n\t\t\t<li>Issue with synonym types declared in imported ontologies not being usable with synonyms of the actual ontology.</li>\n\t\t\t<li>Various type annotations not updated since version <a href=\"https://github.com/althonos/pronto/compare/v2.2.1...v2.2.2\">2.2.2</a>.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n</ul>\n\n<ul>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.2.3...v2.2.4\">2.2.4</a> - 2020-09-11\n\n\t<ul>\n\t\t<li><em>Changed:</em>\n\n\t\t<ul>\n\t\t\t<li>Make <code>Entity.annotations</code> return a mutable set and add a setter.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>Term.relationship</code> erroneously updating the <code>Ontology._lineage</code> cache.</li>\n\t\t\t<li>Unneeded code in <code>pronto.serializers._fastobo</code> handling <code>is_a</code> clauses.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.2.2...v2.2.3\">2.2.3</a> - 2020-07-31\n\t<ul>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Replaced <code>frozendict</code> with <code>immutabledict</code> (<a href=\"https://github.com/althonos/pronto/pull/90\">#90</a>).</li>\n\t\t\t<li>Bumped <code>fastobo</code> dependency to <code>v0.9.0</code> to support inline comments.</li>\n\t\t\t<li>Parsers will now process their imports in parallel using a thread pool. ### Fixed</li>\n\t\t\t<li>Argument type checking in view layer is now disabled during the parsing phase to reduce overhead.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.2.1...v2.2.2\">2.2.2</a> - 2020-07-18\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Extraction of basic relationships from RDF/XML documents.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Erroneous type annotations on <code>Term.subclasses</code> and <code>Term.superclasses</code>.</li>\n\t\t\t<li>Bug with <code>Term.equivalent_to</code> setter crashing with a <code>NameError</code>.</li>\n\t\t\t<li>Bug with <code>Entity.synonyms</code> setter not extracting synonym data.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.2.0...v2.2.1\">2.2.1</a> - 2020-06-17\n\t<ul>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Extraction of subclasses/superclasses hierarchy from nested imports.</li>\n\t\t\t<li>Serialization of OBO frames not being done in order.</li>\n\t\t\t<li>Parsing issue with <code>anti_symmetric</code> clauses in OBO typedefs.</li>\n\t\t\t<li>Xrefs not being extracted when declared as axioms in RDF/XML documents.</li>\n\t\t\t<li><code>ResourceWarning</code> when creating <code>Ontology</code> from file-handles not mapping to a filesystem location.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.1.0...v2.2.0\">2.2.0</a> - 2020-06-17\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li><code>threads</code> parameter to <code>Ontology</code> constructor to control the number of threads used by parsers supporting multithreading (OBO and OBO JSON at the moment).</li>\n\t\t\t<li>Deprecation warnings for suspected uses of the <code>is_a</code> pseudo-relationship since subclasses/superclasses is now to be handled by the owner <code>Ontology</code>.</li>\n\t\t\t<li>Support for subclass/superclass edition directly from the objects returned by <code>Term.subclasses()</code> and <code>Term.superclasses()</code>. (<a href=\"https://github.com/althonos/pronto/issues/84\">#84</a>)&nbsp;</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Updated <code>fastobo</code> to <code>v0.8</code>, which reduce memory footprint of identifiers, and improves the parser speed.</li>\n\t\t\t<li>Improved OBO parser performance using threading plus zero-copy validation of identifiers on <code>Xref</code> instantiation.</li>\n\t\t\t<li>Improved performance in debug mode by having the typechecker only extract the wrapped function signature once.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>OBO parser crashing on files containing <code>idspace</code> clauses in their headers.</li>\n\t\t\t<li>Reference management issue with binary operations of <code>TermSet</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Removed:</em>\n\t\t<ul>\n\t\t\t<li><code>nanoset</code> depency, which was not useful anymore in Python 3.8 and caused issues with multithreading when processing OBO frames in parallel.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.0.1...v2.1.0\">2.1.0</a> - 2020-03-23\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li><code>Synonym.xrefs</code> now has a setter. (<a href=\"https://github.com/althonos/pronto/issues/70\">#70</a>)</li>\n\t\t\t<li><code>pickle</code> support for <code>Ontology</code>. (<a href=\"https://github.com/althonos/pronto/issues/66\">#66</a>)</li>\n\t\t\t<li><code>RdfXmlParser</code> support for <code>owl:inverseOf</code> and <code>rdfs:subPropertyOf</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li><code>Synonym.xrefs</code> now returns a mutable set that can be used to add <code>Xref</code> to the synonym directly.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>SynonymType.type</code> setter does not consider all synonym types as undeclared anymore. (<a href=\"https://github.com/althonos/pronto/issues/71\">#71</a>)</li>\n\t\t\t<li><code>RdfXmlParser</code> crashing on synonym types definition without a label like in Uberon. (<a href=\"https://github.com/althonos/pronto/issues/67\">#67</a>)</li>\n\t\t\t<li><code>FastoboSerializer</code> crashing when encountering a relationship with at least one <code>replaced_by</code> clause.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v2.0.0...v2.0.1\">2.0.1</a> - 2020-02-19\n\t<ul>\n\t\t<li><em>Fixed</em>\n\t\t<ul>\n\t\t\t<li>Internal handling of ontology data forcing an <code>Ontology</code> to outlive all of the <code>Term</code>s created from it.</li>\n\t\t\t<li><code>Term.id</code> property missing a return type annotation.</li>\n\t\t\t<li><code>Term.equivalent_to</code> not returning a <code>TermSet</code> but a set of strings.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed</em>\n\t\t<ul>\n\t\t\t<li>Refactored implementation of <code>SubclassesIterator</code> and<br>\n\t\t\t<code>SuperclassesIterator</code> to make both use the interal subclassing cache.</li>\n\t\t\t<li>Make <code>Term.is_leaf</code> use internal subclassing cache to make it run in constant time.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.2.0...v2.0.0\">2.0.0</a> - 2020-02-14\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li><code>TermSet.subclasses</code> and <code>TermSet.superclasses</code> methods to query all<br>\n\t\t\tthe subclasses / superclasses of all <code>Term</code>.</li>\n\t\t\t<li><code>TermSet</code> class to the top-level <code>pronto</code> module.</li>\n\t\t\t<li>Dynamic management of subclassing cache for the <code>Ontology</code> class.</li>\n\t\t\t<li>Setters for <code>Term.consider</code>, <code>Term.union_of</code> and <code>Term.intersection_of</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Removed:</em>\n\t\t<ul>\n\t\t\t<li><code>cache</code> keyword argument for the <code>Ontology</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>SuperclassesIterator.to_set</code> being named <code>to_self</code> because of a typo.</li>\n\t\t\t<li>Several bugs affecting the <code>fastobo</code>-backed serializer.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.5...v1.2.0\">1.2.0</a> - 2020-02-10\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Parameter <code>with_self</code> to disable reflexivity of <code>Term.subclasses</code> and <code>Term.superclasses</code> iterators.</li>\n\t\t\t<li><code>TermSet</code> class which stores a set of terms efficiently while providing some useful shortcuts to access the underlying data.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Moved code of <code>Term.subclasses</code> and <code>Term.superclasses</code> to a dedicated iterator class in the <code>pronto.logic</code> submodule.</li>\n\t\t\t<li>Dropped <code>contexter</code> requirement.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Fix a typo in <code>Synonym.type</code> setter leading to a potential bug when the given <code>type</code> is <code>None</code>.</li>\n\t\t\t<li>Fix miscellaneous bugs found with <code>mypy</code>.</li>\n\t\t\t<li><code>fastobo</code> serializer crashing on namespace clauses because of a type issue.</li>\n\t\t\t<li><code>fastobo</code> parsers using data version clauses as format version clauses.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.4...v1.1.5\">1.1.5</a> - 2020-01-25\n\t<ul>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Bumped <code>fastobo</code> to <code>v0.7.0</code>, switching parser implementation to use multi-threading in order to speedup the parser process.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.3...v1.1.4\">1.1.4</a> - 2020-01-21\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Explicit support for Python 3.8.</li>\n\t\t\t<li>Support for Windows-style line endings (<a href=\"https://github.com/althonos/pronto/issues/53\">#53</a>)</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.2...v1.1.3\">1.1.3</a> - 2019-11-10\n\t<ul>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Handling of some clauses in <code>FastoboParser</code>.</li>\n\t\t\t<li><code>OboSerializer</code> occasionaly missing lines between term and typedef frames.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Missing docstrings to some <code>Entity</code> properties.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.1...v1.1.2\">1.1.2</a> - 2019-10-30\n\t<ul>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>RdfXMLParser</code> crashing on entities with <code>rdf:label</code> elements without literal content.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.1.0...v1.1.1\">1.1.1</a> - 2019-10-29\n\t<ul>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>pronto.serializers</code> module not being embedded in Wheel distribution.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.0.0...v1.1.0\">1.1.0</a> - 2019-10-24\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li><code>Entity.add_synonym</code> method to create a new synonym and add it to an entity.</li>\n\t\t\t<li><code>@roundrepr</code> now adds a minimal docstring to the generated <code>__repr__</code> method.</li>\n\t\t\t<li><code>Ontology</code> caches subclassing relationships to greatly improve performance of <code>Term.subclasses</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li><code>Entity</code> subclasses now store their <code>id</code> directly to improve performance.</li>\n\t\t\t<li><code>Term.subclasses</code> and <code>Term.superclasses</code> use <code>collections.deque</code> instead of <code>queue.Queue</code> as a LIFO structure since thread-safety is not needed.</li>\n\t\t\t<li><code>chardet</code> result is now used even when prediction confidence is under 100% to detect encoding of the handle passed to <code>Ontology</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>SynonymType</code> comparison implementation.</li>\n\t\t\t<li><code>Synonym.type</code> getter crashing on <code>type</code> not being <code>None</code>.</li>\n\t\t\t<li><code>RdfXMLParser</code> crashing on synonymtypedefs without scope specifiers.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.0.0-alpha.3...v1.0.0\">1.0.0</a> - 2019-10-11\n\t<ul>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Issues with typedef serialization in <code>FastoboSerializer</code>.</li>\n\t\t\t<li><code>Ontology.create_term</code> and <code>Ontology.create_relationship</code> not raising <code>ValueError</code> when given an identifier already in the knowledge graph.</li>\n\t\t\t<li>Signature of <code>BaseSerializer.dump</code> to remove <code>encoding</code> argument.</li>\n\t\t\t<li>Missing <code>__slots__</code> in <code>Entity</code> in non-typechecking runtime.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Bumped <code>fastobo</code> requirement to <code>v0.6.0</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.0.0-alpha.2...v1.0.0-alpha.3\">1.0.0-alpha.3</a> - 2019-10-10\n\t<ul>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Extraction of <code>oboInOwl:consider</code> annotation in <code>RdfXMLParser</code>.</li>\n\t\t\t<li>Extraction of <code>oboInOwl:savedBy</code> annotation in <code>RdfXMLParser</code>.</li>\n\t\t\t<li>Extraction of <code>subsetdef</code> and <code>synonymtypedef</code> as annotation properties in <code>RdfXMLParser</code>.</li>\n\t\t\t<li>Support for <code>doap:Version</code> instead of <code>owl:VersionIri</code> for specification of ontology data version.</li>\n\t\t\t<li>Proper comparison of <code>PropertyValue</code> classes, based on the lexicographic order of their serialization.</li>\n\t\t\t<li><code>Ontology.dump</code> and <code>Ontology.dumps</code> methods to serialize an ontology in <strong>obo</strong> or <strong>obojson</strong> format.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li><code>Metadata</code> not storing optional description of ID spaces if any.</li>\n\t\t\t<li>Wrong type hints in <code>RelationshipData.equivalent_to_chain</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Added type checking to some more property setters.</li>\n\t\t\t<li>Avoid using <code>networkx</code> in <code>Term.subclasses</code>.</li>\n\t\t\t<li><code>fastobo</code>-derived parsers will not create a new entity if one exists in the graph of dependencies already.</li>\n\t\t\t<li>Exposed <code>pronto.warnings</code> and the complete warnings hierarchy.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v1.0.0-alpha.1...v1.0.0-alpha.2\">1.0.0-alpha.2</a> - 2019-10-03\n\t<ul>\n\t\t<li><em>Added</em>\n\t\t<ul>\n\t\t\t<li>Support for extraction of relationships from OWL/XML files to <code>OwlXMLParser</code>.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Fixed:</em>\n\t\t<ul>\n\t\t\t<li>Type hints of <code>RelationshipData.synonyms</code> attribute.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n\t<li><a href=\"https://github.com/althonos/pronto/compare/v0.12.2...v1.0.0-alpha.1\">1.0.0-alpha.1</a> - 2019-10-02\n\t<ul>\n\t\t<li><em>Changed:</em>\n\t\t<ul>\n\t\t\t<li>Dropped support for Python earlier than <code>3.6</code>.</li>\n\t\t\t<li>Brand new data model that follow the OBO 1.4 object model.</li>\n\t\t\t<li>Partial OWL XML parser implementation using the OBO 1.4 semantics.</li>\n\t\t\t<li>New OBO parser implementation based on <code>fastobo</code>.</li>\n\t\t\t<li>Imports are properly separated from the top-level ontology.</li>\n\t\t\t<li><code>Ontology.__getitem__</code> can also access entities from imports.</li>\n\t\t\t<li><code>Term</code>, <code>Relationship</code>, <code>Xref</code>, <code>SynonymType</code> compare only based on their ID.</li>\n\t\t\t<li><code>Subset</code>, <code>Definition</code> compare only based on their textual value.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Added:</em>\n\t\t<ul>\n\t\t\t<li>Support for OBO JSON parser based on <code>fastobo</code>.</li>\n\t\t\t<li>Provisional <code>mypy</code> type hints.</li>\n\t\t\t<li>Type checking for most properties in <code>__debug__</code> mode.</li>\n\t\t\t<li>Proper <code>repr</code> implementation that should roundtrip most of the time.</li>\n\t\t\t<li>Detection of file format and encoding based on buffer content.</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li><em>Removed:</em>\n\t\t<ul>\n\t\t\t<li>OBO and JSON serialization support (for now).</li>\n\t\t\t<li><code>Term.rchildren</code> and <code>Term.rparents</code> and stop making direction assumptions on relationships.</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>\n</ul>\n\n<p>&nbsp;</p>", 
    "contributors": [
      {
        "type": "Other", 
        "name": "Alex Henrie"
      }, 
      {
        "type": "Other", 
        "name": "Spencer Mitchell"
      }, 
      {
        "type": "Other", 
        "name": "Tatsuya Sakaguchi"
      }
    ], 
    "title": "althonos/pronto: 2.3.0", 
    "license": {
      "id": "MIT"
    }, 
    "relations": {
      "version": [
        {
          "count": 47, 
          "index": 42, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "595572"
          }, 
          "is_last": false, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "4552164"
          }
        }
      ]
    }, 
    "version": "v2.3.0", 
    "keywords": [
      "ontology", 
      "bioinformatics", 
      "obo", 
      "owl", 
      "python"
    ], 
    "publication_date": "2020-09-21", 
    "creators": [
      {
        "orcid": "0000-0002-3947-4444", 
        "affiliation": "EMBL, @zellerlab", 
        "name": "Martin Larralde"
      }
    ], 
    "access_right": "open", 
    "resource_type": {
      "type": "software", 
      "title": "Software"
    }, 
    "related_identifiers": [
      {
        "scheme": "url", 
        "identifier": "https://github.com/althonos/pronto/tree/v2.3.0", 
        "relation": "isSupplementTo", 
        "resource_type": "software"
      }, 
      {
        "scheme": "doi", 
        "identifier": "10.7490/f1000research.1117405.1", 
        "relation": "cites", 
        "resource_type": "poster"
      }, 
      {
        "scheme": "url", 
        "identifier": "http://owlcollab.github.io/oboformat/doc/obo-syntax.html", 
        "relation": "cites", 
        "resource_type": "publication-workingpaper"
      }, 
      {
        "scheme": "doi", 
        "identifier": "10.5281/zenodo.3492231", 
        "relation": "isCitedBy", 
        "resource_type": "publication-report"
      }, 
      {
        "scheme": "url", 
        "identifier": "https://pronto.readthedocs.io/en/v2.3.0/", 
        "relation": "isSupplementedBy", 
        "resource_type": "publication-softwaredocumentation"
      }, 
      {
        "scheme": "doi", 
        "identifier": "10.5281/zenodo.595572", 
        "relation": "isVersionOf"
      }
    ]
  }
}
764
90
views
downloads
All versions This version
Views 76412
Downloads 900
Data volume 133.7 MB0 Bytes
Unique views 5688
Unique downloads 450

Share

Cite as