Skip to content

Molstruct 3.0.0: Strong 💪 but light as a feather

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 21 Apr 23:05
· 34 commits to master since this release

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)