gitextract_wx9d1k3u/ ├── .dockerignore ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── CONTRIBUTING.md │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── release_template.md │ ├── pull_request_template.md │ └── workflows/ │ ├── aws-cpu-long-tests.yaml │ ├── aws-gpu-integration-tests.yaml │ ├── ci.yaml │ ├── clean-pr-caches.yaml │ ├── cron-conda.yaml │ ├── cron-docker.yaml │ ├── cron-feedstock-build-tests.yaml │ ├── cron-package-test.yaml │ ├── griffe-api-break.yaml │ ├── mypy.yaml │ ├── release-docker-image.yaml │ ├── release-installers.yaml │ ├── release-make-condalock.yaml │ ├── release-prep-examplenotebooks.yaml │ └── release-prep-feedstock.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── CITATION.cff ├── Code_of_Conduct.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── codecov.yml ├── devtools/ │ ├── data/ │ │ ├── fix_rbfe_results.py │ │ └── gen_serialized_results.py │ ├── debug_openmm.sh │ └── installer/ │ └── construct.yaml ├── docs/ │ ├── CHANGELOG.rst │ ├── Makefile │ ├── _ext/ │ │ └── sass.py │ ├── _sass/ │ │ └── deflist-flowchart.scss │ ├── _templates/ │ │ └── autosummary/ │ │ ├── base.rst │ │ └── class.rst │ ├── conf.py │ ├── cookbook/ │ │ ├── bespoke_parameters.nblink │ │ ├── choose_protocol.nblink │ │ ├── create_alchemical_network.nblink │ │ ├── dumping_transformation.rst │ │ ├── generate_ligand_network.nblink │ │ ├── hand_write_ligand_network.nblink │ │ ├── index.rst │ │ ├── jq_inspection.rst │ │ ├── ligandnetwork_vis.nblink │ │ ├── loading_molecules.nblink │ │ ├── network_from_orion_fepp.nblink │ │ ├── rfe_alchemical_planners.nblink │ │ └── user_charges.nblink │ ├── environment.yaml │ ├── guide/ │ │ ├── cli/ │ │ │ ├── cli_basics.rst │ │ │ ├── cli_yaml.rst │ │ │ └── index.rst │ │ ├── execution/ │ │ │ ├── execution_theory.rst │ │ │ ├── index.rst │ │ │ └── quickrun_execution.rst │ │ ├── index.rst │ │ ├── introduction.rst │ │ ├── protocols/ │ │ │ ├── absolutebinding.rst │ │ │ ├── absolutesolvation.rst │ │ │ ├── index.rst │ │ │ ├── plainmd.rst │ │ │ ├── relativehybridtopology.rst │ │ │ └── septop.rst │ │ ├── results/ │ │ │ ├── index.rst │ │ │ ├── working_with_networks.rst │ │ │ └── working_with_results.rst │ │ ├── setup/ │ │ │ ├── alchemical_network_model.rst │ │ │ ├── chemical_systems_and_thermodynamic_cycles.rst │ │ │ ├── creating_atom_mappings_and_scores.rst │ │ │ ├── creating_ligand_networks.rst │ │ │ ├── defining_protocols.rst │ │ │ └── index.rst │ │ ├── troubleshooting.rst │ │ └── under_the_hood.rst │ ├── index.rst │ ├── installation.rst │ ├── make.bat │ ├── reference/ │ │ ├── api/ │ │ │ ├── alchemical_network_planning.rst │ │ │ ├── atom_mappers.rst │ │ │ ├── defining_and_executing_simulations.rst │ │ │ ├── index.rst │ │ │ ├── ligand_network.rst │ │ │ ├── openmm_binding_afe.rst │ │ │ ├── openmm_md.rst │ │ │ ├── openmm_protocol_settings.rst │ │ │ ├── openmm_rfe.rst │ │ │ ├── openmm_septop.rst │ │ │ ├── openmm_solvation_afe.rst │ │ │ └── systems_and_components.rst │ │ ├── cli/ │ │ │ ├── charge_molecules.rst │ │ │ ├── gather.rst │ │ │ ├── index.rst │ │ │ ├── plan_rbfe_network.rst │ │ │ ├── plan_rhfe_network.rst │ │ │ └── quickrun.rst │ │ └── index.rst │ └── tutorials/ │ ├── .gitignore │ ├── abfe_analysis_tutorial.nblink │ ├── abfe_tutorial.nblink │ ├── ahfe_tutorial.nblink │ ├── charge_molecules_cli_tutorial.rst │ ├── index.rst │ ├── md_tutorial.nblink │ ├── plotting_with_cinnabar.nblink │ ├── rbfe_cli_tutorial.rst │ ├── rbfe_membrane_protein.nblink │ ├── rbfe_python_tutorial.nblink │ ├── septop_analysis_tutorial.nblink │ ├── septop_tutorial.nblink │ └── showcase_notebook.nblink ├── environment.yml ├── news/ │ └── TEMPLATE.rst ├── production/ │ ├── Dockerfile │ └── environment.yml ├── pyproject.toml ├── rever.xsh └── src/ ├── openfe/ │ ├── __init__.py │ ├── analysis/ │ │ ├── __init__.py │ │ └── plotting.py │ ├── data/ │ │ ├── __init__.py │ │ ├── _downloader.py │ │ └── _registry.py │ ├── due.py │ ├── orchestration/ │ │ └── __init__.py │ ├── protocols/ │ │ ├── __init__.py │ │ ├── openmm_afe/ │ │ │ ├── __init__.py │ │ │ ├── abfe_units.py │ │ │ ├── afe_protocol_results.py │ │ │ ├── ahfe_units.py │ │ │ ├── base_afe_units.py │ │ │ ├── equil_afe_settings.py │ │ │ ├── equil_binding_afe_method.py │ │ │ └── equil_solvation_afe_method.py │ │ ├── openmm_md/ │ │ │ ├── __init__.py │ │ │ ├── plain_md_methods.py │ │ │ └── plain_md_settings.py │ │ ├── openmm_rfe/ │ │ │ ├── __init__.py │ │ │ ├── _rfe_utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── lambdaprotocol.py │ │ │ │ ├── multistate.py │ │ │ │ ├── relative.py │ │ │ │ └── topologyhelpers.py │ │ │ ├── equil_rfe_methods.py │ │ │ ├── equil_rfe_settings.py │ │ │ ├── hybridtop_protocol_results.py │ │ │ ├── hybridtop_protocols.py │ │ │ └── hybridtop_units.py │ │ ├── openmm_septop/ │ │ │ ├── __init__.py │ │ │ ├── base_units.py │ │ │ ├── equil_septop_method.py │ │ │ ├── equil_septop_settings.py │ │ │ ├── septop_protocol_results.py │ │ │ ├── septop_units.py │ │ │ └── utils.py │ │ ├── openmm_utils/ │ │ │ ├── __init__.py │ │ │ ├── charge_generation.py │ │ │ ├── mdtraj_utils.py │ │ │ ├── multistate_analysis.py │ │ │ ├── omm_compute.py │ │ │ ├── omm_settings.py │ │ │ ├── serialization.py │ │ │ ├── settings_validation.py │ │ │ ├── system_creation.py │ │ │ └── system_validation.py │ │ └── restraint_utils/ │ │ ├── __init__.py │ │ ├── geometry/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── boresch/ │ │ │ │ ├── __init__.py │ │ │ │ ├── geometry.py │ │ │ │ ├── guest.py │ │ │ │ └── host.py │ │ │ ├── flatbottom.py │ │ │ ├── harmonic.py │ │ │ └── utils.py │ │ ├── openmm/ │ │ │ ├── __init__.py │ │ │ ├── omm_forces.py │ │ │ └── omm_restraints.py │ │ └── settings.py │ ├── setup/ │ │ ├── __init__.py │ │ ├── alchemical_network_planner/ │ │ │ ├── __init__.py │ │ │ ├── abstract_alchemical_network_planner.py │ │ │ └── relative_alchemical_network_planner.py │ │ ├── atom_mapping/ │ │ │ ├── __init__.py │ │ │ ├── ligandatommapper.py │ │ │ ├── lomap_mapper.py │ │ │ ├── lomap_scorers.py │ │ │ ├── perses_mapper.py │ │ │ └── perses_scorers.py │ │ ├── chemicalsystem_generator/ │ │ │ ├── __init__.py │ │ │ ├── abstract_chemicalsystem_generator.py │ │ │ └── easy_chemicalsystem_generator.py │ │ └── ligand_network_planning.py │ ├── storage/ │ │ ├── __init__.py │ │ ├── metadatastore.py │ │ ├── resultclient.py │ │ └── resultserver.py │ ├── tests/ │ │ ├── __init__.py │ │ ├── analysis/ │ │ │ ├── __init__.py │ │ │ └── test_plotting.py │ │ ├── conftest.py │ │ ├── data/ │ │ │ ├── 181l_only.pdb │ │ │ ├── CN.sdf │ │ │ ├── __init__.py │ │ │ ├── a2a/ │ │ │ │ └── __init__.py │ │ │ ├── benzene_modifications.sdf │ │ │ ├── cdk8/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cdk8_ligands.sdf │ │ │ │ └── cdk8_protein.pdb │ │ │ ├── eg5/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eg5_cofactor.sdf │ │ │ │ ├── eg5_ligands.sdf │ │ │ │ └── eg5_protein.pdb │ │ │ ├── external_formats/ │ │ │ │ ├── __init__.py │ │ │ │ └── somebenzenes_edges.edge │ │ │ ├── htf/ │ │ │ │ ├── __init__.py │ │ │ │ ├── chloroethane.sdf │ │ │ │ ├── ethane.sdf │ │ │ │ ├── fluoroethane.sdf │ │ │ │ └── t4_lysozyme_data/ │ │ │ │ ├── benzene.sdf │ │ │ │ ├── chlorobenzene.sdf │ │ │ │ └── fluorobenzene.sdf │ │ │ ├── lomap_basic/ │ │ │ │ ├── 1,3,7-trimethylnaphthalene.mol2 │ │ │ │ ├── 1-butyl-4-methylbenzene.mol2 │ │ │ │ ├── 2,6-dimethylnaphthalene.mol2 │ │ │ │ ├── 2-methyl-6-propylnaphthalene.mol2 │ │ │ │ ├── 2-methylnaphthalene.mol2 │ │ │ │ ├── 2-naftanol.mol2 │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── methylcyclohexane.mol2 │ │ │ │ └── toluene.mol2 │ │ │ ├── multi_molecule.sdf │ │ │ ├── openmm_afe/ │ │ │ │ ├── T4_abfe_system.xml.bz2 │ │ │ │ └── __init__.py │ │ │ ├── openmm_md/ │ │ │ │ └── __init__.py │ │ │ ├── openmm_rfe/ │ │ │ │ ├── __init__.py │ │ │ │ ├── benzene_toluene_hybrid_top/ │ │ │ │ │ ├── hybrid_topology_atoms.csv │ │ │ │ │ └── hybrid_topology_bonds.txt │ │ │ │ ├── charged_benzenes.sdf │ │ │ │ ├── dummy_charge_ligand_23.sdf │ │ │ │ ├── dummy_charge_ligand_55.sdf │ │ │ │ ├── ligand_23.sdf │ │ │ │ ├── ligand_55.sdf │ │ │ │ ├── malt1_shapefit_1832577-09-9.sdf │ │ │ │ ├── malt1_shapefit_Pfizer-01-01.sdf │ │ │ │ ├── reference.xml │ │ │ │ ├── vacuum_nocoord.nc │ │ │ │ └── vacuum_nocoord_checkpoint.nc │ │ │ ├── openmm_septop/ │ │ │ │ ├── __init__.py │ │ │ │ └── system.xml.bz2 │ │ │ └── serialization/ │ │ │ ├── __init__.py │ │ │ ├── ethane_template.sdf │ │ │ └── network_template.graphml │ │ ├── dev/ │ │ │ ├── __init__.py │ │ │ └── serialization_test_templates.py │ │ ├── protocols/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── openmm_abfe/ │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_abfe_energies.py │ │ │ │ ├── test_abfe_protocol.py │ │ │ │ ├── test_abfe_protocol_results.py │ │ │ │ ├── test_abfe_settings.py │ │ │ │ ├── test_abfe_slow.py │ │ │ │ ├── test_abfe_tokenization.py │ │ │ │ ├── test_abfe_validation.py │ │ │ │ └── utils.py │ │ │ ├── openmm_ahfe/ │ │ │ │ ├── __init__.py │ │ │ │ ├── test_ahfe_protocol.py │ │ │ │ ├── test_ahfe_protocol_results.py │ │ │ │ ├── test_ahfe_resume.py │ │ │ │ ├── test_ahfe_settings.py │ │ │ │ ├── test_ahfe_slow.py │ │ │ │ ├── test_ahfe_tokenization.py │ │ │ │ ├── test_ahfe_validation.py │ │ │ │ └── utils.py │ │ │ ├── openmm_md/ │ │ │ │ ├── __init__.py │ │ │ │ ├── test_plain_md_protocol.py │ │ │ │ ├── test_plain_md_resume.py │ │ │ │ ├── test_plain_md_slow.py │ │ │ │ └── test_plain_md_tokenization.py │ │ │ ├── openmm_rfe/ │ │ │ │ ├── __init__.py │ │ │ │ ├── helpers.py │ │ │ │ ├── test_hybrid_factory.py │ │ │ │ ├── test_hybrid_top_protocol.py │ │ │ │ ├── test_hybrid_top_resume.py │ │ │ │ ├── test_hybrid_top_slow.py │ │ │ │ ├── test_hybrid_top_tokenization.py │ │ │ │ └── test_hybrid_top_validation.py │ │ │ ├── openmm_septop/ │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_septop_protocol.py │ │ │ │ ├── test_septop_protocol_results.py │ │ │ │ ├── test_septop_resume.py │ │ │ │ ├── test_septop_settings.py │ │ │ │ ├── test_septop_slow.py │ │ │ │ ├── test_septop_tokenization.py │ │ │ │ ├── test_septop_validation.py │ │ │ │ └── utils.py │ │ │ ├── restraints/ │ │ │ │ ├── __init__.py │ │ │ │ ├── test_geometry_base.py │ │ │ │ ├── test_geometry_boresch.py │ │ │ │ ├── test_geometry_boresch_guest.py │ │ │ │ ├── test_geometry_boresch_host.py │ │ │ │ ├── test_geometry_flatbottom.py │ │ │ │ ├── test_geometry_harmonic.py │ │ │ │ ├── test_geometry_utils.py │ │ │ │ ├── test_omm_restraints.py │ │ │ │ ├── test_openmm_forces.py │ │ │ │ └── test_settings.py │ │ │ ├── test_openmm_settings.py │ │ │ ├── test_openmmutils.py │ │ │ └── test_openmmutils_serialization.py │ │ ├── setup/ │ │ │ ├── __init__.py │ │ │ ├── alchemical_network_planner/ │ │ │ │ ├── __init__.py │ │ │ │ ├── edge_types.py │ │ │ │ └── test_relative_alchemical_network_planner.py │ │ │ ├── atom_mapping/ │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_atommapper.py │ │ │ │ ├── test_lomap_atommapper.py │ │ │ │ ├── test_lomap_scorers.py │ │ │ │ ├── test_perses_atommapper.py │ │ │ │ └── test_perses_scorers.py │ │ │ ├── chemicalsystem_generator/ │ │ │ │ ├── __init__.py │ │ │ │ ├── component_checks.py │ │ │ │ └── test_easy_chemicalsystem_generator.py │ │ │ └── test_network_planning.py │ │ ├── storage/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_metadatastore.py │ │ │ ├── test_resultclient.py │ │ │ └── test_resultserver.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_atommapping_network_plotting.py │ │ ├── test_duecredit.py │ │ ├── test_log_control.py │ │ ├── test_network_plotting.py │ │ ├── test_optional_imports.py │ │ ├── test_remove_oechem.py │ │ ├── test_system_probe.py │ │ └── test_visualization_3D.py │ └── utils/ │ ├── __init__.py │ ├── atommapping_network_plotting.py │ ├── custom_typing.py │ ├── ligand_utils.py │ ├── logging_control.py │ ├── network_plotting.py │ ├── optional_imports.py │ ├── remove_oechem.py │ ├── silence_root_logging.py │ ├── system_probe.py │ └── visualization_3D.py └── openfecli/ ├── README.md ├── __init__.py ├── cli.py ├── clicktypes/ │ ├── __init__.py │ └── hyphenchoice.py ├── commands/ │ ├── __init__.py │ ├── atommapping.py │ ├── fetch.py │ ├── gather.py │ ├── gather_abfe.py │ ├── gather_septop.py │ ├── generate_partial_charges.py │ ├── plan_rbfe_network.py │ ├── plan_rhfe_network.py │ ├── quickrun.py │ ├── test.py │ └── view_ligand_network.py ├── data/ │ ├── __init__.py │ └── _registry.py ├── fetchables.py ├── fetching.py ├── parameters/ │ ├── __init__.py │ ├── mapper.py │ ├── misc.py │ ├── mol.py │ ├── molecules.py │ ├── output.py │ ├── output_dir.py │ ├── plan_network_options.py │ ├── protein.py │ └── utils.py ├── plan_alchemical_networks_utils.py ├── plugins.py ├── tests/ │ ├── __init__.py │ ├── clicktypes/ │ │ └── test_hyphenchoice.py │ ├── commands/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_atommapping.py │ │ ├── test_charge_generation.py │ │ ├── test_gather/ │ │ │ ├── test_abfe_full_results_multiple_units_dg_.tsv │ │ │ ├── test_abfe_full_results_multiple_units_raw_.tsv │ │ │ ├── test_abfe_full_results_single_unit_dg_.tsv │ │ │ ├── test_abfe_full_results_single_unit_raw_.tsv │ │ │ ├── test_abfe_single_repeat_multiple_units_dg_.tsv │ │ │ ├── test_abfe_single_repeat_multiple_units_raw_.tsv │ │ │ ├── test_abfe_single_repeat_single_unit_dg_.tsv │ │ │ ├── test_abfe_single_repeat_single_unit_raw_.tsv │ │ │ ├── test_cmet_failed_edge_ddg_.tsv │ │ │ ├── test_cmet_failed_edge_raw_.tsv │ │ │ ├── test_cmet_full_results_ddg_.tsv │ │ │ ├── test_cmet_full_results_dg_.tsv │ │ │ ├── test_cmet_full_results_raw_.tsv │ │ │ ├── test_cmet_missing_all_complex_legs_allow_partial_ddg_.tsv │ │ │ ├── test_cmet_missing_all_complex_legs_fail_ddg_.tsv │ │ │ ├── test_cmet_missing_all_complex_legs_fail_dg_.tsv │ │ │ ├── test_cmet_missing_complex_leg_ddg_.tsv │ │ │ ├── test_cmet_missing_complex_leg_dg_.tsv │ │ │ ├── test_cmet_missing_complex_leg_raw_.tsv │ │ │ ├── test_cmet_missing_edge_ddg_.tsv │ │ │ ├── test_cmet_missing_edge_dg_.tsv │ │ │ ├── test_cmet_missing_edge_raw_.tsv │ │ │ ├── test_septop_full_results_ddg_current_.tsv │ │ │ ├── test_septop_full_results_ddg_pre_openfe_v1_11_.tsv │ │ │ ├── test_septop_full_results_dg_current_.tsv │ │ │ ├── test_septop_full_results_dg_pre_openfe_v1_11_.tsv │ │ │ ├── test_septop_full_results_raw_current_.tsv │ │ │ ├── test_septop_full_results_raw_pre_openfe_v1_11_.tsv │ │ │ ├── test_septop_single_repeat_ddg_current_.tsv │ │ │ ├── test_septop_single_repeat_ddg_pre_openfe_v1_11_.tsv │ │ │ ├── test_septop_single_repeat_dg_current_.tsv │ │ │ ├── test_septop_single_repeat_dg_pre_openfe_v1_11_.tsv │ │ │ ├── test_septop_single_repeat_raw_current_.tsv │ │ │ └── test_septop_single_repeat_raw_pre_openfe_v1_11_.tsv │ │ ├── test_gather.py │ │ ├── test_ligand_network_viewer.py │ │ ├── test_plan_rbfe_network.py │ │ ├── test_plan_rhfe_network.py │ │ ├── test_quickrun.py │ │ └── test_test.py │ ├── conftest.py │ ├── data/ │ │ ├── __init__.py │ │ ├── bad_transformation.json │ │ ├── rbfe_tutorial/ │ │ │ ├── __init__.py │ │ │ ├── tyk2_ligands.sdf │ │ │ └── tyk2_protein.pdb │ │ └── transformation.json │ ├── dev/ │ │ ├── __init__.py │ │ └── write_transformation_json.py │ ├── parameters/ │ │ ├── __init__.py │ │ ├── test_mapper.py │ │ ├── test_mol.py │ │ ├── test_molecules.py │ │ ├── test_output.py │ │ ├── test_output_dir.py │ │ ├── test_plan_network_options.py │ │ ├── test_protein.py │ │ └── test_utils.py │ ├── test_cli.py │ ├── test_fetchables.py │ ├── test_fetching.py │ ├── test_plugins.py │ ├── test_rbfe_tutorial.py │ ├── test_utils.py │ └── utils.py └── utils.py