Adding simulations

Stepwise instructions to add simulation into the NMRlipids databank, run the basic analyses and perform automatic quality evaluation are given here. The first three steps are a minimum requirements to add a simulation. The first three steps can be performed using graphical GitHub interface. To run the basic analyses and quality evaluation from steps 4 forward, you need to create a local fork of the NMRlipids BilayerData git. Remember that data is plugged to the main Databank repo as a submodule.

  1. Add trajectory and topology (tpr for Gromacs, pdb or corresponding to other programs) file into a Zenodo repository.If you want to use other repository than Zenodo, please do not hesitate to open an GitHub issue on this.

  2. Create an info.yaml file containing the essential information on your simulation by filling the info template. For instructions, see Simulation metadata (README.yaml) and examples. Mapping files are described in Universal molecule and atom names and are located in the Molecule record inside the folder of corresponding molecule.

  3. You can store the created info.yaml file somewhere inside ./info_files/ folder in the BilayerData git and make a pull request to the main branch. You can stop here or continue to create ``README.yaml`` file in step 4.

  4. Before continuing, make sure that your Data submodule is switched to your own fork. To create the README.yaml file for the databank you should run nml_add_simulation on your info-file:

    nml_add_simulation -f {path to the info.yaml file that you created} -w {working-directory}
    

    After this is finished, you should see a new folder in ./simulations which contains the README.yaml file of your system. Commit the created README.yaml file into the git.

    git add Simulations/**/README.yaml
    
  5. To perform basic analyses for the added system(s) you should run nml_compute_databank with the following keys:

    nml_compute_databank --apl --nmrpca --ff --thickness \
       --OP --range *-0
    

    By default, your new-created system gets ID -1, -2, etc, so we run recomputing only on range from -inf to 0. After this, you should see the results in the same folder where README.yaml is located. The results files should be staged by running

    git add Simulations/**/*.json
    
  6. For the quality evaluation against experiments, the simulation needs to be first connected to the corresponding experimental data (if available) by running nml_match_experiments. This will add the EXPERIMENT dictionary into the README.yaml files. This dictionary defines the location of related experimental data in ./experiments folder. Then the quality evaluation can be then done by running nml_evaluate_quality:

    nml_match_experiments
    nml_evaluate_quality
    

    The resulting qualities can be then added into the git by running

    git add Simulations/**/README.yaml
    git add Simulations/**/*.json
    

    To create rankings of simulations based on their quality against experiments (see nml_make_ranking) and to store the results in folder Data/Ranking, run

    nml_make_ranking
    git add Ranking/*.json
    
  7. Finally, commit the added data into your fork and make a pull request into the main branch.