Skip to content

feat: MPNN options: multistruct and json/option combo - #369

Open
roccomoretti wants to merge 4 commits into
RosettaCommons:productionfrom
roccomoretti:multi_input
Open

feat: MPNN options: multistruct and json/option combo#369
roccomoretti wants to merge 4 commits into
RosettaCommons:productionfrom
roccomoretti:multi_input

Conversation

@roccomoretti

Copy link
Copy Markdown
Member

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 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 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.

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.
@rclune
rclune requested a review from AndrewKubaney July 30, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant