import toml # The dictionary below has hard-coded values for each metadata fields. # You will need to write code to extract/gather these values from your specific data/notes. # The script will print a .toml string that can be submitted to MDRepo. example_data = { "initial": { "description": "A description of the simulation (text)", "scientific_goal": "Scientific purpose of the simulation (text)", "date": "The date this metadata file was generated (date in the format YYYY-MM-DD)", "lead_contributor_orcid": "The ORCID of the contributor responsible for uploading the simulation (ORCID in the format xxxx-xxxx-xxxx-xxxx)", "external_link": "A URL to an external data source for the simulation (URL)", "commands": "The commands used to produce the simulation (text)" }, "software": { "name": "Software name (text)", "version": "Software version (text)" }, "required_files": { "trajectory_file_name": "Trajectory files contain atomic coordinates of sequential snapshots of the simulation system. Examples of extensions of trajectory files generated by different popular MD simulation packages are: Gromacs - .xtc/.trr, AMBER - .netcdf/.crd, CHARMM - .dcd, NAMD - .dcd. (text)", "structure_file_name": "A structure file contains the atomic coordinates of one snapshot of the simulation system. The most popular format is a PDB file. Examples of extensions of structure files, other than PDB formated, generated by different popular MD simulation packages are: Gromacs - .gro, CHARMM - .cor. (text)", "topology_file_name": "The topology file contains the parameters for how the atoms in the molecule interact with each other through bonded and non-bonded interactions, as well as any added constraints or exclusions. Examples of extensions of topology files generated by different popular MD simulation packages are: Gromacs - .top/.tpr, AMBER - parm*.dat, CHARMM - .psf, NAMD - .psf. (text)" }, "additional_files": [ { "additional_file_type": "Additional file type (choices: Input, Structure, Trajectory, Topology, Periodic boundary condition, Restart, Logs, Checkpoint, Parameters, User defined file, Miscellaneous, Upload metadata) (text)", "additional_file_name": "Additional simulation files to be uploaded (text)", "additional_file_description": "Comments or description of the file (text)" } ], "replicates": { "replicate": "The replicate index for this simulation (number)", "total_replicates": "Total number of replicates produced in this series (number)" }, "water": { "is_present": "Was water present in the simulation (true / false)", "model": "Water model used for the simulation (text)", "density": "Water density used for the simulation (decimal)", "water_density_units": "Water density units (choices: g/m^3) (text)" }, "proteins": [ { "molecule_id_type": "Molecule ID type (choices: Uniprot, PDB, No ID) (text)", "molecule_id": "Molecule ID for the simulation (text)" } ], "ligands": [ { "name": "Name of the ligand (text)", "smiles": "SMILES string for the ligand (text)" } ], "solvents": [ { "name": "Solvent name (text)", "ion_concentration": "Solvent concentration (decimal)", "solvent_concentration_units": "Solvent concentration units (choices: mol/L) (text)" } ], "forcefield": { "forcefield": "Type of force field used to produce the simulation (text)", "forcefield_comments": "Comments relating to the force field used (text)" }, "temperature": { "temperature": "The temperature of the simulation (K) (allowed values from 273 K to 5000 K) (number)" }, "protonation_method": { "protonation_method": "The method used for adding the protonation state (text)" }, "timestep_information": { "integration_time_step": "The integration time step (in fs) used for the simulation (decimal)" }, "papers": [ { "title": "Paper title (text)", "authors": "Paper authors (text)", "journal": "Paper journal (text)", "year": "Paper published year (number)", "volume": "Paper volume (number)", "number": "Paper number (text)", "pages": "Paper pages (text)", "doi": "Paper DOI (text)" } ], "contributors": [ { "name": "Name of the contributor (text)", "orcid": "ORCID of the contributor (ORCID in the format xxxx-xxxx-xxxx-xxxx)", "email": "Email of the contributor (email)", "institution": "Institution of the contributor (text)" } ] } if __name__ == "__main__": print(toml.dumps(example_data))