Try ioChem-BD

First Look

The ioChem-BD platform is made to level up your work in the computational chemistry and materials science field thanks to it’s extensive data management features. We propose here three ways to try ioChem-BD, choose the one that suits you best.

As an individual academic researcher we give you free access to the ioChem-BD services hosted at the Barcelona Supercomputing Center node (BSC-CNS). The BSC node not only holds the free user accounts but also the Find repository. Publish your work and boost yours and others research thanks to the data project CODI-PROjecte BSC.

You can dowload the binary package or install a docker container, and run the Essential open-source ioChem-BD in your own laptop or HPC cluster. Data could not be published nor will be synchronised with the central Find repository until your service is officially registered.

Create

Browse

Create a BSC account

The Barcelona Supercomputing Center node (BSC-CNS) is the institution that holds the largest community, more than 600 users from 65 different countries as May 2024. There, everyone can use ioChem-BD. This option has many advantages such as saving disk space and free publishing. Academic users can keep the account and use the Essential version forever. You can check all the features in the products page.

In case you want to have ioChem-BD in your own machine, keep in mind that data won’t be synchronized with the BSC node. However, you can dowloand the binary package from our GItlab or install a docker container.

Apply for a BSC account filling this form.

ioChem-BD in Docker containers

ioChem-BD platform is a series of Java web services for managing computational chemistry results. It is coded to run on a UNIX/Linux server but, in order to overcome this limitation, a docker image has been created to run it on multiple platforms.

Current project contains all the necessary files to easily deploy ioChem-BD chemical software by the use of containers. It allows to run ioChem-BD with no dependencies or prerequisites except the docker tool. The deployment is customizable by modifying a configuration file bundled inside this project.

Requirements

Required packages:


TL;DR for the impatient

Go from zero to ioChem-BD in a simple command line:

$ docker run -d --ulimit nofile=20000:65535 -m 8192m --name iochem-bd-with-data --add-host test.iochem-bd.org:127.0.0.1 -p 8443:8443 --hostname test.iochem-bd.org iochembd/iochem-bd-docker:latest-with-data
    

Previous command will start a container of an ioChem-BD installation with some user accounts created and a few calculations uploaded to them, so you can play around it, the startup process can take a couple of minutes.

To make the container run properly, please reserve at least 6GB of memory for the container with the -m 6144m parameter.

Must also add this entry to your hosts file to route properly to the running container:

127.0.0.1  test.iochem-bd.org
    

Now point the browser to https://test.iochem-bd.org:8443 and after a complain about the self-signed certificate, it will show the ioChem-BD main page.

The administrator account has the following default credentials:

  • username: whatever@example.com
  • password = mypassword

With this user account you can start creating users, user groups and communities where to publish your content following the ioChem-BD documentation.


Project structure

It contains two folders:

  • /docker-compose: For running ioChem-BD using docker-compose utility.
  • /docker: It contains the required Dockerfile and /resources folder to build a new ioChem-BD docker image from scratch, just in case you want to add more packages or customizations to the vanilla image.

The images are available on the following Docker registry services:

How to start the container

Mode 1 Run it using docker-compose

This is the most straightforward method to configure and run the container. First, download this project to a local folder, then run docker-compose:

$ git clone https://gitlab.com/ioChem-BD/iochem-bd-docker.git
    $ cd iochem-bd-docker/docker-compose
    $ docker-compose up
    

It will download the latest image, set it up and run it with the default values:

parameter value
hostname test.iochem-bd.org
web service port 8443
admin credentials defined on /custom/default.config file
data contained Without data. In case you want to use the image with demo data, edit docker-compose.yml and set image parameter to iochembd/iochem-bd-docker:latest-with-data

Must also add this entry to your hosts file to enroute properly to the running container:

127.0.0.1  test.iochem-bd.org
    

Now point the browser to https://test.iochem-bd.org:8443 and after a complain about the self-signed certificate, it will show the ioChem-BD main page.

Additional actions

Docker-compose tool allow to run, stop and delete containers by reading the docker-compose.yml file.

$ cd docker-compose           # Always move to the base *docker-compose* folder to run the commands
    
    $ docker-compose logs -f      # View the system log of the container (check for error and other info)           
    $ docker-compose stop         #
    

Stop the container
$ docker-compose start # Start the container
$ docker-compose rm -fv # Remove the container (must be stopped first)

Custom deployment

All parameters used during the ioChem-BD setup are defined inside docker-compose.yml and default-config files.

Move to /docker-compose folder and review the following elements:

  • docker-compose.yml: The composer file used to setup and launch the container
  • /custom/default.config: Custom configurations applied to the container

Mode 2 From command line

ioChem-BD image can be run from command line with no downloads at all. Just type in this command:

$ docker run -d --ulimit nofile=20000:65535 -m 8192m --name iochem-bd-docker --add-host test.iochem-bd.org:127.0.0.1 -p 8443:8443 --hostname test.iochem-bd.org iochem-bd/iochem-bd:latest
    

And add this entry to your hosts file to enroute properly to the running container:

127.0.0.1  test.iochem-bd.org
    

Now point you browser to https://test.iochem-bd.org:8443 and after a complain about the self-signed certificate it will show the ioChem-BD main page.

Additional actions

$ docker ps     # List running containers
    $ docker logs -f iochem-bd-docker     # View the system log of the container (check for error and other info)
    $ docker exec -ti iochem-bd-docker /bin/bash       # Login inside the container
    $ docker stop iochem-bd-docker    # Stop the container
    $ docker start iochem-bd-docker   # Start an stopped container
    $ docker rm -fv iochem-bd-docker  # Remove the container (must be stopped first) 
    

Custom deployment

In order to configure a different server port, hostname or change the administrator account credentials, you must provide a configuration file and mount it as a volume of the container.

First download the /docker/resources/default.config file from this project and drop it on a folder, let's name it custom.

Now edit the file and set a different value on hostPort property like 443.

Now we will run the container adding this folder as a volume mounted inside the container. The installation procedure will detect it and setup the system accordingly. Launch the docker run varying the -p parameter and adding the volume:

$  docker run -d --ulimit nofile=20000:65535 -m 8192m --name iochem-bd-docker --add-host test.iochem-bd.org:127.0.0.1 -v /custom:/tmp/iochembd-resources -p 443:443 --hostname test.iochem-bd.org iochem-bd/iochem-bd:latest 
    

Editing hosts file

In order to allow communication with the new running container, the host running docker service must know the IP assigned to the new ioChem-BD container, in this case it is localhost (127.0.0.1).

The file depends on the host OS:

Operating System Location
Unix, Unix-like, POSIX /etc/hosts
Microsoft Windows %SystemRoot%\System32\drivers\etc\hosts
Apple Macintosh /etc/hosts (a symbolic link to /private/etc/hosts)

A note about security

If you run the vanilla ioChem-BD image (without changing any parameter) and intend to run it on production, please update administrator account password from the Browse module web interface or create a new one and delete the original.

ioChem-BD source code

The ioChem-BD software platform is a suite of web services oriented to manage the entire life-cycle of Computational Chemistry and Material Science digital files.

The current project holds all necessary source files to build and bundle distributable copies of the ioChem-BD platform. Otherwise, you can deploy the platform easily using containers, please refer to the specific Docker project for more information.

Folder structure

Here is a list of the folders and files contained inside the project, grouped by functionality:

Main web modules:

  • browse: Browse module project
  • cas: Central Authentication Service module project
  • create: Create module project

Data conversion related projects:

  • createshell: Shell client used to manage Create service from the command line
  • jumbo-converters: Folder structure with the capturing templates used to convert textual files into CML (Chemical Markup Language)
  • jumbo-saxon: Conversion utility that uses jumbo-converters project templates to perform format conversion: Text -> CML -> CML (CompChem)

Other resources, build utilities, etc:

  • license/: Third party licenses folder
  • target/: Autogenerated folder, it is generated after bundling the project.
  • resources/: Additional files, used to compose the target directory
  • build.properties: Ant configuration parameters
  • build.xml: Ant build file to build the project
  • COPYING: Current license file
  • CREDITS: List of the people involved in the project development
  • LICENSE: Additional license definitions not covered in the license folder
  • pom.xml: Maven root project, contains the common configuration parameters, version numbers, etc
  • README_DEVEL.md: Steps required to set up the project inside the Eclipse IDE to debug, extend and/or improve the software
  • README.md: The current file

Build process

Along with the project files, there is an Ant build file at the root of the project named build.xml that will generate the target folder with the distributable package. The build file will perform tasks such as retrieving library dependencies and platform packages, compiling source code, bundling web modules and moving all content to the right place.

Requirements

The following tools are required to build the project:

Building the project

To start, we will get the latest source from GitHub:

$ git clone --depth=1 https://gitlab.com/ioChem-BD/iochem-bd   #Remove --depth=1 to get the entire repository
        

Now set up JAVA_HOME pointing the root of the Java JDK 1.8 folder, otherwise Ant will fail to start.

$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.fc29.x86_64/jre/bin/java #Or the place where your Java JDK resides
        

Run ant package target, it will clean the previous bundle, compile all projects, set up the proper configurations and move all the resulting content into the target folder.

$ cd iochem-bd
        $ ant package
        

This process will take some time to finish, then a folder called target will be generated.

This folder contains the distributable package, ready to be copied and installed on any server.

Deploying the package

Rename the new target folder to iochem-bd (for example), copy it to its final destination (/opt, a local user folder, etc) and then follow the instructions from ioChem-BD webpage to install it.

Extending ioChem-BD platform

The platform is a set of maven projects that can be extended to provide more functionalities, code new chemical formats, data visualisations, capture new metadata fields, etc. Its GNU license gives you the freedom to work with its code without limitations.

To learn more about each project, you can refer to the README.md file on the base of each project and to the README_DEVEL file that explains how to set up an IDE to work with it.


Contribute with your data

Once you feel comfortable using the ioChem-BD platform and started creating, storing and sharing your scientific results, please consider connecting it to our central repository.

Requirements:

  • Your instance must be inside a domain publicly accessible (discoverable on the Internet).

Benefits:

  • DOI identifiers: Your instance will be able to request DOIs for your published datasets, free of charge.
  • High availability: Your public data will be also synchronized in the BSC MareNostrum HPC cluster and available 24/7.
  • Long term storage and recovery: In the case your instance discontinues its service: cease to operate, a data disaster occurs, etc., a copy of your data will be held under a harvestable public web service.
  • And don't forget that you will also contribute to building the largest distributed database of computational chemistry and material science results.

Just fill this form and we will assist you in the process of connecting your ioChem-BD instance to the central service.


Keep updated with the latest news

Please subscribe to our mailing list to receive new release, bug fixes, and improvements notifications.

Get in touch

If you are interested in our product, please send us a message and we will get back to you.

CONTACT US
logo ioChem-BD
arrow-up icon