Setup and dependencies:
- INDRA now supports networkx 2.x
- The Cython version restriction is now removed, and the recommended installation method for pyjnius is through Github
- Extra dependencies for various modules are now given explicitly in setup.py
- Separate configuration module (`indra.config`) to manage `config.ini` and `db_config.ini` files
- Contribution guidelines added
Representation:
- Extensions to keys and hashes used to identify related Statements (`indra.statements`)
- Statements now implement a `contradicts` method to find contradictions
Input processors:
- Major improvements and adaptation to changes in Eidos (`indra.sources.eidos`), Hume (`indra.sources.hume`), CWMS (`indra.sources.cwms`), and SOFIA (`indra.sources.sofia`) reader inputs
- BBN reader renamed to Hume (`indra.sources.hume`)
- Ontologies for the Eidos, Hume, and CWMS readers are integrated, and grounding information from these sources is represented
- New ISI reader API and processor added (`indra.sources.isi`)
- New Medscan reader API and processor added (`indra.sources.medscan`)
- Generalized and refactored SIGNOR input API and processor added (`indra.sources.signor`)
- BEL resources are now PyBEL compatible and processing defaults to PyBEL, rather than BEL/RDF (`indra.sources.bel`)
- Imrpoved modification and mutation site extraction, and handling of complex controllers in REACH input processor (`indra.sources.reach`)
- Bug fixes and improvements in TEES (`indra.sources.tees`) and Sparser (`indra.sources.sparser`) inputs
- Broader set of Increase/DecreaseAmount Statements extracted from TRIPS (`indra.sources.trips`)
- Added robust DRUM reader to use TRIPS/DRUM locally (`indra.sources.trips.drum_reader`)
Core assembly modules
- Contradiction finding in Preassembler (`indra.preassembler`)
- Handling of new `is_opposite` relationship in Statements, HierarchyManager and Preassembler
- Generalized reasoning across `isa/partof` paths in HierarchyManager (`indra.preassembler.hierarchy_manager`)
- New Ontology Mapper added (`indra.preassembler.ontology_mapper`)
- SiteMapper uses cache to speed up sequence access (`indra.preassembler.site_mapper`)
- Assembly filters now extend across BoundConditions (`indra.tools.assemble_corpus`)
Output assemblers
- BMI wrapper implemented for PySB models for integrated simulation in workflows (`indra.assemblers.bmi_wrapper`)
- CAG Assembler can produce Jupyter-embeddable graphs and TSVs (`indra.assemblers.cag_assembler`)
- Many generalizations and improvements in PyBEL assembler (`indra.assemblers.pybel_assembler`)
- Bug fixes and improvements in PySB, SIF, Graph, English, IndexCard and CX assemblers
Literature and database clients:
- NewsAPI client added (`indra.literature.news_api`)
- Many new functionalities to access content in Elsevier client (`indra.literature.elsevier`)
- UniProt client (`indra.databases.uniprot_client`) extended with protein synonyms; optimizations in resource loading result in faster import times
Resources
- Many resource files updated, including FamPlex (`indra.resources.famplex`)
- New INDRA JSON schema and documentation added (`indra/resources/statements_schema.json`)
Analysis and explanation
- Paths graph is now a separate package, and a dependency of INDRA (https://github.com/johnbachman/paths_graph) and has been removed from `indra.explanation`
High-throughput reading and database
- REST API updates and extensions (`db_rest_api` and `rest_api`)
- Separate client and config modules for DB (`indra.db.client` and `indra.db.config`)
- New reading and preassembly managers for DB (`indra.db.reading_manager`, `indra.db.preassembly_manager`)
- New statistics module for DB (`indra.db.stats`)
- New reporting and log analysis functionalities for AWS-based reading (`indra.tools.reading` and `indra.tools.reading.db_reading`)
- Extensive improvements to running and managing AWS-based reading jobs (`indra.tools.reading`)