Submissions to DrugMechDB have now been converted to a new Github Actions system which allows for automated integration of pull requests.
The first thing that is required to use the new submission system is the enabling of Github Actions for your account. You can do so by clicking the 'Actions' tab and choosing to enable Github Actions.
Keeping your fork up to date before submitting new paths is critical to ensuring that merge conflicts are minimized. For this reason, we have implemented an action that automatically checks for updates and creates pull requests to your account when they are found. You can also trigger this manually to get the latest updates before making a Pull Request.
This will bring you to the Github Actions page for this repository.
After clicking run workflow
, a confirmation box will come up, click to confirm.
The workflow will appear with yellow coloring to signal that it is currently running.
If differences are found, a new pull request will appear in the pull requests tab
Merge the new pull request to receive the changes.
Please use the issue template for claiming a group to claim a group of indications so that other curators do not work on the same indications.
The .zip
file containing the full set of grouped indications can be downloaded here.
Before claiming, please ensure that the group you wish to claim has not been previously claimed or completed. You can do this through searching the issues as shown in the image below.
The following steps outline the claiming process
Feel free to replace the boilerplate text that appears in the template.
New paths are to be submitted with the submission.yaml
file. However, as this file will be constantly reset to
empty after every submission, it is highly recommended that you work in a separate file locally
while curating and only commit to this file once all changes are finished and ready to be submitted as a Pull Request.
The following guide will walk you through the steps for submitting new paths.
Be sure and add a descriptive commit message.
Again, please provide a description. If this submission corresponds to indications linked in one of the issues, please provide either the issue number or the group number in the PR title.
This workflow will test the file and integrate changes.
Yellow text indicates the workflow is running.
Green Check mark means that the workflow is complete and successful. If this happens you don't need to do anything else.
If there are errors in the submission file, the workflow will fail. Errors need to be corrected an the submission file should be re-submitted with a new Pull Request.
To determine why the check failed, click on the Details button on the right. This will bring up Various Error Messages
In this example, we see that one of our edge identifiers in the 'target_id'
position for the path
cortisone acetate - Keratitis
is not present in the listed nodes.
Here we have another error, this time the compiler cannot read the submission.yaml
file. It describes what line
number is causing an error.
When we check the file, we see that the line has an identifier with an extra space within it, preventing the YAML parser from correctly reading the file.
Similar to submission, updates to existing paths are made via the submission.yaml
file. As this
submission.yaml
file will be constantly reset to empty after every submission, it is highly recommended that you work in a
separate file locally while curating and copy or rename this file to submission.yaml
when ready to commit
changes and submit a Pull Request.
To perform an update, the Path ID
must be included in the submission.yaml
file for hte path that is to be updated.
The value of a Path ID
is automatically generated with the submission of each new path, and can be found on the path's
webpage.
The identifier for the path should be included as an _id
field under the graph
field in the submission. See the (truncated)
example below of the path pictured above for the precise location of the _id
field.
- directed: true
graph:
_id: DB00704_MESH_D000437_1
disease: Alcoholism
disease_mesh: MESH:D000437
drug: Naltrexone
drug_mesh: MESH:D009270
drugbank: DB:DB00704
links:
- key: decreases activity of
source: MESH:D009270
target: UniProt:P41145
- key: molecularly interacts with
source: UniProt:P41145
target: UniProt:P01213
- key: positively correlated with
source: UniProt:P01213
target: HP:0030858
...
The update process is similar to the submission process, performing the same validation checks and producing the same error when a problem. If unfamiliar with this process, please see the detailed section above.
Updates may be performed as a batch (multiple updates simultaneously) however, they may not be performed at the same time as submission of new paths. Those must be included in a separate Pull Request. Adding new paths at the same time as updating existing paths will produce an error.
Deletion of paths is handled through the deprecation of identifiers. To delete a path,
first find the Path ID
(see Path Identifier) then submit a pull request
to utils/deprecated_ids.txt
with the identifers you wish to deprecate added to the
end of the file one identifier per line. Please do not delete any identifies from this file.
After accepting the merge, this path will be removed from the database and the website, and this identifier
will be skipped on subsequent paths for a given indication (e.g. if DB00704_MESH_D000437_1
becomes
deprecated, then a new paths is submitted for DB:DB00704
, MESH:D000437
, the new path will be given the next available identifier DB00704_MESH_D000437_2
).