The new and better Molstruct 3.0.0 is now available! Below you will find an overview of the most important changes since the last release.
🚀 New features
In the new version of Molstruct, you will find the following new features. You must try them out!
Predefined presets
To make your work easier, Molstruct has built-in preset support. Thanks to this, you do not have to set everything manually, you just select the appropriate preset and it's ready. The presets are flexible. If you want to change, e.g. the column names selected for a preset, you can do so. At the moment you can use the DrugBank open preset. There are plans to add more in the future. Any suggestions are welcome!
Support for multiple values
Sometimes you may find more than one value in a particular cell. Molstruct is ready for this, and you can change the value delimiter if you need to with the new -vd VALUE_DELIMITER
, --value-delimiter VALUE_DELIMITER
option. Multiple value support works for all formats.
Subject type selector
Now you can select the preferred subject type for all output formats. You can use the -s,--subject
option for this. Supported subject types are iri
, uuid
, and bnode
. If you don't know what to choose, you can leave the default subject type (iri
) and not use -s,--subject
at all.
Base subject selector
You can also set your own IRI base for the iri
subject type. You can override the default one ('https://example.com/molecule#entity') with the -b, --base
option if you want. For each base IRI with #, an additional id attribute is added to the HTML output formats.
Dataset type support
Dataset type support has been added for JSON-LD HTML, JSON-LD, RDFa, and Microdata formats. Thanks to this, the generated datasets can be even more visible to search engines, e.g. in the Google Dataset Search. Read more at Google Developers page.
📈 Improvements
The new version brings some improvements. Below you will find the most important of them.
Output format improvements
The generation of all output formats has been rewritten. The code responsible for this is much clearer. You may notice minor fixes to the output formats.
Better documentation
In this release, README has been enhanced with a Quick start section, which should make it easier for you to start with Molstruct. Additionally, some of the README stuff was moved to the project Wiki. You can find useful information there as well.
🐛 Bug Fixes
There are no infallible people, just as there are no perfect program codes. The following bugs have been found and fixed in this release.
Add missing image
for JSON-LD outputs
It turned out that the JSON-LD formats did not have image
property support. This has been corrected. In addition, the code responsible for handling MolecularEntity profile properties has been rewritten to reduce the chance of a similar problem in the future.
💔 Breaking changes
These changes are not backward compatible.
jsonld-html
is now jsonldhtml
Renamed jsonld-html
to jsonldhtml
output format. You don't need to write extra - now.
-s SMILES
is now -sm SMILES
You can now use -sm SMILES
, --smiles SMILES
instead of -s SMILES
, --smiles SMILES
to define a column name for SMILES. -s
is reserved for the new subject type option.
additionalType
is now not supported
This option requires specialized knowledge to be successfully used. In order not to create additional confusion, this option is no longer available.
🕶️ Changes under the hood
The changes under the hood don't affect you directly, but you might find them interesting.
Rewritten GitHub Actions workflows
Workflows in GitHub Actions have been rewritten for better clarity and understanding.
Below are just some of the additional changes:
- GitHub Actions builds and sends containers to Docker Hub instead of building it on Docker Hub,
- The cache is used to build the Docker,
- Waiting for concurrent jobs if needed.
If you are interested, you can see the workflows for the Molstruct project.
Code simplification
In this release, the Molstruct code is even clearer and more readable. Generating all formats as well as managing the supported properties of MolecularEntity profile has been rewritten.
This changelog contains only the most significant changes. Below you will find a list of all commits since the last release.
Commits
- [1cc38c2]: Add missing IMAGE for JSON-LD outputs (Łukasz Szeremeta)
- [a50699e]: Remove Python 3.3 and 3.4 from python-package.yml (Łukasz Szeremeta)
- [66fbb8b]: Introduce presets (Łukasz Szeremeta)
- [50eeb44]: Multivalue support and better DrugBank preset (Łukasz Szeremeta)
- [8444acc]: Remove unncessary rdf from context in jsonld output (Łukasz Szeremeta)
- [0962246]: Remove unnecessary additionalType from jsonld context (Łukasz Szeremeta)
- [0218d6c]: Return back to -d for description column (Łukasz Szeremeta)
- [b7d70cb]: http://example.com/molecule/ -> http://example.com/molecule# (Łukasz Szeremeta)
- http://example.com/molecule# -> http://example.com/molecule#entity (Łukasz Szeremeta)
- [c1ef89c]: Add id for molecule div tag if # in baseURI (Łukasz Szeremeta)
- [06b2741]: baseURI -> subject-base (Łukasz Szeremeta)
- [5fc306c]: Add urn:uuid option (Łukasz Szeremeta)
- [8fd1182]: Generate img tag for molecule's images (Łukasz Szeremeta)
- [d6581ae]: Remove / from img tag (Łukasz Szeremeta)
- [86cdc06]: Number molecules starting from 0 instead of 1 (Łukasz Szeremeta)
- [95fff6b]: itemprop fix in Microdata output (Łukasz Szeremeta)
- [c5460ae]: Add bnode subject type option (Łukasz Szeremeta)
- [090c8c3]: --subject-base -> --base in README.md (Łukasz Szeremeta)
- [a0c8b29]: SUBJECT_BASE -> BASE in README.md (Łukasz Szeremeta)
- [d395c3c]: Add schema:Dataset (Łukasz Szeremeta)
- [8d0b850]: jsonld_html -> jsonldhtml (Łukasz Szeremeta)
- [7db9412]: http -> https (Łukasz Szeremeta)
- [346a81c]: Better jsonldhtml indents (Łukasz Szeremeta)
- [3c92cb4]: https -> http for Google Rich Results Test (Łukasz Szeremeta)
- [4160ff9]: MolecularEntitly type -> profile with version (Łukasz Szeremeta)
- [7fcc638]: MolecularEntity typo fix in README (Łukasz Szeremeta)
- [eab0de1]: Add structured data link (Łukasz Szeremeta)
- [9ae62c2]: Limit fix after change numeration from 0 (Łukasz Szeremeta)
- [099fb3b]: drugbank -> drugbank-open with description (Łukasz Szeremeta)
- [b095a44]: Don't escape quotes if not needed (Łukasz Szeremeta)
- [2593f94]: Improve README (Łukasz Szeremeta)
- [6c9aed3]: Improve descriptions (Łukasz Szeremeta)
- [71c213a]: Minor README improvements (Łukasz Szeremeta)
- [7f25f4a]: Add info about preset idea (Łukasz Szeremeta)
- [756cda4]: Fix small typo (Łukasz Szeremeta)
- [b9f9fec]: Update README.md (Łukasz Szeremeta)
- [8f3a2f8]: Add quick start (Łukasz Szeremeta)
- [4ffe12c]: Improve quick start (Łukasz Szeremeta)
- [2824265]: Mention drugbank vocabulary.csv file in README (Łukasz Szeremeta)
- [6b4136a]: Improve README formatting (Łukasz Szeremeta)
- [0bb6810]: Improve README (Łukasz Szeremeta)
- [68a3cfe]: Add a direct link to the DrugBank dataset (Łukasz Szeremeta)
- [f02facf]: Add ability to rewrite preset settings (Łukasz Szeremeta)
- [c97c6af]: Add more detailed info about presets (Łukasz Szeremeta)
- [620664c]: Move preset section (Łukasz Szeremeta)
- [1e8978c]: Improve in drugbank-open section (Łukasz Szeremeta)
- [655420b]: Update README.md (Łukasz Szeremeta)
- [bcaf05f]: Python and pip required for quick start (Łukasz Szeremeta)
- [6c558b9]: Rewrite to JSON-LD HTML example (Łukasz Szeremeta)
- [a719e3d]: Examples -> Additional examples (Łukasz Szeremeta)
- [94163db]: Improve README (Łukasz Szeremeta)
- [47e67b7]: Update README.md (Łukasz Szeremeta)
- [1995047]: Update workflows (Łukasz Szeremeta)
- [b1e3da6]: Add missing name for test job (Łukasz Szeremeta)
- [3d9fed9]: Improve pre-release.yml (Łukasz Szeremeta)
- [e13751e]: Turnstyle -> Wait for concurrent jobs (Łukasz Szeremeta)
- [f2aed4e]: Add quotes for schema:temporal in JSON-LD outputs (Łukasz Szeremeta)
- [652b420]: Add more tests (Łukasz Szeremeta)
- [1a50535]: Add missing dots for docstrings (PEP 257) (Łukasz Szeremeta)
- [9f7e41d]: Change default licence to CC-BY 3.0 (Łukasz Szeremeta)
- [8b88a94]: Add preset suggestion issue template (Łukasz Szeremeta)
- [4a67daf]: Revert back old issue templates (Łukasz Szeremeta)
- [9c7f150]: Update issue templates (Łukasz Szeremeta)
- [7a01bf5]: Update issue templates (Łukasz Szeremeta)
- [951005d]: Add suggest preset link (Łukasz Szeremeta)
- [abd9f7c]: Update issue templates (Łukasz Szeremeta)
- [58ddefc]: Bump to 3.0.0 (Łukasz Szeremeta)