All contributions are more than welcome! If you have a problem/found a bug you can open an issue on the bug tracker or let us know in the Slack workspace).
Cheminfo maintains project along different scopes and welcomes contributions to all of them:
We currently re-develop the ELN using the React framework. The most mature project is nmrium which is a fully-fledged tool for NMR data analysis and processing. Use our project generator with yo cheminfo:react-frontend
to start a new React project.
The ELN that is currently in production uses the visualizer library, which cheminfo developers maintain. Some examples of how the visualizer library can be used can be found in the “Tutorial” section on cheminfo.org. Most graphical interfaces in the ELN are developed using this library. You can contribute new interfaces via my.cheminfo.org, where you can log in using a Google account. You will see that this system uses its own version control system. Some background on how this library can be used without JavaScript is given in one of our articles and the accompanying code.
The visualizer can be used in a React component using the react-visualizer library.
Cheminfo also hosts the development version of the JSME editor.
A lot of effort in the cheminfo organization goes into the development of parsers for chemical data. Some examples are the netcdfjs and mrz parsers. We maintain parsers for NMR spectroscopy (Bruker, NMReData, JEOL), chromatography, thermogravimetry, gas adsorption isotherms, x-ray diffraction, XPS, and many more. Most of the data in the ELN is stored as JCAMP, a IUPAC recommended format, and we maintain the jcampconverter library to deal with this filetype.
To contribute a new parser, use our project generator with yo cheminfo:module
. We try to use common-spectrum as the base for all new parsers. Common spectrum provides basic utilities that like toJCAMP
, peak picking, or baseline correction.
We maintain several projects that aim to “harvest” or to provide programmatic access to chemical data. A recent example is a wrapper around the PubChem API. We also mine all the molecules on Wikipedia and PubChem.
For chemical structure information we maintain openchemlib-js. This is a library that also takes care of stereochemistry information.
The cheminfo lead developers also maintain the ml.js GitHub organization, which provides array methods and libraries with machine learning algorithms. One library that is particular useful in the ELN is the global spectral deconvolution as well as the peak shape generator. But also the PCA library can be used via the ELN. An interesting side note is that our neural network library is used in browser benchmarks.
The ELN in production uses CouchDB and cheminfo maintains the rest-on-couch library that provides an interface to CouchDB that allows the control of permissions on the documents and also allows setting up automatic importation of files into the folder. This library also powers the API of the ELN.
The ELN deployment is currently orchestrated via Docker compose, with the code being maintained in its own repository.
We are in the process of migrating to a new data schema, which is based on TypesScript types.
The ELN documentation is based on Markdown files. We are in the process of migrating to a docusaurus-based system. The legacy repository uses GitBooks.
For contributions to code and documentation you will need a GitHub accounts, you will fork a repository, make a new branch, edit the code, and then make a pull request. In the following, we will go through all these steps.
If you do not already have Git installed on your machine, you’ll need to install it.
brew install git
from the terminalapt-get install git
from the terminalWe go through steps 4–7 in a video tutorial in the blog post.