This repository contains the source code of a structure-based approach to transfer Electronic Lab Notebook (ELN) protocols including research data into a Research Object Crates (RO-Crates) bundle whereas the semantic model rerpresents retrospective provenance about the research data.
Note that this software is a research prototype and may contain bugs and errors, i.e., do not use this in production.
The approach has been used in order to create the RO-Crates at: https://github.com/SFB-ELAINE/Ca-imaging-RO-Crate
The approach is described in full detail in this article:
Max Schröder, Susanne Staehlke, Paul Groth, J. Barbara Nebe, Sascha Spors, Frank Krüger.
Structure-based knowledge acquisition from electronic lab notebooks for research data provenance documentation.
Journal of Biomedical Semantics 13, 4 (2022).
https://doi.org/10.1186/s13326-021-00257-x
This work is licensed under a Creative Commons Attribution 4.0 International License.
In order to reference this software, please consider the information in the CITATION.cff file.
In order to run the source code, install the python dependencies from requirements.txt
and make sure that Docker is installed and running.
A minimum running example is as follows:
model = ELN2Crate(LOGGER, NAMESPACE_URL, ELABFTW_URL, ELABFTW_MANAGER, EXP_ID, PSEUDONYMIZE_PERSONS)
try:
model.write_files()
model.create_model()
model.write_crate('./ro-crate_%i' % (EXP_ID))
except ProtocolElementUnknown as e:
print('Protocol element is unknown: ' + str(e), file=sys.stderr)
where the following variables have been set:
LOGGER
contains an initialized python-logger using the packagelogging
NAMESPACE_URL
is the base URL of the namespace of the semantic modelELABFTW_URL
URL of the elabFTW instance that is used for the documentation of the experimentsELABFTW_MANAGER
an initialized version of theelabapy.Manager()
with read permissions on the experiment and the corresponding inventory itemsEXP_ID
the experiment ID that should be bundledPSEUDONYMIZE_PERSONS
is an array of strings that should be replaced by pseudonymized before bundling in order to protect privacy.