feat: MPNN options: multistruct and json/option combo - #369
Open
roccomoretti wants to merge 4 commits into
Open
Conversation
For MPNN, add the ability to specify multiple input structures on the command line. --structure_path can now take multiple inputs (e.g. `--structure_path *.cif`) Additionally, add the ability to combine the --config_json setting with command line parameters. The philosophy is that --config_json can be set up with "standard" settings, and then command line parameters (most notably --structure_path) can then be used to launch multiple different runs from the same JSON file settings. Right now the settings in config.json take presidence, and the settings on the command line won't overwrite them. Command line parameters are only used for filling in values missing from config.json. (Not sure if this is the best approach, but it does mirror the current approch of ignoring the command line completely if --config_json is set.) For --structure_path, if multiple structures are provided, any block in the JSON `inputs` setting which does not set `structure_path` will be duplicated for each structure. (If no block is provided, a default block will be generated.) Additionally, to better harmonize JSON/command line usage, JSON-like settings of "true"/"false"/"null" with command line parameters are now treated like their Python "True"/"False"/"None" equivalents. Note that technically this could be considered a breaking change, as command lines with both --config_json and other parameters will not behave the same. (As would command line with the JSON-like values.) I don't think this is a big issue, as those command lines weren't really well-formed to start with.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For MPNN, add the ability to specify multiple input structures on the command line. --structure_path can now take multiple inputs (e.g.
--structure_path *.cif)Additionally, add the ability to combine the --config_json setting with command line parameters.
The philosophy is that --config_json can be set up with "standard" settings, and then command line parameters
(most notably --structure_path) can then be used to launch multiple different runs from the same JSON file settings.
Right now the settings in config.json take precedence, and the settings on the command line won't overwrite them. Command line parameters are only used for filling in values missing from config.json. (This mirrors the current approach of ignoring the command line completely if --config_json is set. It's probably not the best approach, and I'd probably advocate changing it if others are agreed.)
For --structure_path, if multiple structures are provided, any block in the JSON
inputssetting which does not setstructure_pathwill be duplicated for each structure. (If no block is provided, a default block will be generated.)Additionally, to better harmonize JSON/command line usage, JSON-like settings of "true"/"false"/"null" with command line parameters are now treated like their Python "True"/"False"/"None" equivalents.
Note that technically this could be considered a breaking change, as command lines with both --config_json and other parameters will not behave the same. (As would any command line with the JSON-like values.) I don't think this is a big issue, as those command lines weren't really well-formed to start with.