├── .bumpversion.cfg ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── question.md ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── ci.yml │ ├── docker-publish.yml │ ├── github-to-gitlab-push-sync.yml │ ├── pages.yml │ ├── publish.yml │ └── validate_citation.yml ├── .gitignore ├── .howfairis.yml ├── .readthedocs.yml ├── CHANGELOG.md ├── CITATION.cff ├── CITING.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DEVELOPMENT.md ├── DISCLAIMER.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── devtools ├── build_defaults_rst.py └── docs-requirements.txt ├── docs ├── CNS.md ├── INSTALL.md ├── USAGE.md ├── citing.rst ├── conf.py ├── contributing.rst ├── examples.md ├── figs │ ├── HADDOCK2-stages.png │ ├── HADDOCK3-logo.png │ └── HADDOCK3-workflow-scheme.png ├── index.rst ├── intro.md ├── modules │ └── index.rst ├── reference │ └── index.rst ├── testing │ ├── index.rst │ └── integration_tests.md └── tutorials │ ├── continuing_runs.md │ ├── index.rst │ ├── mpi.md │ └── user_config.rst ├── entrypoint.sh ├── examples ├── .__future__.docking-protein-surface │ ├── data │ │ ├── 01_beads.pdb │ │ ├── 01_z.tbl │ │ ├── 02_beads.pdb │ │ ├── 02_beads_smallspacing.pdb │ │ ├── 02_z.tbl │ │ ├── 02_z_smallspacing.tbl │ │ ├── 03_beads.pdb │ │ ├── 03_z.tbl │ │ └── protein.pdb │ ├── docking-between-two-surfaces-smallspacing.cfg │ ├── docking-between-two-surfaces.cfg │ ├── docking-one-surface.cfg │ ├── docking-three-surfaces.cfg │ └── gen_beads.sh ├── README.md ├── analysis │ ├── alascan-complex-test.cfg │ ├── alascan-test.cfg │ ├── contmap-test.cfg │ ├── data │ │ ├── ensemble_4G6M.pdb │ │ └── target.pdb │ ├── plot-finetune-clustfcc.cfg │ ├── plot-finetune-ilrmsdmatrix-clustrmsd.cfg │ ├── seletopclusts.cfg │ ├── topoaa-caprieval-test.cfg │ ├── topoaa-clustfcc-test.cfg │ └── topoaa-ilrmsdmatrix-clustrmsd-test.cfg ├── compare_runs.py ├── data │ ├── 1a2k_l_u.pdb │ ├── 1a2k_r_u.pdb │ ├── 1a2k_ti.tbl │ └── 2oob.pdb ├── docking-antibody-antigen │ ├── data │ │ ├── 4G6K_fv.pdb │ │ ├── 4G6M-matched.pdb │ │ ├── 4I1B-matched.pdb │ │ ├── ambig-CDR-NMR-CSP.tbl │ │ ├── ambig.tbl │ │ └── unambig.tbl │ ├── docking-antibody-antigen-CDR-NMR-CSP-full.cfg │ ├── docking-antibody-antigen-CDR-NMR-CSP-test.cfg │ ├── docking-antibody-antigen-CDR-accessible-clt-full-mpi.cfg │ ├── docking-antibody-antigen-CDR-accessible-clt-full.cfg │ ├── docking-antibody-antigen-CDR-accessible-clt-test.cfg │ ├── docking-antibody-antigen-CDR-accessible-full-mpi.cfg │ ├── docking-antibody-antigen-CDR-accessible-full-mpi.job │ ├── docking-antibody-antigen-CDR-accessible-full.cfg │ ├── docking-antibody-antigen-CDR-accessible-test.cfg │ ├── docking-antibody-antigen-ranairCDR-clt-full-mpi.cfg │ ├── docking-antibody-antigen-ranairCDR-clt-full-mpi.job │ ├── docking-antibody-antigen-ranairCDR-clt-full.cfg │ ├── docking-antibody-antigen-ranairCDR-clt-test.cfg │ ├── docking-antibody-antigen-ranairCDR-full-mpi.cfg │ ├── docking-antibody-antigen-ranairCDR-full-mpi.job │ ├── docking-antibody-antigen-ranairCDR-full.cfg │ └── docking-antibody-antigen-ranairCDR-test.cfg ├── docking-multiple-ambig │ ├── data │ │ ├── 2gaf_target.pdb │ │ ├── P07617-1vpt.pdb │ │ ├── P23371-3owg.pdb │ │ ├── ambig.tbl.tgz │ │ └── unambig.tbl │ ├── docking-multiple-tbls-clt-full.cfg │ └── docking-multiple-tbls-test.cfg ├── docking-nanobody-antigen │ ├── README.md │ ├── data │ │ ├── 7tgfB-nb_ens.pdb │ │ ├── 7tgfB_loose_ambig.tbl │ │ ├── 7tgfB_mix.tbl.tgz │ │ ├── 7tgfB_mix_0.tbl │ │ ├── 7tgfB_mix_1.tbl │ │ ├── 7tgfB_real_ambig.tbl │ │ ├── 7tgfB_ref.pdb │ │ ├── 7tgfB_twohit_ambig.tbl │ │ └── 7y07_l_u.pdb │ ├── docking-nanobody-antigen-CDR-loose-epi-full.cfg │ ├── docking-nanobody-antigen-CDR-loose-epi-test.cfg │ ├── docking-nanobody-antigen-CDR-mutagenesis-epi-full.cfg │ ├── docking-nanobody-antigen-CDR-mutagenesis-epi-test.cfg │ ├── docking-nanobody-antigen-Para-Epi-full.cfg │ ├── docking-nanobody-antigen-Para-Epi-test.cfg │ ├── docking-nanobody-antigen-mix-loose-epi-full.cfg │ └── docking-nanobody-antigen-mix-loose-epi-test.cfg ├── docking-protein-DNA │ ├── data │ │ ├── cro.pdb │ │ ├── cro_air.tbl │ │ ├── dna.pdb │ │ └── target.pdb │ ├── docking-protein-DNA-cltsel-full.cfg │ ├── docking-protein-DNA-cmrest-test.cfg │ ├── docking-protein-DNA-full.cfg │ ├── docking-protein-DNA-mdref-full.cfg │ ├── docking-protein-DNA-mdref-test.cfg │ └── docking-protein-DNA-test.cfg ├── docking-protein-glycan │ ├── data │ │ ├── 1LMQ_l_u.pdb │ │ ├── 1LMQ_r_u.pdb │ │ ├── ambig.tbl │ │ └── target.pdb │ ├── docking-flexref-protein-glycan-full.cfg │ ├── docking-flexref-protein-glycan-test.cfg │ ├── docking-protein-glycan-full.cfg │ ├── docking-protein-glycan-ilrmsd-full.cfg │ ├── docking-protein-glycan-ilrmsd-test.cfg │ └── docking-protein-glycan-test.cfg ├── docking-protein-homotrimer │ ├── data │ │ ├── 1qu9_A.pdb │ │ ├── 1qu9_ABC.pdb │ │ ├── 1qu9_B.pdb │ │ ├── 1qu9_C.pdb │ │ └── 1qu9_whiscy_air.tbl │ ├── docking-protein-homotrimer-full.cfg │ └── docking-protein-homotrimer-test.cfg ├── docking-protein-ligand-shape │ ├── data │ │ ├── 3DV1-fit-prot.pdb │ │ ├── ligand-ensemble.pdb │ │ ├── ligand.param │ │ ├── ligand.top │ │ ├── shape-restraints-from-shape-1.tbl │ │ ├── shape.pdb │ │ └── target.pdb │ ├── docking-protein-ligand-shape-full.cfg │ └── docking-protein-ligand-shape-test.cfg ├── docking-protein-ligand │ ├── data │ │ ├── ambig-active-rigidbody.tbl │ │ ├── ambig-passive.tbl │ │ ├── ligand-acpype.param │ │ ├── ligand-acpype.top │ │ ├── ligand-prodrg.param │ │ ├── ligand-prodrg.top │ │ ├── neuraminidase-2BAT.pdb │ │ ├── oseltamivir_zwitterion.pdb │ │ └── target.pdb │ ├── docking-protein-ligand-full.cfg │ └── docking-protein-ligand-test.cfg ├── docking-protein-peptide │ ├── data │ │ ├── 1NX1_protein.pdb │ │ ├── 1nx1_refe.pdb │ │ ├── DAIDALSSDFT_3conformations.pdb │ │ ├── DAIDALSSDFT_alpha.pdb │ │ ├── DAIDALSSDFT_ext.pdb │ │ ├── DAIDALSSDFT_polyII.pdb │ │ └── ambig.tbl │ ├── docking-protein-peptide-cltsel-full.cfg │ ├── docking-protein-peptide-full.cfg │ ├── docking-protein-peptide-mdref-full.cfg │ ├── docking-protein-peptide-mdref-test.cfg │ └── docking-protein-peptide-test.cfg ├── docking-protein-protein │ ├── data │ │ ├── e2a-hpr_1GGR.pdb │ │ ├── e2a-hpr_air.tbl │ │ ├── e2aP_1F3G.pdb │ │ └── hpr_ensemble.pdb │ ├── docking-exit-test.cfg │ ├── docking-extend-run-exit-test.cfg │ ├── docking-extend-run-test.cfg │ ├── docking-protein-protein-cltsel-full.cfg │ ├── docking-protein-protein-cltsel-test.cfg │ ├── docking-protein-protein-full.cfg │ ├── docking-protein-protein-hpc-test.cfg │ ├── docking-protein-protein-mdref-full.cfg │ ├── docking-protein-protein-mdref-test.cfg │ ├── docking-protein-protein-mpi.cfg │ ├── docking-protein-protein-mpi.job │ ├── docking-protein-protein-test.cfg │ └── docking-restart-exit-test.cfg ├── docking-protein-surface │ ├── data │ │ ├── one_z_surface_selection.tbl │ │ ├── one_z_surface_selection_beads.pdb │ │ ├── protein.pdb │ │ ├── protein_z_restraints.tbl │ │ ├── protein_z_restraints_beads.pdb │ │ ├── protein_z_restraints_smallspacing.tbl │ │ ├── protein_z_restraints_smallspacing_beads.pdb │ │ ├── three_z_restraints.tbl │ │ └── three_z_restraints_beads.pdb │ ├── docking-between-two-surfaces-smallspacing.cfg │ ├── docking-between-two-surfaces.cfg │ ├── docking-one-surface.cfg │ ├── docking-three-surfaces.cfg │ └── gen_beads.sh ├── peptide-cyclisation │ ├── README.md │ ├── cyclise-peptide-3wne-full.cfg │ ├── cyclise-peptide-full.cfg │ ├── cyclise-peptide-test.cfg │ └── data │ │ ├── 1sfi_peptide-bound.pdb │ │ ├── 1sfi_peptide-ensemble.pdb │ │ ├── 1sfi_unambig.tbl │ │ ├── 3wne_peptide-bound.pdb │ │ ├── 3wne_peptide-ensemble.pdb │ │ └── 3wne_unambig.tbl ├── refine-complex │ ├── data │ │ ├── e2a-hpr_1GGR.pdb │ │ ├── e2a-hpr_1GGR_A.pdb │ │ └── e2a-hpr_1GGR_B.pdb │ └── refine-complex-test.cfg ├── run_examples-full.py ├── run_tests.py ├── scoring │ ├── capri-scoring-test.cfg │ ├── data │ │ ├── 4g6m_nowater.pdb │ │ ├── AF2-model.pdb │ │ ├── HY3.pdb │ │ ├── T161-rescoring-ens.pdb │ │ ├── ligand-prodrg.param │ │ ├── ligand-prodrg.top │ │ ├── prot-lig.pdb │ │ ├── prot-prot.pdb │ │ ├── protein-dna_1w.pdb │ │ ├── protein-protein_1w.pdb │ │ ├── protein-protein_2w.pdb │ │ └── protein-trimer_1w.pdb │ ├── emscoring-mdscoring-test.cfg │ ├── emscoring-test.cfg │ ├── mdscoring-test.cfg │ ├── prodigy-antibody-antigen-test.cfg │ ├── prodigy-protein-ligand-test.cfg │ ├── prodigy-protein-protein-test.cfg │ └── sasascore-test.cfg └── thirdparty │ ├── gdock │ ├── data │ │ ├── e2a-hpr_1GGR.pdb │ │ ├── e2a-hpr_air.tbl │ │ ├── e2aP_1F3G.pdb │ │ └── hpr_ensemble_1.pdb │ └── gdock-integration.cfg │ ├── lightdock │ └── lightdock.cfg │ └── openmm │ ├── data │ ├── 1NX1_protein.pdb │ ├── 1nx1_refe.pdb │ ├── DAIDALSSDFT_3conformations.pdb │ ├── DAIDALSSDFT_alpha.pdb │ ├── DAIDALSSDFT_ext.pdb │ ├── DAIDALSSDFT_polyII.pdb │ └── ambig.tbl │ ├── openmm-complex-refinement.cfg │ ├── openmm-implicit-solvent-test.cfg │ ├── openmm-test.cfg │ └── openmm-topoaa-flexref-test.cfg ├── integration_tests ├── __init__.py ├── conftest.py ├── golden_data │ ├── 2oob.pdb │ ├── 2oob_A.pdb │ ├── 2oob_A.psf │ ├── 2oob_B.pdb │ ├── 2oob_B.psf │ ├── ambig.tbl │ ├── contactmap_rigidbody_3_cltid_None.pdb │ ├── contactmap_rigidbody_5_clt_1.pdb │ ├── contactmap_rigidbody_7_clt_1.pdb │ ├── cyclic-peptide.pdb │ ├── e2aP_1F3G.pdb │ ├── hbond.tbl │ ├── hpr_ensemble.pdb │ ├── ligand.param │ ├── ligand.top │ ├── mini_dna.pdb │ ├── models_for_clustering │ │ ├── rigidbody_1.pdb │ │ ├── rigidbody_10.pdb │ │ ├── rigidbody_11.pdb │ │ ├── rigidbody_12.pdb │ │ ├── rigidbody_13.pdb │ │ ├── rigidbody_14.pdb │ │ ├── rigidbody_15.pdb │ │ ├── rigidbody_16.pdb │ │ ├── rigidbody_17.pdb │ │ ├── rigidbody_18.pdb │ │ ├── rigidbody_19.pdb │ │ ├── rigidbody_2.pdb │ │ ├── rigidbody_20.pdb │ │ ├── rigidbody_3.pdb │ │ ├── rigidbody_4.pdb │ │ ├── rigidbody_5.pdb │ │ ├── rigidbody_6.pdb │ │ ├── rigidbody_7.pdb │ │ ├── rigidbody_8.pdb │ │ └── rigidbody_9.pdb │ ├── oseltamivir.pdb │ ├── prot.pdb │ ├── prot.psf │ ├── protglyc_complex_1.pdb │ ├── protglyc_complex_1.psf │ ├── protglyc_complex_2.pdb │ ├── protprot_complex_1.pdb │ ├── protprot_complex_2.pdb │ ├── unambig.tbl │ └── workflow.cfg ├── test_alascan.py ├── test_caprieval.py ├── test_cli_score.py ├── test_clustfcc.py ├── test_cnsjob.py ├── test_contactmap.py ├── test_defaults_yaml.py ├── test_emref.py ├── test_emscoring.py ├── test_flexref.py ├── test_full_workflow.py ├── test_ilrmsdmatrix.py ├── test_knownCNSerrors.py ├── test_mdref.py ├── test_mdscoring.py ├── test_mpi.py ├── test_prodigyligand.py ├── test_prodigyprotein.py ├── test_restraints.py ├── test_rigidbody.py ├── test_rmsdmatrix.py ├── test_sasascore.py └── test_topoaa.py ├── pyproject.toml ├── setup.py ├── src └── haddock │ ├── __init__.py │ ├── clis │ ├── __init__.py │ ├── cli.py │ ├── cli_analyse.py │ ├── cli_cfg.py │ ├── cli_clean.py │ ├── cli_cp.py │ ├── cli_dmn.py │ ├── cli_mpi.py │ ├── cli_pp.py │ ├── cli_re.py │ ├── cli_restraints.py │ ├── cli_score.py │ ├── cli_traceback.py │ ├── cli_unpack.py │ ├── re │ │ ├── __init__.py │ │ ├── clustfcc.py │ │ ├── clustrmsd.py │ │ └── score.py │ └── restraints │ │ ├── __init__.py │ │ ├── active_passive_to_ambig.py │ │ ├── calc_accessibility.py │ │ ├── naccess.config │ │ ├── passive_from_active.py │ │ ├── random_removal.py │ │ ├── restrain_bodies.py │ │ ├── validate_tbl.py │ │ ├── webservice.py │ │ └── z_surface_restraints.py │ ├── cns │ └── toppar │ │ ├── boxtyp20.pdb │ │ ├── carbohydrate.param │ │ ├── carbohydrate.top │ │ ├── cofactors.param │ │ ├── cofactors.pep │ │ ├── cofactors.top │ │ ├── dmso.pdb │ │ ├── dna-rna-1.3.link │ │ ├── dna-rna-CG-MARTINI-2-1p-break.top │ │ ├── dna-rna-CG-MARTINI-2-1p.link │ │ ├── dna-rna-CG-MARTINI-2-1p.param │ │ ├── dna-rna-CG-MARTINI-2-1p.top │ │ ├── dna-rna-allatom-hj-opls-1.3.param │ │ ├── dna-rna-allatom-hj-opls-1.3.top │ │ ├── dna-rna-pho-1.3.link │ │ ├── dna_break.top │ │ ├── fragment_probes.param │ │ ├── fragment_probes.top │ │ ├── heme.pdb │ │ ├── heme.psf │ │ ├── hemeB.pdb │ │ ├── hemeB.psf │ │ ├── hemes-allhdg.param │ │ ├── hemes-allhdg.top │ │ ├── hemes.pep │ │ ├── initial_positions │ │ ├── trans_vector_0 │ │ ├── trans_vector_1 │ │ ├── trans_vector_10 │ │ ├── trans_vector_11 │ │ ├── trans_vector_12 │ │ ├── trans_vector_13 │ │ ├── trans_vector_14 │ │ ├── trans_vector_15 │ │ ├── trans_vector_16 │ │ ├── trans_vector_17 │ │ ├── trans_vector_18 │ │ ├── trans_vector_19 │ │ ├── trans_vector_2 │ │ ├── trans_vector_20 │ │ ├── trans_vector_21 │ │ ├── trans_vector_22 │ │ ├── trans_vector_23 │ │ ├── trans_vector_24 │ │ ├── trans_vector_25 │ │ ├── trans_vector_26 │ │ ├── trans_vector_27 │ │ ├── trans_vector_28 │ │ ├── trans_vector_29 │ │ ├── trans_vector_3 │ │ ├── trans_vector_30 │ │ ├── trans_vector_31 │ │ ├── trans_vector_32 │ │ ├── trans_vector_33 │ │ ├── trans_vector_34 │ │ ├── trans_vector_35 │ │ ├── trans_vector_36 │ │ ├── trans_vector_37 │ │ ├── trans_vector_38 │ │ ├── trans_vector_39 │ │ ├── trans_vector_4 │ │ ├── trans_vector_40 │ │ ├── trans_vector_41 │ │ ├── trans_vector_42 │ │ ├── trans_vector_43 │ │ ├── trans_vector_44 │ │ ├── trans_vector_45 │ │ ├── trans_vector_46 │ │ ├── trans_vector_47 │ │ ├── trans_vector_48 │ │ ├── trans_vector_49 │ │ ├── trans_vector_5 │ │ ├── trans_vector_50 │ │ ├── trans_vector_6 │ │ ├── trans_vector_7 │ │ ├── trans_vector_8 │ │ └── trans_vector_9 │ │ ├── ion.param │ │ ├── ion.top │ │ ├── metalcenter.tbl │ │ ├── par_axis.pro │ │ ├── par_axis_dani.pro │ │ ├── protein-CG-Martini-2-2.link │ │ ├── protein-CG-Martini-2-2.param │ │ ├── protein-CG-Martini-2-2.top │ │ ├── protein-CG-Martini.link │ │ ├── protein-CG-Martini.param │ │ ├── protein-CG-Martini.top │ │ ├── protein-allhdg5-4-noCter.link │ │ ├── protein-allhdg5-4-noNter.link │ │ ├── protein-allhdg5-4-noter.link │ │ ├── protein-allhdg5-4.link │ │ ├── protein-allhdg5-4.param │ │ ├── protein-allhdg5-4.top │ │ ├── scatter.lib │ │ ├── shape.param │ │ ├── shape.top │ │ ├── solvent-allhdg5-4.param │ │ ├── solvent-allhdg5-4.top │ │ ├── tensor.pdb │ │ ├── tensor.psf │ │ ├── tensor_dani.pdb │ │ ├── tensor_dani.psf │ │ ├── tensor_para.pdb │ │ ├── tensor_para.psf │ │ ├── top_axis.pro │ │ └── top_axis_dani.pro │ ├── core │ ├── __init__.py │ ├── cns_paths.py │ ├── defaults.py │ ├── exceptions.py │ ├── mandatory.yaml │ ├── optional.yaml │ ├── supported_molecules.py │ └── typing.py │ ├── deps │ ├── contact_fcc.cpp │ └── fast-rmsdmatrix.c │ ├── fcc │ ├── __init__.py │ ├── calc_fcc_matrix.py │ └── cluster_fcc.py │ ├── gear │ ├── __init__.py │ ├── clean_steps.py │ ├── config.py │ ├── expandable_parameters.py │ ├── extend_run.py │ ├── greetings.py │ ├── haddockmodel.py │ ├── known_cns_errors.py │ ├── parameters.py │ ├── postprocessing.py │ ├── prepare_run.py │ ├── preprocessing.py │ ├── restart_run.py │ ├── validations.py │ ├── yaml2cfg.py │ └── zerofill.py │ ├── libs │ ├── __init__.py │ ├── assets │ │ ├── __init__.py │ │ ├── index.css │ │ └── report.bundle.js │ ├── libalign.py │ ├── libcli.py │ ├── libclust.py │ ├── libcns.py │ ├── libfcc.py │ ├── libfunc.py │ ├── libhpc.py │ ├── libinteractive.py │ ├── libio.py │ ├── liblog.py │ ├── libmath.py │ ├── libmpi.py │ ├── libontology.py │ ├── libparallel.py │ ├── libpdb.py │ ├── libplots.py │ ├── libprodigy.py │ ├── librestraints.py │ ├── libstructure.py │ ├── libsubprocess.py │ ├── libtimer.py │ ├── libutil.py │ └── libworkflow.py │ └── modules │ ├── __init__.py │ ├── _template_cat │ ├── README.md │ └── _template_mod │ │ ├── __init__.py │ │ └── defaults.yaml │ ├── analysis │ ├── __init__.py │ ├── alascan │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── scan.py │ ├── caprieval │ │ ├── __init__.py │ │ ├── capri.py │ │ └── defaults.yaml │ ├── clustfcc │ │ ├── __init__.py │ │ ├── clustfcc.py │ │ └── defaults.yaml │ ├── clustrmsd │ │ ├── __init__.py │ │ ├── clustrmsd.py │ │ └── defaults.yaml │ ├── contactmap │ │ ├── __init__.py │ │ ├── contmap.py │ │ └── defaults.yaml │ ├── filter │ │ ├── __init__.py │ │ └── defaults.yaml │ ├── ilrmsdmatrix │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── ilrmsd.py │ ├── rmsdmatrix │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── rmsd.py │ ├── seletop │ │ ├── __init__.py │ │ └── defaults.yaml │ └── seletopclusts │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── seletopclusts.py │ ├── base_cns_module.py │ ├── defaults.yaml │ ├── extras │ ├── __init__.py │ └── exit │ │ ├── __init__.py │ │ └── defaults.yaml │ ├── refinement │ ├── __init__.py │ ├── emref │ │ ├── __init__.py │ │ ├── cns │ │ │ ├── calc_free-ene.cns │ │ │ ├── contactairs.cns │ │ │ ├── def_solv_param.cns │ │ │ ├── dna-rna_restraints.cns │ │ │ ├── emref.cns │ │ │ ├── flex_segment_back.cns │ │ │ ├── flexauto-neighbors.cns │ │ │ ├── print_coorheader.cns │ │ │ ├── protein-ss-restraints-all.cns │ │ │ ├── protein-ss-restraints-alpha-beta.cns │ │ │ ├── protein-ss-restraints-alpha.cns │ │ │ ├── read_data.cns │ │ │ ├── read_noes.cns │ │ │ ├── read_param.cns │ │ │ ├── restrain-ions.cns │ │ │ ├── scale_inter.cns │ │ │ ├── scale_inter_final.cns │ │ │ ├── scale_intra_only.cns │ │ │ ├── setflags.cns │ │ │ └── symmultimer.cns │ │ └── defaults.yaml │ ├── flexref │ │ ├── __init__.py │ │ ├── cns │ │ │ ├── calc_free-ene.cns │ │ │ ├── check-homomers.cns │ │ │ ├── cm-restraints.cns │ │ │ ├── contactairs.cns │ │ │ ├── covalions.cns │ │ │ ├── def_solv_param.cns │ │ │ ├── dna-rna_restraints.cns │ │ │ ├── flex_segment.cns │ │ │ ├── flex_segment_back.cns │ │ │ ├── flex_segment_side.cns │ │ │ ├── flexauto-neighbors.cns │ │ │ ├── flexref.cns │ │ │ ├── numtrees.cns │ │ │ ├── print_coorheader.cns │ │ │ ├── protein-ss-restraints-all.cns │ │ │ ├── protein-ss-restraints-alpha-beta.cns │ │ │ ├── protein-ss-restraints-alpha.cns │ │ │ ├── random_rotations.cns │ │ │ ├── read_data.cns │ │ │ ├── read_noes.cns │ │ │ ├── read_param.cns │ │ │ ├── restrain-ions.cns │ │ │ ├── sa_ltad_cool1.cns │ │ │ ├── sa_ltad_cool2.cns │ │ │ ├── sa_ltad_cool3.cns │ │ │ ├── sa_ltad_hightemp.cns │ │ │ ├── scale_inter.cns │ │ │ ├── scale_inter_final.cns │ │ │ ├── scale_inter_only.cns │ │ │ ├── scale_intra_only.cns │ │ │ ├── separate.cns │ │ │ ├── setflags.cns │ │ │ ├── symmultimer.cns │ │ │ └── torsiontop.cns │ │ └── defaults.yaml │ ├── mdref │ │ ├── __init__.py │ │ ├── cns │ │ │ ├── calc_free-ene.cns │ │ │ ├── cm-restraints.cns │ │ │ ├── contactairs.cns │ │ │ ├── def_solv_param.cns │ │ │ ├── dna-rna_restraints.cns │ │ │ ├── flex_segment_back.cns │ │ │ ├── flex_segment_side.cns │ │ │ ├── flexauto-neighbors.cns │ │ │ ├── generate_dmso.cns │ │ │ ├── generate_water.cns │ │ │ ├── mdref.cns │ │ │ ├── print_coorheader.cns │ │ │ ├── protein-ss-restraints-all.cns │ │ │ ├── protein-ss-restraints-alpha-beta.cns │ │ │ ├── protein-ss-restraints-alpha.cns │ │ │ ├── read_data.cns │ │ │ ├── read_noes.cns │ │ │ ├── read_param.cns │ │ │ ├── restrain-ions.cns │ │ │ ├── scale_inter.cns │ │ │ ├── scale_inter_final.cns │ │ │ ├── scale_intra_only.cns │ │ │ ├── setflags.cns │ │ │ └── symmultimer.cns │ │ └── defaults.yaml │ └── openmm │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── openmm.py │ ├── sampling │ ├── __init__.py │ ├── gdock │ │ ├── __init__.py │ │ └── defaults.yaml │ ├── lightdock │ │ ├── __init__.py │ │ └── defaults.yaml │ └── rigidbody │ │ ├── __init__.py │ │ ├── cns │ │ ├── bestener.cns │ │ ├── bsa.cns │ │ ├── charge-beads-interactions.cns │ │ ├── check-homomers.cns │ │ ├── cm-restraints.cns │ │ ├── def_solv_param.cns │ │ ├── get_random_rotation.cns │ │ ├── print_coorheader.cns │ │ ├── random_rotations.cns │ │ ├── randomairs.cns │ │ ├── read_noes.cns │ │ ├── read_param.cns │ │ ├── rigidbody.cns │ │ ├── rotation180.cns │ │ ├── scale_inter_final.cns │ │ ├── scale_inter_mini.cns │ │ ├── scale_inter_only.cns │ │ ├── scale_intra_only.cns │ │ ├── separate.cns │ │ ├── surf-restraints.cns │ │ └── symmultimer.cns │ │ └── defaults.yaml │ ├── scoring │ ├── __init__.py │ ├── emscoring │ │ ├── __init__.py │ │ ├── cns │ │ │ ├── calc_free-ene.cns │ │ │ ├── def_solv_param.cns │ │ │ ├── emscoring.cns │ │ │ ├── print_coorheader.cns │ │ │ ├── read_param.cns │ │ │ ├── restrain-ions.cns │ │ │ ├── scale_inter_final.cns │ │ │ └── scale_intra_only.cns │ │ └── defaults.yaml │ ├── mdscoring │ │ ├── __init__.py │ │ ├── cns │ │ │ ├── calc_free-ene.cns │ │ │ ├── contactairs.cns │ │ │ ├── def_solv_param.cns │ │ │ ├── dna-rna_restraints.cns │ │ │ ├── flex_segment_back.cns │ │ │ ├── flex_segment_side.cns │ │ │ ├── flexauto-neighbors.cns │ │ │ ├── generate_dmso.cns │ │ │ ├── generate_water.cns │ │ │ ├── mdscoring.cns │ │ │ ├── print_coorheader.cns │ │ │ ├── protein-ss-restraints-all.cns │ │ │ ├── protein-ss-restraints-alpha-beta.cns │ │ │ ├── protein-ss-restraints-alpha.cns │ │ │ ├── read_param.cns │ │ │ ├── restrain-ions.cns │ │ │ ├── scale_inter_final.cns │ │ │ ├── scale_intra_only.cns │ │ │ └── setflags.cns │ │ └── defaults.yaml │ ├── prodigyligand │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── prodigylig.py │ ├── prodigyprotein │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── prodigy.py │ └── sasascore │ │ ├── __init__.py │ │ ├── defaults.yaml │ │ └── sasascore.py │ └── topology │ ├── __init__.py │ ├── topoaa │ ├── __init__.py │ ├── cns │ │ ├── auto-his.cns │ │ ├── bondglycans.cns │ │ ├── build-missing.cns │ │ ├── coval-ace-cys.cns │ │ ├── covalheme.cns │ │ ├── dna_break.cns │ │ ├── generate-topology.cns │ │ ├── patch-bb-cg.cns │ │ ├── patch-types-cg.cns │ │ └── prot_break.cns │ └── defaults.yaml │ └── topocg │ ├── __init__.py │ └── defaults.yaml ├── tests ├── __init__.py ├── clean_output_data │ └── run1 │ │ ├── 0_topoaa │ │ ├── params.cfg │ │ ├── structure_1.inp │ │ ├── structure_1.out │ │ ├── structure_1.pdb │ │ └── structure_1.psf │ │ ├── 1_rigidbody │ │ ├── io.json │ │ ├── params.cfg │ │ ├── structure_1.inp │ │ ├── structure_1.out │ │ ├── structure_1.pdb │ │ ├── structure_1.seed │ │ ├── structure_2.inp │ │ ├── structure_2.out │ │ ├── structure_2.pdb │ │ └── structure_2.seed │ │ └── 2_clustfcc │ │ ├── structure_1.con │ │ └── structure_2.con ├── clis │ └── hd3_copy │ │ ├── run1 │ │ ├── 0_topoaa │ │ │ └── io.json │ │ ├── 1_rigidbody │ │ │ └── io.json │ │ ├── 2_flexref │ │ │ ├── io.json │ │ │ └── other.file │ │ ├── 3_seletop │ │ │ └── io.json │ │ └── data │ │ │ ├── 0_topoaa │ │ │ ├── mol1.pdb │ │ │ └── mol2.pdb │ │ │ ├── 1_rigidbody │ │ │ └── air.tbl │ │ │ └── 2_flexref │ │ │ └── air.tbl │ │ └── run2_ref │ │ ├── 0_topoaa │ │ └── io.json │ │ ├── 1_flexref │ │ ├── io.json │ │ └── other.file │ │ ├── 2_seletop │ │ └── io.json │ │ └── data │ │ ├── 0_topoaa │ │ ├── mol1.pdb │ │ └── mol2.pdb │ │ └── 1_flexref │ │ └── air.tbl ├── configs │ ├── empty.cfg │ ├── recipe.cfg │ ├── yaml2cfg_converted.cfg │ ├── yaml2cfg_converted_no_header.cfg │ └── yml_example.yml ├── conftest.py ├── data │ ├── 0_dummystep │ │ ├── file1.in │ │ └── folder │ │ │ └── file2.in │ ├── broken.pdb │ ├── capri_ss_-cluster.tsv │ ├── corrected.pdb │ ├── noTER.pdb │ ├── residues.top │ └── withTER.pdb ├── golden_data │ ├── ambig.tbl.tgz │ ├── capri_clt_example.tsv │ ├── capri_ss_example.tsv │ ├── dna.pdb │ ├── e2aP_1F3G_haddock.pdb │ ├── e2aP_1F3G_haddock.psf │ ├── ens_header.pdb │ ├── example.act-pass │ ├── example_ambig_1.tbl │ ├── example_ambig_2.tbl │ ├── example_dendrogram.txt │ ├── example_fcc.matrix │ ├── example_ilrmsd.matrix │ ├── example_rmsd_matrix.json │ ├── hpr_ensemble_1_haddock.pdb │ ├── hpr_ensemble_1_haddock.psf │ ├── io_clustrmsd.json │ ├── io_flexref.json │ ├── io_rigid.json │ ├── ligand.pdb │ ├── params_clustfcc.cfg │ ├── params_clustrmsd.cfg │ ├── protdna_complex_1.pdb │ ├── protdna_complex_2.pdb │ ├── protein.pdb │ ├── protein_renumb.pdb │ ├── protein_segid.pdb │ ├── protlig_complex_1.pdb │ ├── protlig_complex_2.pdb │ ├── protprot_1bkd_1.pdb │ ├── protprot_1bkd_2.pdb │ ├── protprot_complex_1.pdb │ ├── protprot_complex_2.pdb │ ├── protprot_complex_2_inverted.pdb │ ├── protprot_onechain.pdb │ └── scan_protprot_complex_1.tsv ├── test_cli.py ├── test_cli_analyse.py ├── test_cli_cfg.py ├── test_cli_copy.py ├── test_cli_mpi.py ├── test_cli_pp.py ├── test_cli_re.py ├── test_cli_restraints.py ├── test_cli_traceback.py ├── test_cns_paths.py ├── test_core.py ├── test_core_supported_molecules.py ├── test_examples_general.py ├── test_exceptions.py ├── test_extend_run.py ├── test_gear_clean_steps.py ├── test_gear_config.py ├── test_gear_expandable_parameters.py ├── test_gear_haddockmodel.py ├── test_gear_known_cns_errors.py ├── test_gear_parameters.py ├── test_gear_prepare_run.py ├── test_gear_preprocessing.py ├── test_gear_restart.py ├── test_gear_validations.py ├── test_gear_yaml2cfg.py ├── test_gear_zerofill.py ├── test_libalign.py ├── test_libcli.py ├── test_libclust.py ├── test_libcns.py ├── test_libfunc.py ├── test_libhpc.py ├── test_libinteractive.py ├── test_libio.py ├── test_liblog.py ├── test_libmpi.py ├── test_libontology.py ├── test_libparallel.py ├── test_libpdb.py ├── test_libplots.py ├── test_libsubprocess.py ├── test_libtimer.py ├── test_libutil.py ├── test_libworkflow.py ├── test_module_alascan.py ├── test_module_caprieval.py ├── test_module_clustfcc.py ├── test_module_clustrmsd.py ├── test_module_contmap.py ├── test_module_emscoring.py ├── test_module_filter.py ├── test_module_flexref.py ├── test_module_ilrmsdmatrix.py ├── test_module_mdscoring.py ├── test_module_prodigyligand.py ├── test_module_prodigyprotein.py ├── test_module_rigidbody.py ├── test_module_rmsdmatrix.py ├── test_module_sasascore.py ├── test_module_seletopclusts.py ├── test_module_topoaa.py ├── test_modules_analysis.py ├── test_modules_general.py ├── test_validations.py └── test_ws_restraints.py └── varia ├── cns1.3 ├── README.md ├── bin │ └── getarch ├── instlib │ └── machine │ │ └── supported │ │ ├── arm-aarch64-linux │ │ ├── 0read.me │ │ ├── Makefile.header.2.gfortran │ │ ├── Makefile.header.7.gfortran_mp │ │ ├── arch_env │ │ ├── machine_c.c │ │ └── machine_f.f │ │ ├── intel-x86_64bit-linux │ │ ├── 0read.me │ │ ├── Makefile.header.2.gfortran │ │ ├── Makefile.header.7.gfortran_mp │ │ ├── arch_env │ │ ├── machine_c.c │ │ └── machine_f.f │ │ ├── linux │ │ ├── 0read.me │ │ ├── Makefile.header.2.gfortran │ │ ├── Makefile.header.5.gfortran_mp │ │ ├── arch_env │ │ ├── machine_c.c │ │ └── machine_f.f │ │ ├── mac-arm-darwin │ │ ├── 0read.me │ │ ├── Makefile.header.1.gfortran │ │ ├── arch_env │ │ ├── machine_c.c │ │ └── machine_f.f │ │ └── mac-intel-darwin │ │ ├── 0read.me │ │ ├── Makefile.header.7.gfortran │ │ ├── arch_env │ │ ├── machine_c.c │ │ └── machine_f.f └── source │ ├── cns.f │ ├── cns.inc │ ├── cnst.inc │ ├── collapse.inc │ ├── collapse_rgyr.f │ ├── comand.inc │ ├── connect.f │ ├── cstran.f │ ├── ener.inc │ ├── energy.f │ ├── fantacross.f │ ├── fantalin.f │ ├── fantaxplor.inc │ ├── genic.f │ ├── initia.f │ ├── machvar.f │ ├── param.inc │ ├── rtf.inc │ ├── segmnt.f │ ├── selrpn.f │ ├── sup2.inc │ ├── supccr.inc │ ├── vector.f │ ├── version.inc │ ├── xangle.f │ ├── xangle.inc │ ├── xccr.f │ ├── xccr.inc │ ├── xdipo_pcs.f │ ├── xdipo_pcs.inc │ ├── xdipo_rdc.f │ ├── xdipo_rdc.inc │ ├── xfantaccr.f │ ├── xfantadipo.f │ └── xt1dist.f └── lmod ├── README.md └── haddock3 └── 3.0.0.lua /.bumpversion.cfg: -------------------------------------------------------------------------------- 1 | [bumpversion] 2 | current_version = 3.0.0 3 | commit = True 4 | message = 5 | [SKIP] version bump {current_version} -> {new_version} 6 | 7 | {$COMMIT_MSG} 8 | tag = True 9 | tag_message = 10 | version bump {current_version} -> {new_version} 11 | 12 | {$COMMIT_MSG} 13 | 14 | [bumpversion:file:src/haddock/__init__.py] 15 | search = version = "{current_version}" 16 | replace = version = "{new_version}" 17 | 18 | [bumpversion:file:setup.py] 19 | search = version='{current_version}', 20 | replace = version='{new_version}', 21 | 22 | [bumpversion:file:docs/conf.py] 23 | search = version = release = '{current_version}' 24 | replace = version = release = '{new_version}' 25 | 26 | [bumpversion:file:CHANGELOG.md] 27 | search = ## new_version 28 | replace = ## v{new_version} ({now:%Y-%m-%d}) 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Enhancement/Feature request 3 | about: An enhancement/feature request is a suggestion for new functionality or an enhancement to existing features in the software. 4 | title: '' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 18 | 19 | ## **Desired feature/enhancement** 20 | 21 | 22 | ## **Motivation** 23 | 24 | 25 | ## **Description** 26 | 27 | 28 | ## **Additional context** 29 | 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: Question about the source code of the project 4 | title: '' 5 | labels: 'question' 6 | assignees: '' 7 | 8 | --- 9 | 12 | 13 | ## **Question** 14 | 15 | 16 | ## **Code snippet** 17 | 18 | 19 | ## **Additional context** 20 | 21 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "pip" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "monthly" 12 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | You are about to submit a new Pull Request. Before continuing make sure you read the [contributing guidelines](CONTRIBUTING.md). 2 | 3 | ## Checklist 4 | 5 | - [ ] Tests added for the new code 6 | - [ ] Documentation added for the code changes 7 | - [ ] Modifications / enhancements are reflected on the [haddock3 user-manual](https://github.com/haddocking/haddock3-user-manual) 8 | - [ ] `CHANGELOG.md` is updated to incorporate new changes 9 | - [ ] Does not break licensing 10 | - [ ] Does not add any dependencies, if it does please add a thorough explanation 11 | 12 | ## Summary of the Pull Request 13 | 14 | 15 | ## Related Issue 16 | 17 | 18 | 19 | ## Additional Info 20 | 21 | -------------------------------------------------------------------------------- /.github/workflows/github-to-gitlab-push-sync.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' 7 | 8 | jobs: 9 | sync: 10 | runs-on: ubuntu-latest 11 | name: sync to codehub 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | with: 16 | ref: main 17 | fetch-depth: 0 18 | 19 | - uses: cniethammer/git-repo-sync@cb1067d118c0c209bcded585b5c78e581bb0dfec 20 | with: 21 | target-url: https://codehub.hlrs.de/coes/bioexcel/haddock3.git 22 | target-username: ${{ secrets.ACCESS_TOKEN_NAME }} 23 | target-token: ${{ secrets.ACCESS_TOKEN }} 24 | -------------------------------------------------------------------------------- /.github/workflows/pages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: pages 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | pages: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | 15 | - name: Set up Python 16 | uses: actions/setup-python@v5 17 | with: 18 | python-version: "3.10" 19 | 20 | - name: install system dependencies 21 | run: | 22 | sudo apt-get update 23 | sudo apt-get install -y openmpi-bin libopenmpi3 libopenmpi-dev 24 | 25 | - name: install haddock3 with extra dependencies 26 | run: pip install '.[dev,docs]' 27 | 28 | - name: Generate docs 29 | run: | 30 | sphinx-apidoc -f -e -o docs/ src/haddock -d 1 31 | sphinx-build -b html docs haddock3-docs 32 | touch haddock3-docs/.nojekyll 33 | 34 | - name: deploy 35 | uses: s0/git-publish-subdir-action@develop 36 | env: 37 | REPO: self 38 | BRANCH: gh-pages 39 | FOLDER: haddock3-docs 40 | GITHUB_TOKEN: ${{ secrets.PAGES }} 41 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: publish to pypi 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | pypi_release: 9 | name: builds and publishes to pypi 10 | runs-on: ubuntu-latest 11 | environment: 12 | name: pypi 13 | url: https://pypi.org/p/haddock3 14 | permissions: 15 | id-token: write 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - uses: actions/setup-python@v5 21 | with: 22 | python-version: "3.12" 23 | 24 | - name: install dependencies 25 | run: | 26 | python -m pip install --upgrade pip 27 | pip install setuptools wheel build 28 | 29 | - name: build 30 | run: python -m build --sdist 31 | 32 | - name: Publish package distributions to PyPI 33 | uses: pypa/gh-action-pypi-publish@release/v1 34 | -------------------------------------------------------------------------------- /.github/workflows/validate_citation.yml: -------------------------------------------------------------------------------- 1 | on: 2 | pull_request: 3 | paths: 4 | - CITATION.cff 5 | workflow_dispatch: 6 | 7 | jobs: 8 | validate-citation: 9 | runs-on: ubuntu-latest 10 | env: 11 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - uses: dieghernan/cff-validator@v3 17 | -------------------------------------------------------------------------------- /.howfairis.yml: -------------------------------------------------------------------------------- 1 | ## Uncomment a line if you want to skip a given category of checks 2 | 3 | #skip_repository_checks_reason: 4 | #skip_license_checks_reason: 5 | #skip_registry_checks_reason: 6 | #skip_citation_checks_reason: 7 | skip_checklist_checks_reason: "I'm using the Codacy dashboard to guide my development" 8 | 9 | ignore_commented_badges: false 10 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | #conda: 9 | # environment: requirements.yml 10 | 11 | # Build documentation in the docs/ directory with Sphinx 12 | sphinx: 13 | configuration: devtools/docs-conf.py 14 | 15 | # Optionally build your docs in additional formats such as PDF and ePub 16 | formats: all 17 | 18 | # Optionally set the version of Python and requirements required to build your docs 19 | python: 20 | version: 3.10 21 | install: 22 | - requirements: 23 | - devtools/docs-requirements.txt 24 | - method: pip 25 | path: . 26 | extra_requirements: 27 | - docs 28 | - method: setuptools 29 | path: . 30 | system_packages: true 31 | 32 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | Will be edited as of the first main release 4 | -------------------------------------------------------------------------------- /CITING.md: -------------------------------------------------------------------------------- 1 | # Citing 2 | 3 | Cite HADDOCK3 with the following: 4 | 5 | 1. HADDOCK3, Bonvin's Lab, https://github.com/haddocking/haddock3, 2022. 6 | 2. Dominguez, C., Boelens, R. & Bonvin, A. M. J. J. HADDOCK: a protein-protein docking approach based on biochemical or biophysical information. J Am Chem Soc 125, 1731–1737 (2003). 7 | 8 | Developed with financial support from the Horizon 2020 [BioExcel CoE](https://www.bioexcel.eu) project [823830](https://cordis.europa.eu/project/id/823830) 9 | -------------------------------------------------------------------------------- /DISCLAIMER.md: -------------------------------------------------------------------------------- 1 | # HADDOCK3 DISCLAIMER 2 | 3 | The HADDOCK3 software is provided "as is" and without warranties. 4 | The authors of the software will not be held liable for any use of the HADDOCK3 package and derivatives/results. 5 | 6 | Some of HADDOCK3 modules use the CNS software () (Crystallography and NMR System) 7 | as computational engine. 8 | 9 | While CNS is free of use for non-profit users, a proper license is required for commercial applications. 10 | Biovia is handling those licenses (). 11 | While they officially do not distribute CNS (CNX) anymore, they usually allow the use of the non-profit version 12 | provided a proper license is purchased for some of their modelling software. 13 | 14 | The HADDOCK3 modules using CNS are: 15 | 16 | - topology modules: 17 | - topoaa 18 | - topocg 19 | 20 | - sampling modules: 21 | - rigidbody 22 | 23 | - refinement modules: 24 | - flexref 25 | - emref 26 | - mdref 27 | 28 | - scoring modules: 29 | - emscoring 30 | - mdscoring 31 | 32 | - analysis modules: 33 | - alascan 34 | 35 | Commercial use of any of the above-mentioned modules in a HADDOCK3 workflow will thus require a proper CNS license. 36 | It is your responsibility as a user to make sure you have such a license. 37 | 38 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | #============================================================================================== 2 | FROM python:3.13 3 | WORKDIR /opt/software 4 | COPY . . 5 | RUN pip install --no-cache-dir . 6 | WORKDIR /data 7 | ENTRYPOINT [ "haddock3" ] 8 | #============================================================================================== 9 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | graft docs 2 | graft src/haddock 3 | include *.md 4 | include *.rst 5 | include LICENSE 6 | include pyproject.toml 7 | include setup.py 8 | exclude .gitmodules 9 | exclude .bumpversion.cfg 10 | exclude .coveragerc 11 | exclude .readthedocs.yml 12 | prune devtools 13 | prune examples 14 | prune src/fcc 15 | prune tests 16 | # exclude params*.rst documentation that is generated with 17 | # sphinx-apidoc 18 | exclude docs/modules/*/params/*.rst 19 | exclude docs/reference/core/mandatory_parameters.rst 20 | exclude docs/modules/general_module_params.rst 21 | global-exclude *.py[cod] __pycache__/* *.so *.dylib 22 | global-exclude tags 23 | global-exclude *.swp 24 | # recursive include of varia files 25 | recursive-include varia *.f 26 | recursive-include varia *.inc 27 | recursive-include varia *.lua 28 | recursive-include varia *.md 29 | include src/haddock/bin/* 30 | include src/haddock/libs/assets/* 31 | -------------------------------------------------------------------------------- /devtools/docs-requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx>=2 2 | sphinx-argparse 3 | karma-sphinx-theme 4 | CommonMark 5 | mock 6 | myst-parser 7 | jsonpickle 8 | -------------------------------------------------------------------------------- /docs/USAGE.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | Before using HADDOCK3, install HADDOCK3 following the [installation 4 | instructions](INSTALL.md). 5 | 6 | ## Run HADDOCK3 7 | 8 | This is a minimal description of how to run HADDOCK3. We are currently 9 | creating detailed documentation and tutorials. The minimal HADDOCK3 10 | execution command is: 11 | 12 | ```bash 13 | haddock3 14 | ``` 15 | 16 | Where the `` is a haddock3 configuration file 17 | describing the simulation workflow. 18 | 19 | You can inspect all `haddock3` options with: 20 | 21 | ```bash 22 | haddock3 -h 23 | ``` 24 | 25 | Inside the HADDOCK3 main folder, there is an `examples/` folder. There 26 | you will find several subfolder with examples for specific docking 27 | scenarios. Please experiment running those configuration files ending in 28 | `-test.cfg`. For example: 29 | 30 | ```bash 31 | cd examples/docking-protein-protein 32 | haddock3 docking-protein-protein-test.cfg 33 | ``` 34 | 35 | Feel free to open the `cfg` files with your preferred test editor, these 36 | are plain text files. 37 | 38 | To get the list of all possible parameters for each module: 39 | 40 | ```bash 41 | haddock3-cfg -h 42 | haddock3-cfg -m 43 | haddock3-cfg -m rigidbody 44 | ``` 45 | 46 | We are actively working towards expanding our documentation pages. 47 | Thanks for using HADDOCK3! For any question please [open an issue 48 | here](https://github.com/haddocking/haddock3/issues). 49 | -------------------------------------------------------------------------------- /docs/citing.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CITING.md 2 | :parser: myst_parser.sphinx_ 3 | -------------------------------------------------------------------------------- /docs/contributing.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CONTRIBUTING.md 2 | :parser: myst_parser.sphinx_ 3 | -------------------------------------------------------------------------------- /docs/figs/HADDOCK2-stages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/docs/figs/HADDOCK2-stages.png -------------------------------------------------------------------------------- /docs/figs/HADDOCK3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/docs/figs/HADDOCK3-logo.png -------------------------------------------------------------------------------- /docs/figs/HADDOCK3-workflow-scheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/docs/figs/HADDOCK3-workflow-scheme.png -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | Welcome to HADDOCK3 Documentation! 2 | ================================== 3 | 4 | .. include:: ../README.md 5 | :start-after: .. start-description 6 | :end-before: .. end-description 7 | 8 | You can now read through the **content** below. 9 | 10 | 11 | Content 12 | ======== 13 | 14 | .. toctree:: 15 | :maxdepth: 1 16 | 17 | intro 18 | INSTALL 19 | USAGE 20 | examples 21 | tutorials/index 22 | clients/haddock.clis 23 | modules/index 24 | testing/index 25 | contributing 26 | citing 27 | reference/index 28 | 29 | 30 | Indices and tables 31 | ================== 32 | 33 | * :ref:`genindex` 34 | * :ref:`modindex` 35 | * :ref:`search` 36 | 37 | -------------------------------------------------------------------------------- /docs/modules/index.rst: -------------------------------------------------------------------------------- 1 | Modules 2 | ======= 3 | 4 | HADDOCK3 allows users to compose modular simulation workflows. Workflows are 5 | composed in *steps*, and each step is a HADDOCK3 module. There are modules for 6 | **sampling**, **refinement**, **analysis**, etc. 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | topology/index 12 | sampling/index 13 | refinement/index 14 | scoring/index 15 | analysis/index 16 | extras/index 17 | 18 | Parent code for modules 19 | ----------------------- 20 | 21 | .. automodule:: haddock.modules 22 | :members: 23 | :show-inheritance: 24 | :inherited-members: 25 | 26 | Parent code for CNS modules 27 | --------------------------- 28 | 29 | .. automodule:: haddock.modules.base_cns_module 30 | :members: 31 | :show-inheritance: 32 | :inherited-members: 33 | 34 | General Default parameters 35 | -------------------------- 36 | 37 | General default parameters can be defined in the main section of the 38 | configuration file, but can also be defined for each individual module (step). 39 | In the later case, overriding the general definition. 40 | 41 | .. include:: general_module_params.rst 42 | -------------------------------------------------------------------------------- /docs/reference/index.rst: -------------------------------------------------------------------------------- 1 | Library Reference 2 | ================= 3 | 4 | Here, you will find documentation to use HADDOCK3 as a library. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | 9 | core/haddock.core 10 | libs/haddock.libs 11 | gear/haddock.gear 12 | -------------------------------------------------------------------------------- /docs/testing/index.rst: -------------------------------------------------------------------------------- 1 | Testing 2 | ======= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | integration_tests 8 | -------------------------------------------------------------------------------- /docs/tutorials/index.rst: -------------------------------------------------------------------------------- 1 | Advanced features 2 | ================= 3 | 4 | Here we provide an index of the available HADDOCK3 advanced features. Some examples 5 | illustrate the different functionalities of the program and how to approach them. 6 | At the end, we explain how to use HADDOCK3 in the various simulation scenarios. 7 | 8 | HADDOCK3 functionalities 9 | ------------------------ 10 | 11 | .. toctree:: 12 | :maxdepth: 1 13 | 14 | user_config 15 | continuing_runs 16 | mpi 17 | 18 | Tutorials for developers 19 | ------------------------ 20 | 21 | .. toctree:: 22 | :maxdepth: 1 23 | 24 | benchmark 25 | -------------------------------------------------------------------------------- /docs/tutorials/mpi.md: -------------------------------------------------------------------------------- 1 | # Running HADDOCK3 with MPI 2 | 3 | To run this example you must have `mpi4py` installed in the haddock3 python 4 | environment, and `OpenMPI` in the host system. 5 | 6 | ```bash 7 | $ pip install mpi4py 8 | # or 9 | $ conda install -c conda-forge mpi4py 10 | ``` 11 | 12 | **Do not run it as: `mpirun -np haddock3 run.cfg`**, this logic is handled 13 | internally. 14 | 15 | Edit the `.cfg` according to the `.job` parameters you have set 16 | 17 | In the `.job` header: 18 | 19 | ```bash 20 | #SBATCH --nodes=5 21 | #SBATCH --tasks-per-node=96 22 | ``` 23 | 24 | In the `.cfg` params 25 | 26 | ```toml 27 | ncores = 480 28 | ``` 29 | 30 | Then prepare the rest of the `.job` file according to your cluster, a SLURM 31 | example is provided at 32 | `haddock3/examples/docking-protein-protein/docking-protein-protein-mpi.job` and 33 | below: 34 | 35 | ```bash 36 | #!/bin/bash 37 | #SBATCH --nodes=5 38 | #SBATCH --tasks-per-node=96 39 | #SBATCH -J haddock3mpi 40 | 41 | # make sure anaconda is activated 42 | source $HOME/software/miniconda3/bin/activate 43 | conda activate haddock3 44 | 45 | # go to the example directory 46 | cd $HOME/repos/haddock3/examples/docking-protein-protein 47 | 48 | # remove any old runs 49 | rm -rf run-mpi 50 | 51 | # execute 52 | haddock3 docking-protein-protein-mpi-test.cfg 53 | ``` 54 | 55 | Then: 56 | 57 | ```bash 58 | sbatch docking-protein-protein-mpi.job 59 | ``` 60 | 61 | Please report any errors as an [issue](https://github.com/haddocking/haddock3/issues/new/choose). 62 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | git remote add target https://${INPUT_TARGET_USERNAME}:${INPUT_TARGET_TOKEN}@${INPUT_TARGET_URL#https://} 2 | 3 | case "${GITHUB_EVENT_NAME}" in 4 | push) 5 | git push -f --all target 6 | git push -f --tags target 7 | ;; 8 | delete) 9 | git push -d target ${GITHUB_EVENT_REF} 10 | ;; 11 | *) 12 | break 13 | ;; 14 | esac 15 | -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/data/01_z.tbl: -------------------------------------------------------------------------------- 1 | assign ( resid 19 and segid A and name CA ) ( segid S and name SHA and attr z le -7.593) 8.0 8.0 0.0 2 | 3 | assign ( resid 83 and segid A and name CA ) ( segid S and name SHA and attr z le -7.593) 8.0 8.0 0.0 4 | 5 | assign ( resid 145 and segid A and name CA ) ( segid S and name SHA and attr z le -7.593) 8.0 8.0 0.0 6 | 7 | assign ( resid 119 and segid A and name CA ) ( segid S and name SHA and attr z le -7.593) 8.0 8.0 0.0 8 | 9 | assign ( resid 167 and segid A and name CA ) ( segid S and name SHA and attr z le -7.593) 8.0 8.0 0.0 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/data/02_z.tbl: -------------------------------------------------------------------------------- 1 | assign ( resid 19 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 8.0 8.0 0.0 2 | 3 | assign ( resid 83 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 8.0 8.0 0.0 4 | 5 | assign ( resid 145 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 8.0 8.0 0.0 6 | 7 | assign ( resid 119 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 8.0 8.0 0.0 8 | 9 | assign ( resid 167 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 8.0 8.0 0.0 10 | 11 | assign ( resid 98 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 8.0 8.0 0.0 12 | 13 | assign ( resid 101 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 8.0 8.0 0.0 14 | 15 | assign ( resid 126 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 8.0 8.0 0.0 16 | 17 | assign ( resid 129 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 8.0 8.0 0.0 18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/data/02_z_smallspacing.tbl: -------------------------------------------------------------------------------- 1 | assign ( resid 19 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 2.0 2.0 0.0 2 | 3 | assign ( resid 83 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 2.0 2.0 0.0 4 | 5 | assign ( resid 145 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 2.0 2.0 0.0 6 | 7 | assign ( resid 119 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 2.0 2.0 0.0 8 | 9 | assign ( resid 167 and segid A and name CA ) ( segid S and name SHA and attr z le -13.403) 2.0 2.0 0.0 10 | 11 | assign ( resid 98 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 2.0 2.0 0.0 12 | 13 | assign ( resid 101 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 2.0 2.0 0.0 14 | 15 | assign ( resid 126 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 2.0 2.0 0.0 16 | 17 | assign ( resid 129 and segid A and name CA ) ( segid S and name SHA and attr z ge 13.403) 2.0 2.0 0.0 18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/docking-between-two-surfaces-smallspacing.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Docking between two surfaces with small spacing # 3 | # =====================================================================# 4 | run_dir = "run-z-02-smallspacing" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/02_beads_smallspacing.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/02_z_smallspacing.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/docking-between-two-surfaces.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Example configuration file for docking a protein to two z-surfaces # 3 | # =====================================================================# 4 | run_dir = "run-z-02" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/02_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/02_z.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/docking-one-surface.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Docking of a protein on a surface with a single z-surface selection # 3 | # =====================================================================# 4 | run_dir = "run-z-01" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/01_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/01_z.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/.__future__.docking-protein-surface/docking-three-surfaces.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Example configuration file for docking a protein to three z-surfaces # 3 | # =====================================================================# 4 | run_dir = "run-z-03" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/03_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/03_z.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# 26 | -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | # Running jobs with MPI 2 | 3 | See our documentation page at `docs/mpi.md`. 4 | 5 | # Running integration tests manually 6 | 7 | See our documentation page at `docs/testing/integration_tests.md`. 8 | -------------------------------------------------------------------------------- /examples/analysis/alascan-complex-test.cfg: -------------------------------------------------------------------------------- 1 | # ================================================== 2 | # Alanine Scan with HADDOCK3 3 | # 4 | # This example workflow will perform alanine scanning 5 | # on an antibody-protein complex using HADDOCK3. 6 | # The workflow will focus on the antibody side of the 7 | # complex and will generate a series of mutants by 8 | # replacing each residue by alanine and glycine. 9 | # ================================================== 10 | 11 | # General parameters 12 | run_dir = "run1-alanine-scan-complex" 13 | ncores = 1 14 | 15 | # Input 16 | molecules = ["../docking-antibody-antigen/data/4G6M-matched.pdb"] 17 | 18 | # Workflow definition 19 | # ==================================================================== 20 | [topoaa] 21 | autohis = true 22 | 23 | [alascan] 24 | scan_residue="ALA" 25 | output_mutants=true 26 | int_cutoff = 4.5 27 | chains = ["A"] 28 | 29 | [alascan] 30 | scan_residue="GLY" 31 | output_mutants=true 32 | int_cutoff = 4.5 33 | chains = ["A"] 34 | -------------------------------------------------------------------------------- /examples/analysis/alascan-test.cfg: -------------------------------------------------------------------------------- 1 | # ================================================== 2 | # Alanine Scan with HADDOCK3 3 | # 4 | # This example workflow will refine a complex in 10 5 | # different models, cluster them, and then do an 6 | # alanine scan across the whole interface. 7 | # ================================================== 8 | 9 | # General parameters 10 | run_dir = "run1-alanine-scan" 11 | ncores = 10 12 | 13 | # Input 14 | molecules = ["../docking-protein-protein/data/e2a-hpr_1GGR.pdb"] 15 | 16 | # Workflow definition 17 | # ==================================================================== 18 | [topoaa] 19 | autohis = true 20 | 21 | [mdref] 22 | # this will produce 10 refined models 23 | sampling_factor = 10 24 | 25 | [caprieval] 26 | reference_fname="../docking-protein-protein/data/e2a-hpr_1GGR.pdb" 27 | 28 | [rmsdmatrix] 29 | 30 | [clustrmsd] 31 | n_clusters=2 32 | 33 | [alascan] 34 | scan_residue="ALA" 35 | output_bfactor=true 36 | plot=true 37 | int_cutoff = 3.0 38 | -------------------------------------------------------------------------------- /examples/analysis/topoaa-caprieval-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Capri analysis example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-topoaa-caprieval-test" 6 | 7 | # compute mode 8 | mode = "local" 9 | ncores=10 10 | 11 | 12 | # ensemble to be analysed 13 | molecules = "./data/ensemble_4G6M.pdb" 14 | 15 | # ==================================================================== 16 | # Parameters for each stage are defined below, prefer full paths 17 | # ==================================================================== 18 | [topoaa] 19 | 20 | [caprieval] 21 | reference_fname="data/target.pdb" 22 | -------------------------------------------------------------------------------- /examples/analysis/topoaa-clustfcc-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Clustfcc analysis example 3 | # Clustering based on Fraction of Common Contacts: `clustfcc` 4 | # ==================================================================== 5 | # Define global parameters 6 | # ==================================================================== 7 | # directory in which the scoring will be done 8 | run_dir = "run1-topoaa-clustfcc-test" 9 | 10 | # compute mode 11 | mode = "local" 12 | ncores = 10 13 | 14 | # ensemble to be analysed 15 | molecules = "./data/ensemble_4G6M.pdb" 16 | 17 | # ==================================================================== 18 | # Parameters for each stage are defined below 19 | # ==================================================================== 20 | # Generate topologies for each structure in the ensemble. 21 | [topoaa] 22 | 23 | # Cluster structures by Fraction of Comon Contacts (FCC) 24 | # with default parameters 25 | [clustfcc] 26 | 27 | # Evaluate models with CAPRI metrics using PDB complex as reference. 28 | [caprieval] 29 | reference_fname = "./data/target.pdb" 30 | 31 | # ==================================================================== 32 | -------------------------------------------------------------------------------- /examples/docking-antibody-antigen/data/unambig.tbl: -------------------------------------------------------------------------------- 1 | ! Molecule #1 gap(s) restraint(s) 2 | assign (resid 22 and name CA and segid A) (resid 155 and name CA and segid A) 22.565 0.00 0.00 3 | assign (resid 149 and name CA and segid A) (resid 35 and name CA and segid A) 20.918 0.00 0.00 4 | 5 | -------------------------------------------------------------------------------- /examples/docking-antibody-antigen/docking-antibody-antigen-CDR-accessible-full-mpi.job: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #SBATCH --nodes=5 3 | #SBATCH --tasks-per-node=50 4 | #SBATCH -J haddock3mpi 5 | 6 | # make sure anaconda is activated 7 | source $HOME/miniconda3/bin/activate 8 | conda activate haddock3 9 | 10 | # go to the example directory 11 | cd $HOME/haddock3/examples/docking-antibody-antigen 12 | 13 | # execute 14 | haddock3 docking-antibody-antigen-CDR-accessible-clt-full-mpi.cfg 15 | -------------------------------------------------------------------------------- /examples/docking-antibody-antigen/docking-antibody-antigen-ranairCDR-clt-full-mpi.job: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #SBATCH --nodes=5 3 | #SBATCH --tasks-per-node=50 4 | #SBATCH -J haddock3mpi 5 | 6 | # make sure anaconda is activated 7 | source $HOME/miniconda3/bin/activate 8 | conda activate haddock3 9 | 10 | # go to the example directory 11 | cd $HOME/haddock3/examples/docking-antibody-antigen 12 | 13 | # execute 14 | haddock3 docking-antibody-antigen-ranairCDR-clt-full-mpi.cfg 15 | -------------------------------------------------------------------------------- /examples/docking-antibody-antigen/docking-antibody-antigen-ranairCDR-full-mpi.job: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #SBATCH --nodes=5 3 | #SBATCH --tasks-per-node=50 4 | #SBATCH -J haddock3mpi 5 | 6 | # make sure anaconda is activated 7 | source $HOME/miniconda3/bin/activate 8 | conda activate haddock3 9 | 10 | # go to the example directory 11 | cd $HOME/haddock3/examples/docking-antibody-antigen 12 | 13 | # execute 14 | haddock3 docking-antibody-antigen-ranairCDR-full-mpi.cfg 15 | -------------------------------------------------------------------------------- /examples/docking-multiple-ambig/data/ambig.tbl.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/examples/docking-multiple-ambig/data/ambig.tbl.tgz -------------------------------------------------------------------------------- /examples/docking-multiple-ambig/data/unambig.tbl: -------------------------------------------------------------------------------- 1 | assign (segid A and resi 130 and name CA) (segid A and resi 451 and name CA) 27.893 0.0 0.0 2 | assign (segid A and resi 84 and name CA) (segid A and resi 464 and name CA) 35.336 0.0 0.0 3 | assign (segid B and resi 122 and name CA) (segid B and resi 284 and name CA) 42.888 0.0 0.0 4 | assign (segid B and resi 74 and name CA) (segid B and resi 290 and name CA) 8.980 0.0 0.0 5 | -------------------------------------------------------------------------------- /examples/docking-multiple-ambig/docking-multiple-tbls-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Protein-protein docking example with multiple arctic3d-derived 3 | # ambiguous interaction restraints 4 | 5 | # directory in which the docking will be done 6 | run_dir = "run1-multiple-ambig-test" 7 | 8 | # compute mode 9 | mode = "local" 10 | ncores = 40 11 | 12 | # molecules to be docked 13 | molecules = [ 14 | "data/P23371-3owg.pdb", 15 | "data/P07617-1vpt.pdb" 16 | ] 17 | 18 | # ==================================================================== 19 | [topoaa] 20 | autohis=true 21 | 22 | [rigidbody] 23 | tolerance = 20 24 | sampling = 18 25 | unambig_fname="data/unambig.tbl" 26 | ambig_fname="data/ambig.tbl.tgz" 27 | 28 | [caprieval] 29 | reference_fname = "data/2gaf_target.pdb" 30 | 31 | [flexref] 32 | tolerance = 20 33 | unambig_fname="data/unambig.tbl" 34 | # use previous restraint file 35 | previous_ambig = true 36 | 37 | [caprieval] 38 | reference_fname = "data/2gaf_target.pdb" 39 | 40 | [emref] 41 | unambig_fname="data/unambig.tbl" 42 | # use previous restraint file 43 | previous_ambig = true 44 | 45 | [caprieval] 46 | reference_fname = "data/2gaf_target.pdb" 47 | 48 | [clustfcc] 49 | min_population = 1 50 | 51 | [seletopclusts] 52 | 53 | [caprieval] 54 | reference_fname = "data/2gaf_target.pdb" 55 | 56 | # ==================================================================== 57 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/data/7tgfB_mix.tbl.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/examples/docking-nanobody-antigen/data/7tgfB_mix.tbl.tgz -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-CDR-loose-epi-full.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with loose epitope definition 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-CDR-loose-full" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # CDR to loose epitope ambig restraints 26 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 27 | tolerance = 5 28 | 29 | [caprieval] 30 | reference_fname = "data/7tgfB_ref.pdb" 31 | 32 | [seletop] 33 | select = 200 34 | 35 | [caprieval] 36 | reference_fname = "data/7tgfB_ref.pdb" 37 | 38 | [flexref] 39 | tolerance = 10 40 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 41 | 42 | [caprieval] 43 | reference_fname = "data/7tgfB_ref.pdb" 44 | 45 | [emref] 46 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 47 | 48 | [caprieval] 49 | reference_fname = "data/7tgfB_ref.pdb" 50 | 51 | [clustfcc] 52 | 53 | [seletopclusts] 54 | top_models = 4 55 | 56 | [caprieval] 57 | reference_fname = "data/7tgfB_ref.pdb" 58 | 59 | # ==================================================================== 60 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-CDR-loose-epi-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with loose epitope definition 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-CDR-loose-test" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # CDR to loose epitope ambig restraints 26 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 27 | tolerance = 5 28 | sampling = 40 29 | 30 | [caprieval] 31 | reference_fname = "data/7tgfB_ref.pdb" 32 | 33 | [seletop] 34 | select = 10 35 | 36 | [caprieval] 37 | reference_fname = "data/7tgfB_ref.pdb" 38 | 39 | [flexref] 40 | tolerance = 10 41 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 42 | 43 | [caprieval] 44 | reference_fname = "data/7tgfB_ref.pdb" 45 | 46 | [emref] 47 | ambig_fname = "data/7tgfB_loose_ambig.tbl" 48 | 49 | [caprieval] 50 | reference_fname = "data/7tgfB_ref.pdb" 51 | 52 | [clustfcc] 53 | min_population = 1 54 | 55 | [seletopclusts] 56 | top_models = 4 57 | 58 | [caprieval] 59 | reference_fname = "data/7tgfB_ref.pdb" 60 | 61 | # ==================================================================== 62 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-CDR-mutagenesis-epi-full.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with true paratope and epitope definition 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-CDR-mutagenesis-epi-full" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # CDR to mutagenesis-mapped epitope ambig restraints 26 | ambig_fname = "data/7tgfB_twohit_ambig.tbl" 27 | tolerance = 5 28 | 29 | [caprieval] 30 | reference_fname = "data/7tgfB_ref.pdb" 31 | 32 | [seletop] 33 | select = 200 34 | 35 | [caprieval] 36 | reference_fname = "data/7tgfB_ref.pdb" 37 | 38 | [flexref] 39 | tolerance = 10 40 | ambig_fname = "data/7tgfB_twohit_ambig.tbl" 41 | 42 | [caprieval] 43 | reference_fname = "data/7tgfB_ref.pdb" 44 | 45 | [emref] 46 | ambig_fname = "data/7tgfB_twohit_ambig.tbl" 47 | 48 | [caprieval] 49 | reference_fname = "data/7tgfB_ref.pdb" 50 | 51 | [clustfcc] 52 | 53 | [seletopclusts] 54 | top_models = 4 55 | 56 | [caprieval] 57 | reference_fname = "data/7tgfB_ref.pdb" 58 | 59 | # ==================================================================== 60 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-Para-Epi-full.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with true paratope and epitope definition 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-Para-Epi-full" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # paratope to epitope ambig restraints 26 | ambig_fname = "data/7tgfB_real_ambig.tbl" 27 | tolerance = 5 28 | 29 | [caprieval] 30 | reference_fname = "data/7tgfB_ref.pdb" 31 | 32 | [seletop] 33 | select = 200 34 | 35 | [caprieval] 36 | reference_fname = "data/7tgfB_ref.pdb" 37 | 38 | [flexref] 39 | tolerance = 10 40 | ambig_fname = "data/7tgfB_real_ambig.tbl" 41 | 42 | [caprieval] 43 | reference_fname = "data/7tgfB_ref.pdb" 44 | 45 | [emref] 46 | ambig_fname = "data/7tgfB_real_ambig.tbl" 47 | 48 | [caprieval] 49 | reference_fname = "data/7tgfB_ref.pdb" 50 | 51 | [clustfcc] 52 | 53 | [seletopclusts] 54 | top_models = 4 55 | 56 | [caprieval] 57 | reference_fname = "data/7tgfB_ref.pdb" 58 | 59 | # ==================================================================== 60 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-Para-Epi-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with true paratope and epitope definition 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-Para-Epi-test" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # paratope to epitope ambig restraints 26 | ambig_fname = "data/7tgfB_real_ambig.tbl" 27 | tolerance = 5 28 | sampling = 40 29 | 30 | [caprieval] 31 | reference_fname = "data/7tgfB_ref.pdb" 32 | 33 | [seletop] 34 | select = 10 35 | 36 | [caprieval] 37 | reference_fname = "data/7tgfB_ref.pdb" 38 | 39 | [flexref] 40 | tolerance = 10 41 | ambig_fname = "data/7tgfB_real_ambig.tbl" 42 | 43 | [caprieval] 44 | reference_fname = "data/7tgfB_ref.pdb" 45 | 46 | [emref] 47 | ambig_fname = "data/7tgfB_real_ambig.tbl" 48 | 49 | [caprieval] 50 | reference_fname = "data/7tgfB_ref.pdb" 51 | 52 | [clustfcc] 53 | min_population = 1 54 | 55 | [seletopclusts] 56 | top_models = 4 57 | 58 | [caprieval] 59 | reference_fname = "data/7tgfB_ref.pdb" 60 | 61 | # ==================================================================== 62 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-mix-loose-epi-full.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with loose epitope definition and mixed nanobody restraints 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-CDR-mix-loose-full" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # mixed nanobody (CDR & H3+H1-H2-FR bubbles) to loose epitope ambig restraints 26 | ambig_fname = "data/7tgfB_mix.tbl.tgz" 27 | tolerance = 5 28 | 29 | [caprieval] 30 | reference_fname = "data/7tgfB_ref.pdb" 31 | 32 | [seletop] 33 | select = 200 34 | 35 | [caprieval] 36 | reference_fname = "data/7tgfB_ref.pdb" 37 | 38 | [flexref] 39 | tolerance = 10 40 | # use previously defined ambiguous restraints 41 | previous_ambig = true 42 | 43 | [caprieval] 44 | reference_fname = "data/7tgfB_ref.pdb" 45 | 46 | [emref] 47 | previous_ambig = true 48 | 49 | [caprieval] 50 | reference_fname = "data/7tgfB_ref.pdb" 51 | 52 | [clustfcc] 53 | 54 | [seletopclusts] 55 | top_models = 4 56 | 57 | [caprieval] 58 | reference_fname = "data/7tgfB_ref.pdb" 59 | -------------------------------------------------------------------------------- /examples/docking-nanobody-antigen/docking-nanobody-antigen-mix-loose-epi-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Nanobody-antigen ensemble docking example 3 | # with loose epitope definition and mixed nanobody restraints 4 | # ==================================================================== 5 | 6 | # directory in which the results will be stored 7 | run_dir = "run1-CDR-mix-loose-test" 8 | 9 | # execution mode 10 | mode = "local" 11 | ncores = 40 12 | 13 | # molecules to be docked 14 | molecules = [ 15 | "data/7tgfB-nb_ens.pdb", 16 | "data/7y07_l_u.pdb", 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below, prefer full paths 21 | # ==================================================================== 22 | [topoaa] 23 | 24 | [rigidbody] 25 | # mixed nanobody (CDR & H3+H1-H2-FR bubbles) to loose epitope ambig restraints 26 | ambig_fname = "data/7tgfB_mix.tbl.tgz" 27 | tolerance = 5 28 | sampling = 40 29 | 30 | [caprieval] 31 | reference_fname = "data/7tgfB_ref.pdb" 32 | 33 | [seletop] 34 | select = 10 35 | 36 | [caprieval] 37 | reference_fname = "data/7tgfB_ref.pdb" 38 | 39 | [flexref] 40 | tolerance = 10 41 | # use previously defined ambiguous restraints 42 | previous_ambig = true 43 | 44 | [caprieval] 45 | reference_fname = "data/7tgfB_ref.pdb" 46 | 47 | [emref] 48 | previous_ambig = true 49 | 50 | [caprieval] 51 | reference_fname = "data/7tgfB_ref.pdb" 52 | 53 | [clustfcc] 54 | min_population = 1 55 | 56 | [seletopclusts] 57 | top_models = 4 58 | 59 | [caprieval] 60 | reference_fname = "data/7tgfB_ref.pdb" 61 | -------------------------------------------------------------------------------- /examples/docking-protein-ligand/data/ambig-passive.tbl: -------------------------------------------------------------------------------- 1 | ! HADDOCK AIR restraints 2 | ! HADDOCK AIR restraints for 1st selection 3 | ! 4 | 5 | ! HADDOCK AIR restraints for 2nd selection 6 | ! 7 | assign ( resid 500 and segid B) 8 | ( 9 | ( resid 151 and segid A) 10 | or 11 | ( resid 152 and segid A) 12 | or 13 | ( resid 348 and segid A) 14 | or 15 | ( resid 276 and segid A) 16 | or 17 | ( resid 156 and segid A) 18 | or 19 | ( resid 292 and segid A) 20 | or 21 | ( resid 277 and segid A) 22 | or 23 | ( resid 222 and segid A) 24 | or 25 | ( resid 371 and segid A) 26 | or 27 | ( resid 246 and segid A) 28 | or 29 | ( resid 406 and segid A) 30 | or 31 | ( resid 179 and segid A) 32 | or 33 | ( resid 178 and segid A) 34 | or 35 | ( resid 227 and segid A) 36 | or 37 | ( resid 294 and segid A) 38 | or 39 | ( resid 224 and segid A) 40 | or 41 | ( resid 119 and segid A) 42 | or 43 | ( resid 118 and segid A) 44 | ) 2.0 2.0 0.0 45 | 46 | 47 | ! HADDOCK AIR restraints for 3rd selection 48 | ! 49 | 50 | ! HADDOCK AIR restraints for 4th selection 51 | ! 52 | 53 | ! HADDOCK AIR restraints for 5th selection 54 | ! 55 | 56 | ! HADDOCK AIR restraints for 6th selection 57 | ! 58 | 59 | 60 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-exit-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Protein-protein docking example with NMR-derived ambiguous interaction restraints 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-exit-test" 6 | 7 | # execution mode 8 | mode = "local" 9 | ncores = 40 10 | 11 | # molecules to be docked 12 | molecules = [ 13 | "data/e2aP_1F3G.pdb", 14 | "data/hpr_ensemble.pdb" 15 | ] 16 | 17 | # ==================================================================== 18 | # Parameters for each stage are defined below, prefer full paths 19 | # ==================================================================== 20 | [topoaa] 21 | autohis = false 22 | [topoaa.mol1] 23 | nhisd = 0 24 | nhise = 1 25 | hise_1 = 75 26 | [topoaa.mol2] 27 | nhisd = 1 28 | hisd_1 = 76 29 | nhise = 1 30 | hise_1 = 15 31 | 32 | [rigidbody] 33 | tolerance = 20 34 | ambig_fname = "data/e2a-hpr_air.tbl" 35 | sampling = 20 36 | 37 | [exit] 38 | 39 | [caprieval] 40 | reference_fname = "data/e2a-hpr_1GGR.pdb" 41 | 42 | [seletop] 43 | select = 5 44 | 45 | [flexref] 46 | tolerance = 20 47 | ambig_fname = "data/e2a-hpr_air.tbl" 48 | 49 | [caprieval] 50 | reference_fname = "data/e2a-hpr_1GGR.pdb" 51 | 52 | [emref] 53 | tolerance = 20 54 | ambig_fname = "data/e2a-hpr_air.tbl" 55 | 56 | [clustfcc] 57 | min_population = 1 58 | 59 | [seletopclusts] 60 | top_models = 4 61 | 62 | [caprieval] 63 | reference_fname = "data/e2a-hpr_1GGR.pdb" 64 | 65 | # ==================================================================== 66 | 67 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-extend-run-exit-test.cfg: -------------------------------------------------------------------------------- 1 | # how to reproduce manually 2 | # haddock3 docking-protein-protein-test.cfg 3 | # haddock3-copy -r run1-test -m 0 4 -o run2 4 | # haddock3 docking-extend-run-exit-test.cfg --extend-run run2 5 | # ==================================================================== 6 | 7 | [exit] 8 | 9 | # ==================================================================== 10 | 11 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-extend-run-test.cfg: -------------------------------------------------------------------------------- 1 | # how to reproduce manually 2 | # haddock3-copy -r run1-test -m 0 4 -o run1-extended-test 3 | # haddock3 docking-extend-run-test.cfg --extend-run run1-extended-test 4 | # ==================================================================== 5 | 6 | [caprieval] 7 | reference_fname = "data/e2a-hpr_1GGR.pdb" 8 | 9 | [emref] 10 | tolerance = 20 11 | ambig_fname = "data/e2a-hpr_air.tbl" 12 | 13 | [caprieval] 14 | reference_fname = "data/e2a-hpr_1GGR.pdb" 15 | 16 | # ==================================================================== 17 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-protein-protein-mdref-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Protein-protein docking example with NMR-derived ambiguous interaction restraints 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-mdref-test" 6 | 7 | # execution mode 8 | mode = "local" 9 | ncores = 40 10 | 11 | # molecules to be docked 12 | molecules = [ 13 | "data/e2aP_1F3G.pdb", 14 | "data/hpr_ensemble.pdb" 15 | ] 16 | 17 | # ==================================================================== 18 | # Parameters for each stage are defined below, prefer full paths 19 | # ==================================================================== 20 | [topoaa] 21 | autohis = false 22 | [topoaa.mol1] 23 | nhisd = 0 24 | nhise = 1 25 | hise_1 = 75 26 | [topoaa.mol2] 27 | nhisd = 1 28 | hisd_1 = 76 29 | nhise = 1 30 | hise_1 = 15 31 | 32 | [rigidbody] 33 | tolerance = 20 34 | ambig_fname = "data/e2a-hpr_air.tbl" 35 | sampling = 20 36 | 37 | [caprieval] 38 | reference_fname = "data/e2a-hpr_1GGR.pdb" 39 | 40 | [seletop] 41 | select = 5 42 | 43 | [flexref] 44 | tolerance = 20 45 | ambig_fname = "data/e2a-hpr_air.tbl" 46 | 47 | [caprieval] 48 | reference_fname = "data/e2a-hpr_1GGR.pdb" 49 | 50 | [mdref] 51 | tolerance = 20 52 | ambig_fname = "data/e2a-hpr_air.tbl" 53 | 54 | [clustfcc] 55 | min_population = 1 56 | 57 | [seletopclusts] 58 | top_models = 4 59 | 60 | [caprieval] 61 | reference_fname = "data/e2a-hpr_1GGR.pdb" 62 | 63 | # ==================================================================== 64 | 65 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-protein-protein-mpi.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Protein-protein docking example with NMR-derived ambiguous interaction restraints 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-full-mpi" 6 | 7 | # execution mode 8 | mode = "mpi" 9 | # 2 nodes x 96 tasks = ncores = 192 10 | ncores = 192 11 | 12 | # molecules to be docked 13 | molecules = [ 14 | "data/e2aP_1F3G.pdb", 15 | "data/hpr_ensemble.pdb" 16 | ] 17 | 18 | # ==================================================================== 19 | # Parameters for each stage are defined below, prefer full paths 20 | # ==================================================================== 21 | [topoaa] 22 | autohis = false 23 | [topoaa.mol1] 24 | nhisd = 0 25 | nhise = 1 26 | hise_1 = 75 27 | [topoaa.mol2] 28 | nhisd = 1 29 | hisd_1 = 76 30 | nhise = 1 31 | hise_1 = 15 32 | 33 | [rigidbody] 34 | tolerance = 5 35 | ambig_fname = "data/e2a-hpr_air.tbl" 36 | sampling = 1000 37 | 38 | [caprieval] 39 | reference_fname = "data/e2a-hpr_1GGR.pdb" 40 | 41 | [seletop] 42 | select = 200 43 | 44 | [flexref] 45 | tolerance = 5 46 | ambig_fname = "data/e2a-hpr_air.tbl" 47 | 48 | [caprieval] 49 | reference_fname = "data/e2a-hpr_1GGR.pdb" 50 | 51 | [emref] 52 | tolerance = 5 53 | ambig_fname = "data/e2a-hpr_air.tbl" 54 | 55 | [caprieval] 56 | reference_fname = "data/e2a-hpr_1GGR.pdb" 57 | 58 | [clustfcc] 59 | min_population = 4 60 | 61 | [caprieval] 62 | reference_fname = "data/e2a-hpr_1GGR.pdb" 63 | 64 | # ==================================================================== 65 | 66 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-protein-protein-mpi.job: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #SBATCH --nodes=2 3 | #SBATCH --tasks-per-node=96 4 | #SBATCH -J haddock3mpi 5 | 6 | # make sure anaconda is activated 7 | source $HOME/miniconda3/bin/activate 8 | conda activate haddock3 9 | 10 | # go to the example directory 11 | cd $HOME/haddock3/examples/docking-protein-protein 12 | 13 | # execute 14 | haddock3 docking-protein-protein-mpi.cfg 15 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-protein-protein-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Protein-protein docking example with NMR-derived ambiguous interaction restraints 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-test" 6 | 7 | # execution mode 8 | mode = "local" 9 | ncores = 40 10 | 11 | # molecules to be docked 12 | molecules = [ 13 | "data/e2aP_1F3G.pdb", 14 | "data/hpr_ensemble.pdb" 15 | ] 16 | 17 | # ==================================================================== 18 | # Parameters for each stage are defined below, prefer full paths 19 | # ==================================================================== 20 | [topoaa] 21 | autohis = false 22 | [topoaa.mol1] 23 | nhisd = 0 24 | nhise = 1 25 | hise_1 = 75 26 | [topoaa.mol2] 27 | nhisd = 1 28 | hisd_1 = 76 29 | nhise = 1 30 | hise_1 = 15 31 | 32 | [rigidbody] 33 | tolerance = 20 34 | ambig_fname = "data/e2a-hpr_air.tbl" 35 | sampling = 20 36 | 37 | [caprieval] 38 | reference_fname = "data/e2a-hpr_1GGR.pdb" 39 | 40 | [seletop] 41 | select = 5 42 | 43 | [flexref] 44 | tolerance = 20 45 | ambig_fname = "data/e2a-hpr_air.tbl" 46 | 47 | [caprieval] 48 | reference_fname = "data/e2a-hpr_1GGR.pdb" 49 | 50 | [emref] 51 | tolerance = 20 52 | ambig_fname = "data/e2a-hpr_air.tbl" 53 | 54 | [clustfcc] 55 | min_population = 1 56 | 57 | [seletopclusts] 58 | top_models = 4 59 | 60 | [caprieval] 61 | reference_fname = "data/e2a-hpr_1GGR.pdb" 62 | 63 | # ==================================================================== 64 | 65 | -------------------------------------------------------------------------------- /examples/docking-protein-protein/docking-restart-exit-test.cfg: -------------------------------------------------------------------------------- 1 | # how to reproduce manually 2 | # haddock3 docking-protein-protein-test.cfg 3 | # cp -r run1-test run1-restart-exit-test 4 | # haddock3 docking-restart-exit-test.cfg --restart 3 5 | # ==================================================================== 6 | run_dir = "run1-restart-exit-test" 7 | 8 | # execution mode 9 | mode = "local" 10 | ncores = 40 11 | 12 | # molecules to be docked 13 | molecules = [ 14 | "data/e2aP_1F3G.pdb", 15 | "data/hpr_ensemble.pdb" 16 | ] 17 | 18 | # ==================================================================== 19 | [topoaa] 20 | autohis = false 21 | [topoaa.mol1] 22 | nhisd = 0 23 | nhise = 1 24 | hise_1 = 75 25 | [topoaa.mol2] 26 | nhisd = 1 27 | hisd_1 = 76 28 | nhise = 1 29 | hise_1 = 15 30 | 31 | [rigidbody] 32 | tolerance = 20 33 | ambig_fname = "data/e2a-hpr_air.tbl" 34 | sampling = 20 35 | 36 | [caprieval] 37 | reference_fname = "data/e2a-hpr_1GGR.pdb" 38 | 39 | [seletop] 40 | select = 5 41 | 42 | [exit] 43 | 44 | [flexref] 45 | tolerance = 20 46 | ambig_fname = "data/e2a-hpr_air.tbl" 47 | 48 | [caprieval] 49 | reference_fname = "data/e2a-hpr_1GGR.pdb" 50 | 51 | [emref] 52 | tolerance = 20 53 | ambig_fname = "data/e2a-hpr_air.tbl" 54 | 55 | [clustfcc] 56 | min_population = 1 57 | 58 | [seletopclusts] 59 | top_models = 4 60 | 61 | [caprieval] 62 | reference_fname = "data/e2a-hpr_1GGR.pdb" 63 | 64 | # ==================================================================== 65 | 66 | -------------------------------------------------------------------------------- /examples/docking-protein-surface/data/one_z_surface_selection.tbl: -------------------------------------------------------------------------------- 1 | ! z restraints for selection_1: 19,83,145,119,167 2 | assign (resid 19 and name CA and segid A) (name SHA and attr z lt 0.10) 8.0 8.0 0.0 3 | assign (resid 83 and name CA and segid A) (name SHA and attr z lt 0.10) 8.0 8.0 0.0 4 | assign (resid 145 and name CA and segid A) (name SHA and attr z lt 0.10) 8.0 8.0 0.0 5 | assign (resid 119 and name CA and segid A) (name SHA and attr z lt 0.10) 8.0 8.0 0.0 6 | assign (resid 167 and name CA and segid A) (name SHA and attr z lt 0.10) 8.0 8.0 0.0 -------------------------------------------------------------------------------- /examples/docking-protein-surface/data/protein_z_restraints.tbl: -------------------------------------------------------------------------------- 1 | ! z restraints for selection_1: 19,83,145,119,167 2 | assign (resid 19 and name CA and segid A) (name SHA and attr z gt 18.22) 8.0 8.0 0.0 3 | assign (resid 83 and name CA and segid A) (name SHA and attr z gt 18.22) 8.0 8.0 0.0 4 | assign (resid 145 and name CA and segid A) (name SHA and attr z gt 18.22) 8.0 8.0 0.0 5 | assign (resid 119 and name CA and segid A) (name SHA and attr z gt 18.22) 8.0 8.0 0.0 6 | assign (resid 167 and name CA and segid A) (name SHA and attr z gt 18.22) 8.0 8.0 0.0 7 | ! z restraints for selection_2: 98,101,126,129 8 | assign (resid 98 and name CA and segid A) (name SHA and attr z lt -18.22) 8.0 8.0 0.0 9 | assign (resid 101 and name CA and segid A) (name SHA and attr z lt -18.22) 8.0 8.0 0.0 10 | assign (resid 126 and name CA and segid A) (name SHA and attr z lt -18.22) 8.0 8.0 0.0 11 | assign (resid 129 and name CA and segid A) (name SHA and attr z lt -18.22) 8.0 8.0 0.0 -------------------------------------------------------------------------------- /examples/docking-protein-surface/data/protein_z_restraints_smallspacing.tbl: -------------------------------------------------------------------------------- 1 | ! z restraints for selection_1: 19,83,145,119,167 2 | assign (resid 19 and name CA and segid A) (name SHA and attr z gt 18.22) 2.0 2.0 0.0 3 | assign (resid 83 and name CA and segid A) (name SHA and attr z gt 18.22) 2.0 2.0 0.0 4 | assign (resid 145 and name CA and segid A) (name SHA and attr z gt 18.22) 2.0 2.0 0.0 5 | assign (resid 119 and name CA and segid A) (name SHA and attr z gt 18.22) 2.0 2.0 0.0 6 | assign (resid 167 and name CA and segid A) (name SHA and attr z gt 18.22) 2.0 2.0 0.0 7 | ! z restraints for selection_2: 98,101,126,129 8 | assign (resid 98 and name CA and segid A) (name SHA and attr z lt -18.22) 2.0 2.0 0.0 9 | assign (resid 101 and name CA and segid A) (name SHA and attr z lt -18.22) 2.0 2.0 0.0 10 | assign (resid 126 and name CA and segid A) (name SHA and attr z lt -18.22) 2.0 2.0 0.0 11 | assign (resid 129 and name CA and segid A) (name SHA and attr z lt -18.22) 2.0 2.0 0.0 -------------------------------------------------------------------------------- /examples/docking-protein-surface/docking-between-two-surfaces-smallspacing.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Docking between two surfaces with small spacing # 3 | # =====================================================================# 4 | run_dir = "run-z-2-surfaces-smallspacing-test" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/protein_z_restraints_smallspacing_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/protein_z_restraints_smallspacing.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/docking-protein-surface/docking-between-two-surfaces.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Example configuration file for docking a protein to two z-surfaces # 3 | # =====================================================================# 4 | run_dir = "run-z-2-surfaces-test" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/protein_z_restraints_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/protein_z_restraints.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/docking-protein-surface/docking-one-surface.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Docking of a protein on a surface with a single z-surface selection # 3 | # =====================================================================# 4 | run_dir = "run-z-1-surface-test" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/one_z_surface_selection_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/one_z_surface_selection.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# -------------------------------------------------------------------------------- /examples/docking-protein-surface/docking-three-surfaces.cfg: -------------------------------------------------------------------------------- 1 | # =====================================================================# 2 | # Example configuration file for docking a protein to three z-surfaces # 3 | # =====================================================================# 4 | run_dir = "run-z-3-surfaces-test" 5 | 6 | molecules = [ 7 | "data/protein.pdb", 8 | "data/three_z_restraints_beads.pdb" 9 | ] 10 | 11 | postprocess = false 12 | ncores = 20 13 | 14 | # =====================================================================# 15 | [topoaa] 16 | 17 | [rigidbody] 18 | sampling = 20 19 | 20 | ambig_fname = "data/three_z_restraints.tbl" # Define restraints to the z-surfaces 21 | randremoval = false 22 | mol_shape_2 = true # Define the beads as shape molecule 23 | mol_fix_origin_2 = true # Fix z-surfaces in their initial position 24 | 25 | # =====================================================================# 26 | -------------------------------------------------------------------------------- /examples/peptide-cyclisation/README.md: -------------------------------------------------------------------------------- 1 | ================================================== 2 | Peptide cyclisation protocol with HADDOCK3 3 | 4 | This example workflow will take a peptide 5 | and generate cyclised conformations in a two step 6 | process, first using distance restraints to bring the 7 | termini together, then rebuilding the topology to 8 | create the covalent cyclic bond and refining again. 9 | 50 clusters are generated and the best model of 10 | each is selected. 11 | 12 | Protocol described in: [https://doi.org/10.1021/acs.jctc.2c00075](https://doi.org/10.1021/acs.jctc.2c00075) 13 | 14 | ================================================== 15 | 16 | Two cyclic peptide examples are provided: 17 | 18 | 1) 1SFI, a 14 residue cyclic peptide with both backbone and disulphide bridge cyclisation 19 | 20 | 2) 3WNE, a 6 residue backbone cyclic peptide 21 | -------------------------------------------------------------------------------- /examples/peptide-cyclisation/data/1sfi_unambig.tbl: -------------------------------------------------------------------------------- 1 | assign (resid 1 and name N) (resid 14 and name C) 1.3 0.1 0.1 2 | assign (resid 1 and name N) (resid 14 and name O) 2.3 0.1 0.1 3 | assign (resid 3 and name CA) (resid 11 and name CA) 4.2 0.1 0.1 4 | assign (resid 3 and name SG) (resid 11 and name SG) 2.0 0.1 0.1 5 | -------------------------------------------------------------------------------- /examples/peptide-cyclisation/data/3wne_unambig.tbl: -------------------------------------------------------------------------------- 1 | assign (resid 1 and name N) (resid 6 and name C) 1.3 0.1 0.1 2 | assign (resid 1 and name N) (resid 6 and name O) 2.3 0.1 0.1 3 | -------------------------------------------------------------------------------- /examples/refine-complex/refine-complex-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Refinment of a complex example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-test" 6 | 7 | # execution mode 8 | mode = "local" 9 | ncores = 40 10 | 11 | # molecules to be refined (given as separate PDBs) 12 | molecules = [ 13 | "data/e2a-hpr_1GGR_A.pdb", 14 | "data/e2a-hpr_1GGR_B.pdb" 15 | ] 16 | 17 | # ==================================================================== 18 | # Parameters for each stage are defined below, prefer full paths 19 | # ==================================================================== 20 | [topoaa] 21 | autohis = false 22 | [topoaa.mol1] 23 | nhisd = 0 24 | nhise = 1 25 | hise_1 = 75 26 | [topoaa.mol2] 27 | nhisd = 1 28 | hisd_1 = 76 29 | nhise = 1 30 | hise_1 = 15 31 | 32 | [mdref] 33 | tolerance = 5 34 | sampling_factor = 10 35 | 36 | [caprieval] 37 | reference_fname = "data/e2a-hpr_1GGR.pdb" 38 | 39 | # ==================================================================== 40 | 41 | -------------------------------------------------------------------------------- /examples/scoring/capri-scoring-test.cfg: -------------------------------------------------------------------------------- 1 | # =================================================================================== 2 | # CAPRI Scoring example 3 | # =================================================================================== 4 | # The Critical Assessment of PRedicted Interactions (CAPRI) experiment 5 | # aims to do test methods that model macromolecular interactions in 6 | # blind predictions based on the three-dimensional structures of proteins. 7 | # For more information, please visit: https://www.ebi.ac.uk/pdbe/complex-pred/capri/ 8 | # =================================================================================== 9 | run_dir = "capriscoring-test" 10 | 11 | # execution mode 12 | ncores = 40 13 | mode = "local" 14 | 15 | # molecules to be scored (an ensemble PBD) 16 | molecules = "data/T161-rescoring-ens.pdb" 17 | 18 | # =================================================================================== 19 | [topoaa] 20 | 21 | [emscoring] 22 | 23 | [clustfcc] 24 | min_population = 2 25 | 26 | [seletopclusts] 27 | top_clusters = 1 28 | top_models = 2 29 | 30 | [mdscoring] 31 | per_interface_scoring = true 32 | 33 | [clustfcc] 34 | min_population = 2 35 | 36 | [seletopclusts] 37 | 38 | [caprieval] 39 | 40 | # =================================================================================== 41 | -------------------------------------------------------------------------------- /examples/scoring/emscoring-mdscoring-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Scoring example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-emscoring-mdscoring-test" 6 | 7 | # execution mode 8 | ncores = 40 9 | mode = "local" 10 | 11 | # ensemble to be scored 12 | molecules = ["data/T161-rescoring-ens.pdb", 13 | "data/protein-dna_1w.pdb", 14 | "data/protein-protein_1w.pdb", 15 | "data/protein-protein_2w.pdb", 16 | "data/protein-trimer_1w.pdb" 17 | ] 18 | 19 | 20 | # ==================================================================== 21 | # Parameters for each stage are defined below 22 | 23 | [topoaa] 24 | autohis = true 25 | 26 | [emscoring] 27 | tolerance = 20 28 | per_interface_scoring = true 29 | 30 | [mdscoring] 31 | per_interface_scoring = true 32 | 33 | [caprieval] 34 | 35 | # ==================================================================== 36 | -------------------------------------------------------------------------------- /examples/scoring/emscoring-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Scoring example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-test" 6 | 7 | # execution mode 8 | ncores = 40 9 | mode = "local" 10 | 11 | # ensemble of different complexes to be scored 12 | molecules = ["data/T161-rescoring-ens.pdb", 13 | "data/protein-dna_1w.pdb", 14 | "data/protein-protein_1w.pdb", 15 | "data/protein-protein_2w.pdb", 16 | "data/protein-trimer_1w.pdb", 17 | "data/HY3.pdb", 18 | "data/AF2-model.pdb" 19 | ] 20 | 21 | # ==================================================================== 22 | # Parameters for each stage are defined below 23 | 24 | [topoaa] 25 | set_bfactor = false 26 | 27 | [emscoring] 28 | tolerance = 20 29 | per_interface_scoring = true 30 | 31 | 32 | # ==================================================================== 33 | -------------------------------------------------------------------------------- /examples/scoring/mdscoring-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Scoring example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-mdscoring-test" 6 | 7 | # execution mode 8 | ncores = 40 9 | mode = "local" 10 | 11 | # ensemble of different complexes to be scored 12 | molecules = ["data/T161-rescoring-ens.pdb", 13 | "data/protein-dna_1w.pdb", 14 | "data/protein-protein_1w.pdb", 15 | "data/protein-protein_2w.pdb", 16 | "data/protein-trimer_1w.pdb" 17 | ] 18 | 19 | # ==================================================================== 20 | # Parameters for each stage are defined below 21 | 22 | [topoaa] 23 | 24 | [mdscoring] 25 | tolerance = 20 26 | contactairs = true 27 | ssdihed = "alphabeta" 28 | dnarest_on = true 29 | per_interface_scoring = true 30 | 31 | [caprieval] 32 | 33 | # ==================================================================== 34 | -------------------------------------------------------------------------------- /examples/scoring/prodigy-antibody-antigen-test.cfg: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Example workflow using the prodigy protein module to score complexes # 3 | ######################################################################## 4 | 5 | run_dir = "run-prodigy-antibody-antigen" 6 | molecules = "data/4g6m_nowater.pdb" 7 | 8 | ######################################################################## 9 | 10 | [topoaa] 11 | 12 | [prodigyprotein] 13 | # Predicts binding affinity between antibody and antigen 14 | # Antibody is composed of chain H and L, that are therefore combined together 15 | # as a single entry using a comma between them. 16 | chains = ["H,L", "A"] 17 | 18 | [prodigyprotein] 19 | # Predicts contribution of antibody Heavy-chain and antigen 20 | chains = ["H", "A"] 21 | 22 | [prodigyprotein] 23 | # Predicts contribution of antibody Light-chain and antigen 24 | chains = ["L", "A"] 25 | 26 | ######################################################################## 27 | -------------------------------------------------------------------------------- /examples/scoring/prodigy-protein-ligand-test.cfg: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | # Example workflow using the prodigy ligand module to score a complex # 3 | ####################################################################### 4 | 5 | run_dir = "run-prodigy-lig" 6 | molecules = "data/prot-lig.pdb" # input a protein-ligand complex 7 | 8 | ####################################################################### 9 | 10 | [topoaa] 11 | ligand_param_fname = "data/ligand-prodrg.param" 12 | ligand_top_fname = "data/ligand-prodrg.top" 13 | delenph = false 14 | 15 | [prodigyligand] 16 | receptor_chain = "A" 17 | ligand_chain = "B" 18 | ligand_resname = "G39" 19 | 20 | [emref] 21 | ligand_param_fname = "data/ligand-prodrg.param" 22 | ligand_top_fname = "data/ligand-prodrg.top" 23 | 24 | [prodigyligand] 25 | receptor_chain = "A" 26 | ligand_chain = "B" 27 | ligand_resname = "G39" 28 | 29 | ####################################################################### 30 | -------------------------------------------------------------------------------- /examples/scoring/prodigy-protein-protein-test.cfg: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Example workflow using the prodigy protein module to score complexes # 3 | ######################################################################## 4 | 5 | run_dir = "run-prodigy-prot-prot" 6 | molecules = ["data/prot-prot.pdb"] 7 | 8 | ######################################################################## 9 | 10 | [topoaa] 11 | 12 | [prodigyprotein] 13 | # Converts results to pKd 14 | to_pkd = true 15 | 16 | 17 | ######################################################################## 18 | -------------------------------------------------------------------------------- /examples/scoring/sasascore-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # Sasascore scoring example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-sasascore-test" 6 | 7 | # execution mode 8 | ncores = 5 9 | mode = "local" 10 | 11 | # ensemble of different complexes to be scored 12 | # they are quite similar, but some knowledge about the residues that are 13 | # buried or accessible could be useful to discriminate between them 14 | molecules = "data/T161-rescoring-ens.pdb" 15 | 16 | # ==================================================================== 17 | # Parameters for each stage are defined below 18 | [topoaa] 19 | 20 | # emscoring round to calculate the scores and declash the structures 21 | [emscoring] 22 | 23 | [sasascore] 24 | resdic_accessible_A = [256] 25 | resdic_buried_A = [146,241] 26 | resdic_accessible_B = [256] 27 | resdic_buried_B = [146,241] 28 | 29 | [caprieval] 30 | 31 | # selecting the model that satisfies the most accessibility constraints 32 | [seletop] 33 | select=1 -------------------------------------------------------------------------------- /examples/thirdparty/lightdock/lightdock.cfg: -------------------------------------------------------------------------------- 1 | # Recipe: LightDock integration with HADDOCK scoring 2 | 3 | # A recipe is composed by different stages which are executed in 4 | 5 | molecules = "../../data/2oob.pdb" 6 | run_dir = "run1" 7 | 8 | #####################################################################-1 9 | [topoaa] 10 | autohis = true 11 | 12 | #####################################################################-2 13 | [lightdock] 14 | receptor_chains = "A" 15 | ligand_chains = "B" 16 | scoring = "fastdfire" 17 | swarms = 8 18 | steps = 10 19 | glowworms = 20 20 | top = 10 21 | noxt = true 22 | noh = true 23 | ncores=20 24 | 25 | [emscoring] 26 | -------------------------------------------------------------------------------- /examples/thirdparty/openmm/openmm-complex-refinement.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # protein-peptide OpenMM example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-omm-complex-test" 6 | ncores = 40 7 | 8 | # molecules to be simulated. 9 | molecules = [ 10 | "data/1NX1_protein.pdb", 11 | "data/DAIDALSSDFT_alpha.pdb" 12 | ] 13 | 14 | # ==================================================================== 15 | # Parameters for each stage are defined below, prefer full paths 16 | # ==================================================================== 17 | [topoaa] 18 | #tolerance = 20 19 | autohis = false 20 | [topoaa.mol1] 21 | nhisd = 2 22 | hisd_1 = 36 23 | hisd_2 = 109 24 | nhise = 1 25 | hise_1 = 113 26 | 27 | [rigidbody] 28 | ambig_fname="./data/ambig.tbl" 29 | sampling=5 30 | 31 | [caprieval] 32 | reference_fname = "data/1nx1_refe.pdb" 33 | 34 | [openmm] 35 | forcefield = 'amber14-all.xml' 36 | explicit_solvent_model = 'amber14/tip3p.xml' 37 | timestep_ps = 0.002 38 | constraints = 'HBonds' 39 | equilibration_timesteps = 1000 40 | simulation_timesteps = 1000 41 | 42 | [topoaa] 43 | 44 | [caprieval] 45 | reference_fname = "data/1nx1_refe.pdb" 46 | # ==================================================================== 47 | 48 | -------------------------------------------------------------------------------- /examples/thirdparty/openmm/openmm-implicit-solvent-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # protein-peptide OpenMM example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-omm-implicit-test" 6 | ncores = 40 7 | 8 | # molecules to be simulated. 9 | molecules = [ 10 | "data/DAIDALSSDFT_alpha.pdb" 11 | ] 12 | 13 | # ==================================================================== 14 | # Parameters for each stage are defined below, prefer full paths 15 | # ==================================================================== 16 | [topoaa] 17 | autohis = false 18 | [topoaa.mol1] 19 | nhisd = 2 20 | hisd_1 = 36 21 | hisd_2 = 109 22 | nhise = 1 23 | hise_1 = 113 24 | 25 | [openmm] 26 | forcefield = 'amber14-all.xml' 27 | implicit_solvent = true 28 | implicit_solvent_model = 'implicit/obc1.xml' 29 | timestep_ps = 0.002 30 | constraints = 'HBonds' 31 | equilibration_timesteps = 100 32 | simulation_timesteps = 200 33 | 34 | # ==================================================================== 35 | 36 | -------------------------------------------------------------------------------- /examples/thirdparty/openmm/openmm-test.cfg: -------------------------------------------------------------------------------- 1 | # ==================================================================== 2 | # protein-peptide OpenMM example 3 | 4 | # directory in which the scoring will be done 5 | run_dir = "run1-omm-test" 6 | ncores = 40 7 | 8 | # molecules to be simulated. 9 | molecules = [ 10 | "data/DAIDALSSDFT_alpha.pdb" 11 | ] 12 | 13 | # ==================================================================== 14 | # Parameters for each stage are defined below, prefer full paths 15 | # ==================================================================== 16 | [topoaa] 17 | #tolerance = 20 18 | autohis = false 19 | [topoaa.mol1] 20 | nhisd = 2 21 | hisd_1 = 36 22 | hisd_2 = 109 23 | nhise = 1 24 | hise_1 = 113 25 | 26 | [openmm] 27 | forcefield = 'amber14-all.xml' 28 | explicit_solvent_model = 'amber14/tip3p.xml' 29 | timestep_ps = 0.002 30 | constraints = 'HBonds' 31 | solv_eq_timesteps = 100 # default is 500 32 | equilibration_timesteps = 100 # default is 2000 33 | simulation_timesteps = 200 # default is 2000 34 | 35 | # ==================================================================== 36 | 37 | -------------------------------------------------------------------------------- /integration_tests/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | import pytest 5 | 6 | if "CNS_EXEC" in os.environ: 7 | CNS_EXEC = os.environ["CNS_EXEC"] 8 | else: 9 | CNS_EXEC = None 10 | 11 | 12 | DATA_DIR = Path(Path(__file__).parent.parent / "examples") 13 | 14 | has_cns = pytest.mark.skipif( 15 | CNS_EXEC is None, reason="CNS_EXEC environment variable not set" 16 | ) 17 | 18 | tests_path = Path(__file__).resolve().parents[0] 19 | GOLDEN_DATA = Path(tests_path, "golden_data") 20 | -------------------------------------------------------------------------------- /integration_tests/conftest.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import pytest 4 | 5 | from haddock.modules.analysis.caprieval.capri import load_contacts 6 | from haddock.libs.libontology import PDBFile 7 | 8 | 9 | def calc_fnat_with_caprieval(model: Path, native: Path) -> float: 10 | model_pdb = PDBFile(model) 11 | native_pdb = PDBFile(native) 12 | 13 | model_contacts = load_contacts(model_pdb) 14 | native_contacts = load_contacts(native_pdb) 15 | 16 | intersection = native_contacts & model_contacts 17 | 18 | fnat = len(intersection) / float(len(model_contacts)) 19 | 20 | return fnat 21 | 22 | 23 | @pytest.fixture 24 | def calc_fnat(): 25 | return calc_fnat_with_caprieval 26 | -------------------------------------------------------------------------------- /integration_tests/golden_data/workflow.cfg: -------------------------------------------------------------------------------- 1 | run_dir = "run" 2 | molecules = [ 3 | "prot.pdb", 4 | "cyclic-peptide.pdb" 5 | ] 6 | [topoaa] 7 | [rigidbody] 8 | sampling=4 9 | cmrest=True 10 | [clustfcc] 11 | min_population=1 12 | [caprieval] -------------------------------------------------------------------------------- /src/haddock/__init__.py: -------------------------------------------------------------------------------- 1 | """HADDOCK3 library.""" 2 | import logging 3 | import sys 4 | from pathlib import Path 5 | from importlib.metadata import version as package_version 6 | 7 | log = logging.getLogger(__name__) 8 | log.handlers.clear() 9 | log.setLevel(logging.DEBUG) 10 | handler = logging.StreamHandler(sys.stdout) 11 | handler.setFormatter(logging.Formatter( 12 | "[%(asctime)s %(module)s %(levelname)s] %(message)s")) 13 | log.addHandler(handler) 14 | 15 | haddock3_source_path = Path(__file__).resolve().parent 16 | haddock3_repository_path = haddock3_source_path.parents[1] 17 | core_path = Path(haddock3_source_path, "core") 18 | toppar_path = Path(haddock3_source_path, "cns", "toppar") 19 | modules_defaults_path = Path(haddock3_source_path, "modules", "defaults.yaml") 20 | 21 | FCC_path = Path(haddock3_source_path.parent, 'fcc') 22 | RMSD_path = Path(haddock3_source_path.parent, 'fast-rmsdmatrix') 23 | 24 | config_expert_levels = ("easy", "expert", "guru") 25 | # yaml parameters with this `explevel` should be ignored when reading the yaml 26 | _hidden_level = "hidden" 27 | 28 | 29 | class EmptyPath: 30 | """Define the type EmptyPath.""" 31 | 32 | def __str__(self) -> str: 33 | return "" 34 | 35 | def __repr__(self) -> str: 36 | return "" 37 | 38 | def __bool__(self) -> bool: 39 | return False 40 | 41 | 42 | # version 43 | version = package_version("haddock3") 44 | 45 | v_major, v_minor, v_patch = version.split('.') 46 | 47 | contact_us = 'https://github.com/haddocking/haddock3/issues' 48 | -------------------------------------------------------------------------------- /src/haddock/clis/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Command-line interfaces. 3 | 4 | HADDOCK3 has a series of command-line interfaces (CLIs), from which the most important 5 | one is ``haddock3``. You can ask help to the CLIs with the ``-h`` flag:: 6 | 7 | haddock3 -h 8 | """ 9 | -------------------------------------------------------------------------------- /src/haddock/clis/re/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/haddock/clis/restraints/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/src/haddock/clis/restraints/__init__.py -------------------------------------------------------------------------------- /src/haddock/cns/toppar/cofactors.pep: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/dna-rna-CG-MARTINI-2-1p-break.top: -------------------------------------------------------------------------------- 1 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 2 | set message=off echo=off end 3 | 4 | 5 | PRESidue DNCG 6 | ! patch for deletion of nucleic acid linkage 7 | ! that are too long to exist 8 | 9 | DELETE BOND +BB3 -BB1 10 | DELETE ANGLE -BB2 -BB3 +BB1 11 | DELETE ANGLE -BB3 +BB1 +BB2 12 | DELETE DIHEdral -BB1 -BB2 -BB3 +BB1 13 | DELETE DIHEdral -BB2 -BB3 +BB1 +BB2 14 | DELETE DIHEdral -BB3 +BB1 +BB2 +BB3 15 | DELETE ANGLE -SC1 -BB3 +BB1 16 | 17 | END {DNCG} 18 | 19 | set message=$old_message echo=$old_echo end 20 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/dna-rna-CG-MARTINI-2-1p.link: -------------------------------------------------------------------------------- 1 | remarks this is a macro to define cg nucleid acid links 2 | 3 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 4 | set message=off echo=off end 5 | 6 | checkversion 1.3 7 | 8 | link nuc head - DA tail + DA end 9 | link nuc head - DA tail + DC end 10 | link nuc head - DA tail + DG end 11 | link nuc head - DA tail + DT end 12 | 13 | link nuc head - DC tail + DA end 14 | link nuc head - DC tail + DC end 15 | link nuc head - DC tail + DG end 16 | link nuc head - DC tail + DT end 17 | 18 | link nuc head - DG tail + DA end 19 | link nuc head - DG tail + DC end 20 | link nuc head - DG tail + DG end 21 | link nuc head - DG tail + DT end 22 | 23 | link nuc head - DT tail + DA end 24 | link nuc head - DT tail + DC end 25 | link nuc head - DT tail + DG end 26 | link nuc head - DT tail + DT end 27 | 28 | link nuc head - A tail + A end 29 | link nuc head - A tail + C end 30 | link nuc head - A tail + G end 31 | link nuc head - A tail + U end 32 | 33 | link nuc head - C tail + A end 34 | link nuc head - C tail + C end 35 | link nuc head - C tail + G end 36 | link nuc head - C tail + U end 37 | 38 | link nuc head - G tail + A end 39 | link nuc head - G tail + C end 40 | link nuc head - G tail + G end 41 | link nuc head - G tail + U end 42 | 43 | link nuc head - U tail + A end 44 | link nuc head - U tail + C end 45 | link nuc head - U tail + G end 46 | link nuc head - U tail + U end 47 | 48 | set message=$old_message echo=$old_echo end 49 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/dna_break.top: -------------------------------------------------------------------------------- 1 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 2 | set message=off echo=off end 3 | 4 | PRESidue DNUC ! patch for deletion of nucleic acid linkage 5 | ! i.e. it deletes the link the previous RNA residue (-) with 6 | ! the current one (+) 7 | DELETE BOND -O3' +P 8 | DELETE ANGLE -C3' -O3' +P 9 | DELETE ANGLE -O3' +P +OP1 10 | DELETE ANGLE -O3' +P +O1P 11 | DELETE ANGLE -O3' +P +OP2 12 | DELETE ANGLE -O3' +P +O2P 13 | DELETE ANGLE -O3' +P +O5' 14 | 15 | END {DNUC} 16 | 17 | 18 | set message=$old_message echo=$old_echo end 19 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/hemes.pep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/src/haddock/cns/toppar/hemes.pep -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_0: -------------------------------------------------------------------------------- 1 | evaluate($x_1 = $spacing * 0.000000 ) 2 | evaluate($y_1 = $spacing * 0.000000 ) 3 | evaluate($z_1 = $spacing * 0.000000 ) 4 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_1: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 1.000000 ) 2 | evaluate($y_1 = $spacing * 0.000000 ) 3 | evaluate($z_1 = $spacing * 0.000000 ) 4 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_10: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.476658 ) 2 | evaluate($y_1 = $spacing * -0.874002 ) 3 | evaluate($z_1 = $spacing * -0.094435 ) 4 | evaluate ($x_2 = $spacing * -0.448934 ) 5 | evaluate($y_2 = $spacing * -0.776287 ) 6 | evaluate($z_2 = $spacing * 0.442534 ) 7 | evaluate ($x_3 = $spacing * -0.258662 ) 8 | evaluate($y_3 = $spacing * -0.537976 ) 9 | evaluate($z_3 = $spacing * -0.802294 ) 10 | evaluate ($x_4 = $spacing * 0.661654 ) 11 | evaluate($y_4 = $spacing * -0.200856 ) 12 | evaluate($z_4 = $spacing * 0.722406 ) 13 | evaluate ($x_5 = $spacing * -0.986736 ) 14 | evaluate($y_5 = $spacing * -0.037401 ) 15 | evaluate($z_5 = $spacing * -0.157968 ) 16 | evaluate ($x_6 = $spacing * 0.851811 ) 17 | evaluate($y_6 = $spacing * 0.037401 ) 18 | evaluate($z_6 = $spacing * -0.522512 ) 19 | evaluate ($x_7 = $spacing * -0.335959 ) 20 | evaluate($y_7 = $spacing * 0.200856 ) 21 | evaluate($z_7 = $spacing * 0.920211 ) 22 | evaluate ($x_8 = $spacing * -0.067028 ) 23 | evaluate($y_8 = $spacing * 0.537976 ) 24 | evaluate($z_8 = $spacing * -0.840291 ) 25 | evaluate ($x_9 = $spacing * 0.583822 ) 26 | evaluate($y_9 = $spacing * 0.776287 ) 27 | evaluate($z_9 = $spacing * 0.237761 ) 28 | evaluate ($x_10 = $spacing * -0.476629 ) 29 | evaluate($y_10 = $spacing * 0.874002 ) 30 | evaluate($z_10 = $spacing * 0.094582 ) 31 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_11: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.520608 ) 2 | evaluate($y_1 = $spacing * -0.841959 ) 3 | evaluate($z_1 = $spacing * -0.141676 ) 4 | evaluate ($x_2 = $spacing * -0.382941 ) 5 | evaluate($y_2 = $spacing * -0.818783 ) 6 | evaluate($z_2 = $spacing * 0.427727 ) 7 | evaluate ($x_3 = $spacing * -0.260271 ) 8 | evaluate($y_3 = $spacing * -0.639964 ) 9 | evaluate($z_3 = $spacing * -0.722984 ) 10 | evaluate ($x_4 = $spacing * 0.642273 ) 11 | evaluate($y_4 = $spacing * -0.320721 ) 12 | evaluate($z_4 = $spacing * 0.696149 ) 13 | evaluate ($x_5 = $spacing * -0.992186 ) 14 | evaluate($y_5 = $spacing * -0.110396 ) 15 | evaluate($z_5 = $spacing * -0.058143 ) 16 | evaluate ($x_6 = $spacing * 0.843755 ) 17 | evaluate($y_6 = $spacing * 0.000000 ) 18 | evaluate($z_6 = $spacing * -0.536728 ) 19 | evaluate ($x_7 = $spacing * -0.367872 ) 20 | evaluate($y_7 = $spacing * 0.110396 ) 21 | evaluate($z_7 = $spacing * 0.923300 ) 22 | evaluate ($x_8 = $spacing * -0.358301 ) 23 | evaluate($y_8 = $spacing * 0.320721 ) 24 | evaluate($z_8 = $spacing * -0.876789 ) 25 | evaluate ($x_9 = $spacing * 0.544516 ) 26 | evaluate($y_9 = $spacing * 0.639964 ) 27 | evaluate($z_9 = $spacing * 0.542170 ) 28 | evaluate ($x_10 = $spacing * -0.549715 ) 29 | evaluate($y_10 = $spacing * 0.818783 ) 30 | evaluate($z_10 = $spacing * 0.165553 ) 31 | evaluate ($x_11 = $spacing * 0.348978 ) 32 | evaluate($y_11 = $spacing * 0.841959 ) 33 | evaluate($z_11 = $spacing * -0.411484 ) 34 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_12: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.660320 ) 2 | evaluate($y_1 = $spacing * -0.750904 ) 3 | evaluate($z_1 = $spacing * -0.010970 ) 4 | evaluate ($x_2 = $spacing * -0.298250 ) 5 | evaluate($y_2 = $spacing * -0.863777 ) 6 | evaluate($z_2 = $spacing * 0.406123 ) 7 | evaluate ($x_3 = $spacing * -0.187157 ) 8 | evaluate($y_3 = $spacing * -0.750895 ) 9 | evaluate($z_3 = $spacing * -0.633347 ) 10 | evaluate ($x_4 = $spacing * 0.410935 ) 11 | evaluate($y_4 = $spacing * -0.247024 ) 12 | evaluate($z_4 = $spacing * 0.877560 ) 13 | evaluate ($x_5 = $spacing * -0.960322 ) 14 | evaluate($y_5 = $spacing * -0.247027 ) 15 | evaluate($z_5 = $spacing * -0.129456 ) 16 | evaluate ($x_6 = $spacing * 0.590688 ) 17 | evaluate($y_6 = $spacing * -0.064385 ) 18 | evaluate($z_6 = $spacing * -0.804327 ) 19 | evaluate ($x_7 = $spacing * -0.590677 ) 20 | evaluate($y_7 = $spacing * 0.064385 ) 21 | evaluate($z_7 = $spacing * 0.804335 ) 22 | evaluate ($x_8 = $spacing * -0.410931 ) 23 | evaluate($y_8 = $spacing * 0.247027 ) 24 | evaluate($z_8 = $spacing * -0.877561 ) 25 | evaluate ($x_9 = $spacing * 0.960322 ) 26 | evaluate($y_9 = $spacing * 0.247024 ) 27 | evaluate($z_9 = $spacing * 0.129460 ) 28 | evaluate ($x_10 = $spacing * -0.660330 ) 29 | evaluate($y_10 = $spacing * 0.750895 ) 30 | evaluate($z_10 = $spacing * 0.010972 ) 31 | evaluate ($x_11 = $spacing * 0.298246 ) 32 | evaluate($y_11 = $spacing * 0.863777 ) 33 | evaluate($z_11 = $spacing * -0.406126 ) 34 | evaluate ($x_12 = $spacing * 0.187157 ) 35 | evaluate($y_12 = $spacing * 0.750904 ) 36 | evaluate($z_12 = $spacing * 0.633337 ) 37 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_2: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.792331 ) 2 | evaluate($y_1 = $spacing * -0.526604 ) 3 | evaluate($z_1 = $spacing * -0.308059 ) 4 | evaluate ($x_2 = $spacing * -0.792331 ) 5 | evaluate($y_2 = $spacing * 0.526604 ) 6 | evaluate($z_2 = $spacing * 0.308059 ) 7 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_3: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.721237 ) 2 | evaluate($y_1 = $spacing * -0.691085 ) 3 | evaluate($z_1 = $spacing * 0.047104 ) 4 | evaluate ($x_2 = $spacing * -0.737369 ) 5 | evaluate($y_2 = $spacing * 0.000000 ) 6 | evaluate($z_2 = $spacing * 0.675490 ) 7 | evaluate ($x_3 = $spacing * 0.016131 ) 8 | evaluate($y_3 = $spacing * 0.691085 ) 9 | evaluate($z_3 = $spacing * -0.722594 ) 10 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_4: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.630514 ) 2 | evaluate($y_1 = $spacing * -0.775711 ) 3 | evaluate($z_1 = $spacing * 0.026929 ) 4 | evaluate ($x_2 = $spacing * -0.860987 ) 5 | evaluate($y_2 = $spacing * -0.254834 ) 6 | evaluate($z_2 = $spacing * 0.440184 ) 7 | evaluate ($x_3 = $spacing * -0.174528 ) 8 | evaluate($y_3 = $spacing * 0.254834 ) 9 | evaluate($z_3 = $spacing * -0.951104 ) 10 | evaluate ($x_4 = $spacing * 0.405000 ) 11 | evaluate($y_4 = $spacing * 0.775711 ) 12 | evaluate($z_4 = $spacing * 0.483991 ) 13 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_5: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.575654 ) 2 | evaluate($y_1 = $spacing * -0.816133 ) 3 | evaluate($z_1 = $spacing * 0.050504 ) 4 | evaluate ($x_2 = $spacing * -0.747791 ) 5 | evaluate($y_2 = $spacing * -0.500440 ) 6 | evaluate($z_2 = $spacing * 0.436312 ) 7 | evaluate ($x_3 = $spacing * 0.087426 ) 8 | evaluate($y_3 = $spacing * -0.000000 ) 9 | evaluate($z_3 = $spacing * -0.996171 ) 10 | evaluate ($x_4 = $spacing * 0.660362 ) 11 | evaluate($y_4 = $spacing * 0.500440 ) 12 | evaluate($z_4 = $spacing * 0.559894 ) 13 | evaluate ($x_5 = $spacing * -0.575651 ) 14 | evaluate($y_5 = $spacing * 0.816133 ) 15 | evaluate($z_5 = $spacing * -0.050536 ) 16 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_6: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.734901 ) 2 | evaluate($y_1 = $spacing * -0.678154 ) 3 | evaluate($z_1 = $spacing * -0.005343 ) 4 | evaluate ($x_2 = $spacing * -0.622947 ) 5 | evaluate($y_2 = $spacing * -0.678147 ) 6 | evaluate($z_2 = $spacing * 0.389940 ) 7 | evaluate ($x_3 = $spacing * -0.268053 ) 8 | evaluate($y_3 = $spacing * -0.283239 ) 9 | evaluate($z_3 = $spacing * -0.920827 ) 10 | evaluate ($x_4 = $spacing * 0.268063 ) 11 | evaluate($y_4 = $spacing * 0.283239 ) 12 | evaluate($z_4 = $spacing * 0.920825 ) 13 | evaluate ($x_5 = $spacing * -0.734907 ) 14 | evaluate($y_5 = $spacing * 0.678147 ) 15 | evaluate($z_5 = $spacing * 0.005339 ) 16 | evaluate ($x_6 = $spacing * 0.622944 ) 17 | evaluate($y_6 = $spacing * 0.678154 ) 18 | evaluate($z_6 = $spacing * -0.389934 ) 19 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_7: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.630545 ) 2 | evaluate($y_1 = $spacing * -0.770433 ) 3 | evaluate($z_1 = $spacing * -0.094055 ) 4 | evaluate ($x_2 = $spacing * -0.641872 ) 5 | evaluate($y_2 = $spacing * -0.588059 ) 6 | evaluate($z_2 = $spacing * 0.492125 ) 7 | evaluate ($x_3 = $spacing * -0.215812 ) 8 | evaluate($y_3 = $spacing * -0.473463 ) 9 | evaluate($z_3 = $spacing * -0.853966 ) 10 | evaluate ($x_4 = $spacing * 0.608439 ) 11 | evaluate($y_4 = $spacing * -0.000000 ) 12 | evaluate($z_4 = $spacing * 0.793601 ) 13 | evaluate ($x_5 = $spacing * -0.768662 ) 14 | evaluate($y_5 = $spacing * 0.473463 ) 15 | evaluate($z_5 = $spacing * -0.430106 ) 16 | evaluate ($x_6 = $spacing * 0.641885 ) 17 | evaluate($y_6 = $spacing * 0.588059 ) 18 | evaluate($z_6 = $spacing * -0.492108 ) 19 | evaluate ($x_7 = $spacing * -0.254522 ) 20 | evaluate($y_7 = $spacing * 0.770433 ) 21 | evaluate($z_7 = $spacing * 0.584510 ) 22 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_8: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.418929 ) 2 | evaluate($y_1 = $spacing * -0.900532 ) 3 | evaluate($z_1 = $spacing * -0.116362 ) 4 | evaluate ($x_2 = $spacing * -0.454808 ) 5 | evaluate($y_2 = $spacing * -0.640327 ) 6 | evaluate($z_2 = $spacing * 0.618976 ) 7 | evaluate ($x_3 = $spacing * -0.101394 ) 8 | evaluate($y_3 = $spacing * -0.272325 ) 9 | evaluate($z_3 = $spacing * -0.956848 ) 10 | evaluate ($x_4 = $spacing * 0.645983 ) 11 | evaluate($y_4 = $spacing * 0.012051 ) 12 | evaluate($z_4 = $spacing * 0.763257 ) 13 | evaluate ($x_5 = $spacing * -0.975089 ) 14 | evaluate($y_5 = $spacing * -0.012051 ) 15 | evaluate($z_5 = $spacing * -0.221486 ) 16 | evaluate ($x_6 = $spacing * 0.895887 ) 17 | evaluate($y_6 = $spacing * 0.272325 ) 18 | evaluate($z_6 = $spacing * -0.351036 ) 19 | evaluate ($x_7 = $spacing * -0.339685 ) 20 | evaluate($y_7 = $spacing * 0.640327 ) 21 | evaluate($z_7 = $spacing * 0.688909 ) 22 | evaluate ($x_8 = $spacing * -0.089822 ) 23 | evaluate($y_8 = $spacing * 0.900532 ) 24 | evaluate($z_8 = $spacing * -0.425410 ) 25 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/initial_positions/trans_vector_9: -------------------------------------------------------------------------------- 1 | evaluate ($x_1 = $spacing * 0.520089 ) 2 | evaluate($y_1 = $spacing * -0.851243 ) 3 | evaluate($z_1 = $spacing * -0.069943 ) 4 | evaluate ($x_2 = $spacing * -0.450573 ) 5 | evaluate($y_2 = $spacing * -0.734380 ) 6 | evaluate($z_2 = $spacing * 0.507612 ) 7 | evaluate ($x_3 = $spacing * -0.209633 ) 8 | evaluate($y_3 = $spacing * -0.475251 ) 9 | evaluate($z_3 = $spacing * -0.854512 ) 10 | evaluate ($x_4 = $spacing * 0.579259 ) 11 | evaluate($y_4 = $spacing * -0.129555 ) 12 | evaluate($z_4 = $spacing * 0.804782 ) 13 | evaluate ($x_5 = $spacing * -0.984713 ) 14 | evaluate($y_5 = $spacing * 0.000000 ) 15 | evaluate($z_5 = $spacing * -0.174182 ) 16 | evaluate ($x_6 = $spacing * 0.820182 ) 17 | evaluate($y_6 = $spacing * 0.129555 ) 18 | evaluate($z_6 = $spacing * -0.557241 ) 19 | evaluate ($x_7 = $spacing * -0.490043 ) 20 | evaluate($y_7 = $spacing * 0.475251 ) 21 | evaluate($z_7 = $spacing * 0.730749 ) 22 | evaluate ($x_8 = $spacing * -0.249103 ) 23 | evaluate($y_8 = $spacing * 0.734380 ) 24 | evaluate($z_8 = $spacing * -0.631375 ) 25 | evaluate ($x_9 = $spacing * 0.464538 ) 26 | evaluate($y_9 = $spacing * 0.851243 ) 27 | evaluate($z_9 = $spacing * 0.244110 ) 28 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/metalcenter.tbl: -------------------------------------------------------------------------------- 1 | assign (resid 400 and name FE ) (resid 15 and name NE2 ) 1.99 0.05 0.05 2 | assign (resid 400 and name FE ) (resid 50 and name SD ) 2.33 0.05 0.05 3 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/par_axis.pro: -------------------------------------------------------------------------------- 1 | remark parameter file for dipolar coupling calculations 2 | 3 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 4 | set message=off echo=off end 5 | 6 | bonds OO XX 1000.0 3.00 7 | bonds OO YY 1000.0 3.00 8 | bonds OO ZZ 1000.0 3.00 9 | 10 | angle XX OO YY 1000.0 90.0 11 | angle XX OO ZZ 1000.0 90.0 12 | angle YY OO ZZ 1000.0 90.0 13 | 14 | NONBonded XX 0.01 0.01 0.01 0.01 15 | NONBonded YY 0.01 0.01 0.01 0.01 16 | NONBonded ZZ 0.01 0.01 0.01 0.01 17 | NONBonded OO 0.01 0.01 0.01 0.01 18 | 19 | IMPROPER XX YY OO ZZ 500.0 0 90.0 20 | 21 | set message=$old_message echo=$old_echo end 22 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/par_axis_dani.pro: -------------------------------------------------------------------------------- 1 | remark parameter file for dipolar coupling calculations 2 | 3 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 4 | set message=off echo=off end 5 | 6 | bonds OO XX 1000.0 3.00 7 | bonds OO YY 1000.0 3.00 8 | bonds OO ZZ 1000.0 3.00 9 | 10 | angle XX OO YY 1000.0 90.0 11 | angle XX OO ZZ 1000.0 90.0 12 | angle YY OO ZZ 1000.0 90.0 13 | 14 | NONBonded XX 0.01 0.01 0.01 0.01 15 | NONBonded YY 0.01 0.01 0.01 0.01 16 | NONBonded ZZ 0.01 0.01 0.01 0.01 17 | NONBonded OO 0.01 0.01 0.01 0.01 18 | 19 | set message=$old_message echo=$old_echo end 20 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/shape.param: -------------------------------------------------------------------------------- 1 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 2 | set message=off echo=off end 3 | 4 | NONBonded SHA 0.01 0.01 0.01 0.01 5 | 6 | BOND SHA SHA 0.0 2.0 7 | 8 | set message=$old_message echo=$old_echo end 9 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/shape.top: -------------------------------------------------------------------------------- 1 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 2 | set message=off echo=off end 3 | 4 | MASS SHA 100.000 ! dummy atom for shapes 5 | 6 | 7 | RESIdue SHA {dummy atom for shapes} 8 | GROUp 9 | ATOM SHA TYPE=SHA CHARge=0.0 END 10 | END {SHA} 11 | 12 | presidue CON ! 13 | add bond -SHA +SHA 14 | END {con} 15 | 16 | set message=$old_message echo=$old_echo end 17 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/solvent-allhdg5-4.param: -------------------------------------------------------------------------------- 1 | remarks file toppar/water-allhdg5-4.param 2 | remarks 3 | remarks PARAM19.SOL (solvent parameters) 4 | remarks =========== 5 | remarks available: TIPS3P and DMSO model 6 | 7 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 8 | set message=off echo=off end 9 | 10 | checkversion 1.3 11 | 12 | {* TIP3P model *} 13 | {* =========== *} 14 | BOND HT OT 450.0 0.9572 ! from TIPS3P geometry ( SHAKE w/PARAm) 15 | BOND HT HT 0.0 1.5139 ! from TIPS3P geometry ( SHAKE w/PARAm) 16 | ANGLE HT OT HT 55.0 104.52 ! FROM TIPS3P geometry 17 | 18 | 19 | 20 | {* original TIP3P for ALL interactions since we use OPLS for the protein *} 21 | NONBONDED OT .1521 3.1506 .1521 3.1506 ! ALLOW WAT 22 | !TIP3P OXYGEN PARAMETERS, adm jr., NBFIX obsolete 23 | NONBONDED HT .0460 .4000 .0460 .4000 ! ALLOW WAT 24 | !TIP3P HYDROGEN PARAMETERS, adm jr., NBFIX obsolete 25 | {* *} ! DMSO parameters Alexandre Bonvin Utrecht University 26 | {* DMSO model *} ! GROMOS parameters from Liu et al JACS 117:4363 (1995) 27 | {* ========== *} 28 | BOND CDMS SDMS 300.0 1.950 29 | BOND SDMS ODMS 350.0 1.530 30 | 31 | ANGLE CDMS SDMS CDMS 110.0 97.40 32 | ANGLE CDMS SDMS ODMS 110.0 106.75 33 | 34 | NONBONDED CDMS 0.2940 3.66 0.2940 3.66 35 | NONBONDED SDMS 0.2384 3.56 0.2384 3.56 36 | NONBONDED ODMS 0.0715 2.63 0.0715 2.63 37 | 38 | 39 | set message=$old_message echo=$old_echo end 40 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/top_axis.pro: -------------------------------------------------------------------------------- 1 | remark topology file for dipolar coupling calculations 2 | 3 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 4 | set message=off echo=off end 5 | 6 | autogenerate 7 | angles=true 8 | dihedrals=false 9 | end 10 | 11 | mass XX 100 12 | mass YY 100 13 | mass ZZ 100 14 | mass OO 100 15 | 16 | residue ANI 17 | group 18 | atom X type=XX charge=0.0 end 19 | atom Y type=YY charge=0.0 end 20 | atom Z type=ZZ charge=0.0 end 21 | atom OO type=OO charge=0.0 end 22 | 23 | bond X OO 24 | bond Y OO 25 | bond Z OO 26 | end 27 | 28 | residue XAN 29 | group 30 | atom X type=XX charge=0.0 end 31 | atom Y type=YY charge=0.0 end 32 | atom Z type=ZZ charge=0.0 end 33 | atom OO type=OO charge=0.0 end 34 | 35 | bond X OO 36 | bond Y OO 37 | bond Z OO 38 | 39 | improper X Y OO Z 40 | end 41 | 42 | residue DAN 43 | group 44 | atom X type=XX charge=0.0 end 45 | atom Y type=YY charge=0.0 end 46 | atom Z type=ZZ charge=0.0 end 47 | atom OO type=OO charge=0.0 end 48 | 49 | bond X OO 50 | bond Y OO 51 | bond Z OO 52 | end 53 | 54 | 55 | set message=$old_message echo=$old_echo end 56 | -------------------------------------------------------------------------------- /src/haddock/cns/toppar/top_axis_dani.pro: -------------------------------------------------------------------------------- 1 | remark topology file for dipolar coupling calculations 2 | set message ? end eval ($old_message=$result) set echo ? end eval ($old_echo=$result) 3 | set message=off echo=off end 4 | 5 | autogenerate 6 | angles=true 7 | dihedrals=false 8 | end 9 | 10 | mass XX 100 11 | mass YY 100 12 | mass ZZ 100 13 | mass OO 100 14 | 15 | residue DAN 16 | group 17 | atom X type=XX charge=0.0 end 18 | atom Y type=YY charge=0.0 end 19 | atom Z type=ZZ charge=0.0 end 20 | atom OO type=OO charge=0.0 end 21 | 22 | bond X OO 23 | bond Y OO 24 | bond Z OO 25 | end 26 | 27 | 28 | set message=$old_message echo=$old_echo end 29 | -------------------------------------------------------------------------------- /src/haddock/core/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Core haddock3 functionalities. 3 | """ 4 | -------------------------------------------------------------------------------- /src/haddock/core/mandatory.yaml: -------------------------------------------------------------------------------- 1 | run_dir: 2 | type: dir 3 | title: Run directory 4 | short: Folder to store the HADDOCK3 run 5 | long: The new folder that will be created to save the HADDOCK3 run 6 | explevel: easy 7 | molecules: 8 | type: list 9 | accept: 10 | - ".pdb" 11 | minitems: 1 12 | maxitems: 20 13 | title: Input Molecules 14 | short: The input molecules that will be used for docking. 15 | long: 16 | Molecules must be provided in PDB format. These PDB files can be 17 | single molecules or ensembles using the MODEL/ENDMDL statements. 18 | explevel: easy 19 | -------------------------------------------------------------------------------- /src/haddock/fcc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/src/haddock/fcc/__init__.py -------------------------------------------------------------------------------- /src/haddock/gear/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Contain modules to address specific implementation ideas. 3 | 4 | Each python module in this package should encapsulate all specific logic 5 | regarding on implementation idea. For example, you wish to defined the 6 | whole logic referring to the preparation steps before the run. 7 | """ 8 | -------------------------------------------------------------------------------- /src/haddock/gear/parameters.py: -------------------------------------------------------------------------------- 1 | """Relates to logic or definition of parameters.""" 2 | from pathlib import Path 3 | 4 | from haddock import haddock3_source_path 5 | from haddock.gear.yaml2cfg import read_from_yaml_config 6 | 7 | 8 | MANDATORY_YAML = Path(haddock3_source_path, "core", "mandatory.yaml") 9 | """The mandatory general arguments of the configuration file.""" 10 | 11 | OPTIONAL_YAML = Path(haddock3_source_path, "core", "optional.yaml") 12 | """The optional general arguments of the configuration file.""" 13 | 14 | _mandatory_parameters = read_from_yaml_config(MANDATORY_YAML) 15 | config_mandatory_general_parameters = set(_mandatory_parameters) 16 | 17 | config_optional_general_parameters_dict = read_from_yaml_config(OPTIONAL_YAML) 18 | config_optional_general_parameters = set(config_optional_general_parameters_dict) # noqa: E501 19 | -------------------------------------------------------------------------------- /src/haddock/gear/postprocessing.py: -------------------------------------------------------------------------------- 1 | """Tools for post-processing haddock3 runs.""" 2 | 3 | import os 4 | import shutil 5 | import tarfile 6 | 7 | from haddock import log 8 | from haddock.clis.cli_analyse import ANA_FOLDER 9 | from haddock.core.typing import Optional 10 | 11 | 12 | def archive_run(run_dir: str, delete: bool = True) -> tuple[str, Optional[str]]: 13 | """Create an archive of the haddock3 run directory and analysis. 14 | 15 | Parameters 16 | ---------- 17 | run_dir : str 18 | Path to the run directory 19 | delete : bool, optional 20 | Should the un-archived directory be deleted?, by default False 21 | 22 | Returns 23 | ------- 24 | tuple[str, Optional[str]] 25 | run_archive_fname : str 26 | Path to the run archive 27 | analysis_archive_fname : Optional[str] 28 | Path to the run analysis archive 29 | """ 30 | log.info("Creating an archive of the run") 31 | # Start by archiving the run_directory 32 | run_archive_fname = f"{run_dir}.tgz" 33 | with tarfile.open(run_archive_fname, "w:gz") as tar: 34 | tar.add(run_dir, arcname=os.path.basename(run_dir)) 35 | 36 | # Archive the analysis directory 37 | analysis_archive_fname = None 38 | if os.path.exists(f"{run_dir}/{ANA_FOLDER}"): 39 | analysis_archive_fname = f"{run_dir}_{ANA_FOLDER}.tgz" 40 | with tarfile.open(analysis_archive_fname, "w:gz") as tar: 41 | tar.add(f"{run_dir}/{ANA_FOLDER}", arcname=f"{run_dir}_{ANA_FOLDER}") 42 | 43 | if delete: 44 | shutil.rmtree(run_dir) 45 | 46 | return run_archive_fname, analysis_archive_fname -------------------------------------------------------------------------------- /src/haddock/libs/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Libraries used throughout the project. 3 | """ 4 | -------------------------------------------------------------------------------- /src/haddock/libs/assets/__init__.py: -------------------------------------------------------------------------------- 1 | """Static assets 2 | 3 | Static assets for analysis report. 4 | 5 | Files where downloaded from 6 | https://cdn.jsdelivr.net/npm/@i-vresse/haddock3-ui@~0.3.0/dist/index.css 7 | and 8 | https://cdn.jsdelivr.net/npm/@i-vresse/haddock3-ui@~0.3.0/dist/report.bundle.js 9 | """ 10 | import importlib.resources as importlib_resources 11 | 12 | haddock_ui_path = importlib_resources.files("haddock.libs.assets") 13 | -------------------------------------------------------------------------------- /src/haddock/libs/libmath.py: -------------------------------------------------------------------------------- 1 | """Mathematical functions.""" 2 | import random 3 | 4 | 5 | class RandomNumberGenerator: 6 | """ 7 | Generate random numbers. 8 | 9 | Python uses the Mersenne Twister as the core generator. 10 | It produces 53-bit precision floats and has a period of 2**19937-1 11 | """ 12 | 13 | def __init__(self, seed: int = 494) -> None: 14 | """494 = sum([ord(i) for i in 'HADDOCK']).""" 15 | self.seed = seed 16 | self.random = random.Random() 17 | self.random.seed(self.seed) 18 | 19 | def __call__(self, 20 | lower_limit: float = 0., 21 | upper_limit: float = 1.) -> float: 22 | """Generate a random number between range.""" 23 | return self.random.uniform(lower_limit, upper_limit) 24 | 25 | def randint(self, lower_limit: int = 0, upper_limit: int = 9) -> int: 26 | """Generate a random integer.""" 27 | return int(self() * (upper_limit + 1)) + lower_limit 28 | -------------------------------------------------------------------------------- /src/haddock/libs/libstructure.py: -------------------------------------------------------------------------------- 1 | """Molecular data structures.""" 2 | from functools import partial 3 | from pathlib import Path 4 | from typing import Any, Iterable, Optional 5 | 6 | 7 | class Molecule: 8 | """ 9 | Input molecule, usually a PDB file. 10 | 11 | Parameters 12 | ---------- 13 | file_name : :external:py:class:`pathlib.Path` 14 | The path to the molecule file. 15 | 16 | segid : int, optional 17 | The ID of the segment. Defaults to ``None``. 18 | 19 | no_parent : boolean 20 | Whether to add the parent path ``..`` to the 21 | :py:attr:`haddock.libs.libstructure.Molecule.with_parent`. 22 | When set to true, the ``with_parent`` attribute returns the same 23 | as ``file_name``. 24 | """ 25 | 26 | def __init__(self, 27 | file_name: Path, 28 | segid: Optional[int] = None, 29 | no_parent: bool = False) -> None: 30 | # the rest of the code is too dependent on the Path API 31 | assert isinstance(file_name, Path), \ 32 | f"`file_name` must be pathlib.Path: {type(file_name)} given" 33 | 34 | self.file_name = file_name 35 | self.segid = segid 36 | if no_parent: 37 | self.with_parent = file_name 38 | else: 39 | self.with_parent = Path('..', file_name) 40 | 41 | 42 | def make_molecules(paths: Iterable[Path], **kwargs: Any) -> list[Molecule]: 43 | """Get input molecules from the data stream.""" 44 | return list(map(partial(Molecule, **kwargs), paths)) 45 | -------------------------------------------------------------------------------- /src/haddock/modules/analysis/__init__.py: -------------------------------------------------------------------------------- 1 | """HADDOCK3 modules related to model analysis.""" 2 | 3 | from typing import Iterable 4 | 5 | 6 | modules_using_resdic = ("caprieval", "rmsdmatrix", "alascan", "sasascore") 7 | 8 | 9 | def confirm_resdic_chainid_length(params: Iterable[str]) -> None: 10 | """ 11 | Confirm resdic params have chain IDs of length one. 12 | 13 | Parameters 14 | ---------- 15 | params : dict, or list of keys 16 | The parameters. 17 | 18 | Raises 19 | ------ 20 | ValueError 21 | If a `resdic_*` parameter has chain IDs with more than one letter. 22 | For example, `resdic_AB`. 23 | """ 24 | resdic_params = (p for p in params if p.startswith('resdic_')) 25 | for param in resdic_params: 26 | chainid = param.split('_')[-1] 27 | if len(chainid) > 1: 28 | raise ValueError( 29 | f"We found the parameter {param!r} which has " 30 | "more than one character in the chain " 31 | "identifier. Chain IDs should have only one character." 32 | ) 33 | 34 | def get_analysis_exec_mode(mode: str) -> str: 35 | """ 36 | Get the execution mode for analysis modules. 37 | 38 | Parameters 39 | ---------- 40 | exec_mode : str 41 | The execution mode to use. 42 | 43 | Returns 44 | ------- 45 | str 46 | The execution mode to use for the analysis modules. 47 | If it's "batch", it will be changed to "local". 48 | """ 49 | if mode != "batch": 50 | exec_mode = mode 51 | else: 52 | exec_mode = "local" 53 | return exec_mode -------------------------------------------------------------------------------- /src/haddock/modules/analysis/filter/defaults.yaml: -------------------------------------------------------------------------------- 1 | threshold: 2 | default: 0.00 3 | type: float 4 | min: -99999.99 5 | max: 99999.99 6 | precision: 2 7 | title: Threshold value to filter models. 8 | short: Threshold value to filter models based on their score. 9 | long: Threshold value to filter models based on their score. 10 | Models having higher score than the threshold value will be filtered out. 11 | group: analysis 12 | explevel: easy -------------------------------------------------------------------------------- /src/haddock/modules/analysis/seletop/defaults.yaml: -------------------------------------------------------------------------------- 1 | select: 2 | default: 200 3 | type: integer 4 | min: 1 5 | max: 50000 6 | title: Number of best-ranked models to select 7 | short: Number of best-ranked models to select for further steps of the workflow 8 | long: Number of best-ranked models to select for further steps of the workflow. Typically only 200 models produced at the rigid-body docking stage are selected for further refinement. 9 | group: analysis 10 | explevel: easy 11 | -------------------------------------------------------------------------------- /src/haddock/modules/analysis/seletopclusts/defaults.yaml: -------------------------------------------------------------------------------- 1 | top_clusters: 2 | type: integer 3 | default: 1000 4 | min : 1 5 | max : 99999 6 | title: Number of clusters to consider 7 | short: Number of clusters to consider (ranked by score) 8 | long: Number of clusters to consider (ranked by score) 9 | group: analysis 10 | explevel: easy 11 | top_models: 12 | default: 10 13 | type: integer 14 | min: 1 15 | max: 99999 16 | title: Number of best-ranked models to select per cluster 17 | short: Number of best-ranked models to select per cluster. By default, 10 models are selected. 18 | long: Number of best-ranked models to select per cluster. By default, 10 models are selected. If one expects to find many clusters (e.g., in the case of vague restraints), this number can be reduced to speed up the protocol. Instead, if few clusters are expected (very specific and localized restraints) this number can be increased. 19 | group: analysis 20 | explevel: easy 21 | sortby: 22 | default: score 23 | type: string 24 | minchars: 2 25 | maxchars: 15 26 | choice: 27 | - score 28 | - size 29 | title: Method used to define `best cluster`. 30 | short: Best cluster can be defined based either on cluster models scores, or on cluster size. By default, 'score' is selected. 31 | long: if the selection is done by 'score' the average score of the top (4) models of each cluster is used to define the cluster rank. When clustering by 'size', a bigger cluster size corresponds to a higher rank. By default, 'score' is selected. 32 | group: analysis 33 | explevel: easy 34 | -------------------------------------------------------------------------------- /src/haddock/modules/extras/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | HADDOCK3 extra modules. 3 | 4 | The extra modules are modules that do not belong to any of the standard 5 | simulation categories but that help further configuring the workflow. 6 | """ 7 | -------------------------------------------------------------------------------- /src/haddock/modules/extras/exit/defaults.yaml: -------------------------------------------------------------------------------- 1 | message: 2 | default: Stopping the workflow. 3 | type: string 4 | minchars: 0 5 | maxchars: 1000 6 | title: Exiting message. 7 | short: The message to print when exiting. 8 | long: The message to print when exiting. 9 | group: execution 10 | explevel: easy 11 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/__init__.py: -------------------------------------------------------------------------------- 1 | """HADDOCK3 actions referring to refinement.""" 2 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/emref/cns/calc_free-ene.cns: -------------------------------------------------------------------------------- 1 | ! calc_free-ene.cns 2 | ! Calculate the total energy of the separated components 3 | ! 4 | ! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object 5 | ! *********************************************************************** 6 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 7 | ! * All rights reserved. * 8 | ! * This code is part of the HADDOCK software and governed by its * 9 | ! * license. Please see the LICENSE file that should have been included * 10 | ! * as part of this package. * 11 | ! *********************************************************************** 12 | ! 13 | @MODULE:scale_intra_only.cns 14 | 15 | evaluate ($eintfree = 0.0) 16 | @MODULE:flex_segment_back.cns 17 | fix sele=(((attr store5 = 0) or resn ANI or resn DAN or resn XAN or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end 18 | 19 | minimize powell nstep=100 drop=10.0 nprint=25 end 20 | fix sele=(not all) end 21 | energy end 22 | evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) 23 | 24 | display FREE MOLECULES INTERNAL ENERGY = $eintfree 25 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/emref/cns/contactairs.cns: -------------------------------------------------------------------------------- 1 | ! contactairs.cns 2 | ! Define ambiguous distance restraints between residues at interfaces 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | eval($nchain1 = 0) 13 | while ($nchain1 < $data.ncomponents) loop nloop1 14 | eval($nchain1 = $nchain1 + 1) 15 | for $id in id (tag and segid $prot_segid_$nchain1 16 | and (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 17 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) around 5.0)) loop defnoe1 18 | show (resid) (id $id) 19 | evaluate ($inres = $result) 20 | noe 21 | assign (resid $inres and segid $prot_segid_$nchain1) 22 | (byres (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 23 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) 24 | and (segid $prot_segid_$nchain1) around 5.0)) 2.0 2.0 0.0 25 | end 26 | end loop defnoe1 27 | end loop nloop1 28 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/emref/cns/scale_intra_only.cns: -------------------------------------------------------------------------------- 1 | ! scale_intra_only.cns 2 | ! Scaling of intramolecular energies (no intermolecular energies) 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | igroup interaction (not all) (not all) end 13 | 14 | igroup 15 | 16 | eval($nchain1 = 0) 17 | 18 | while ($nchain1 < $data.ncomponents) loop nloop1 19 | eval($nchain1 = $nchain1 + 1) 20 | 21 | interaction (segid $prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) 22 | (segid $prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1.0 end 23 | 24 | end loop nloop1 25 | 26 | interaction (resn ANI) (resn ANI) weight * 1.0 vdw 0.0 elec 0.0 end 27 | interaction (resn DAN) (resn DAN) weight * 1.0 vdw 0.0 elec 0.0 end 28 | interaction (resn XAN) (resn XAN) weight * 1.0 vdw 0.0 elec 0.0 end 29 | interaction (resn DUM) (resn DUM) weight * 1.0 vdw 0.0 elec 0.0 end 30 | interaction (resn SHA) (resn SHA) weight * 1.0 vdw 0.0 elec 0.0 end 31 | interaction (resn SHA) (not resn SHA) weight * 0.0 end 32 | 33 | end 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/emref/cns/setflags.cns: -------------------------------------------------------------------------------- 1 | ! setflags.cns 2 | ! Defines energy flags 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | if ($Data.flags.noe = TRUE) then 14 | flags include noe end 15 | end if 16 | if ($Data.flags.cdih = TRUE) then 17 | flags include cdih end 18 | end if 19 | if ($Data.flags.ncs = TRUE) then 20 | flags include ncs end 21 | end if 22 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/flexref/cns/calc_free-ene.cns: -------------------------------------------------------------------------------- 1 | ! calc_free-ene.cns 2 | ! Calculate the total energy of the separated components 3 | ! 4 | ! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object 5 | ! *********************************************************************** 6 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 7 | ! * All rights reserved. * 8 | ! * This code is part of the HADDOCK software and governed by its * 9 | ! * license. Please see the LICENSE file that should have been included * 10 | ! * as part of this package. * 11 | ! *********************************************************************** 12 | ! 13 | @MODULE:scale_intra_only.cns 14 | 15 | evaluate ($eintfree = 0.0) 16 | @MODULE:flex_segment_back.cns 17 | fix sele=(((attr store5 = 0) or resn ANI or resn DAN or resn XAN or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end 18 | 19 | minimize powell nstep=100 drop=10.0 nprint=25 end 20 | fix sele=(not all) end 21 | energy end 22 | evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) 23 | 24 | display FREE MOLECULES INTERNAL ENERGY = $eintfree 25 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/flexref/cns/contactairs.cns: -------------------------------------------------------------------------------- 1 | ! contactairs.cns 2 | ! Define ambiguous distance restraints between residues at interfaces 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | eval($nchain1 = 0) 13 | while ($nchain1 < $data.ncomponents) loop nloop1 14 | eval($nchain1 = $nchain1 + 1) 15 | for $id in id (tag and segid $prot_segid_$nchain1 16 | and (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 17 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) around 5.0)) loop defnoe1 18 | show (resid) (id $id) 19 | evaluate ($inres = $result) 20 | noe 21 | assign (resid $inres and segid $prot_segid_$nchain1) 22 | (byres (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 23 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) 24 | and (segid $prot_segid_$nchain1) around 5.0)) 2.0 2.0 0.0 25 | end 26 | end loop defnoe1 27 | end loop nloop1 28 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/flexref/cns/flex_segment.cns: -------------------------------------------------------------------------------- 1 | ! flex_segment.cns 2 | ! Define fully flexible segments for docking 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | do (store5 = 0) (all) 14 | 15 | display NO FLEXIBLE SEGMENTS for all molecule at this stage 16 | if ($nfle = 0) then 17 | display NO FULLY FLEXIBLE SEGMENTS 18 | else 19 | evaluate($nf=0) 20 | while ($nf < $nfle) loop Xfflex 21 | evaluate($nf=$nf + 1) 22 | do (store5 = 1) ( resid $fle_sta_$nf : $fle_end_$nf and segid $fle_seg_$nf ) 23 | display FULLY FLEXIBLE SEGMENT NR $nf FROM $fle_sta_$nf TO $fle_end_$nf FOR CHAIN $fle_seg_$nf 24 | end loop Xfflex 25 | end if 26 | 27 | do (store5 = 21) (resn WAT or resn HOH or resn TIP*) 28 | 29 | do (store1 = 0) (all) 30 | do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) 31 | show sum (store1) ((resn WAT or resn HOH or resn TIP*)) 32 | 33 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/flexref/cns/setflags.cns: -------------------------------------------------------------------------------- 1 | ! setflags.cns 2 | ! Defines energy flags 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | if ($Data.cdih.on eq true) then 14 | evaluate ($Data.flags.cdih = true) 15 | end if 16 | if ($Data.flags.noe = TRUE) then 17 | flags include noe end 18 | end if 19 | if ($Data.flags.cdih = TRUE) then 20 | flags include cdih end 21 | end if 22 | if ($Data.flags.ncs = TRUE) then 23 | flags include ncs end 24 | end if 25 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/mdref/cns/calc_free-ene.cns: -------------------------------------------------------------------------------- 1 | ! calc_free-ene.cns 2 | ! Calculate the total energy of the separated components 3 | ! 4 | ! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object 5 | ! *********************************************************************** 6 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 7 | ! * All rights reserved. * 8 | ! * This code is part of the HADDOCK software and governed by its * 9 | ! * license. Please see the LICENSE file that should have been included * 10 | ! * as part of this package. * 11 | ! *********************************************************************** 12 | ! 13 | @MODULE:scale_intra_only.cns 14 | 15 | evaluate ($eintfree = 0.0) 16 | @MODULE:flex_segment_back.cns 17 | fix sele=(((attr store5 = 0) or resn ANI or resn DAN or resn XAN or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end 18 | 19 | minimize powell nstep=100 drop=10.0 nprint=25 end 20 | fix sele=(not all) end 21 | energy end 22 | evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) 23 | 24 | display FREE MOLECULES INTERNAL ENERGY = $eintfree 25 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/mdref/cns/contactairs.cns: -------------------------------------------------------------------------------- 1 | ! contactairs.cns 2 | ! Define ambiguous distance restraints between residues at interfaces 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | eval($nchain1 = 0) 13 | while ($nchain1 < $data.ncomponents) loop nloop1 14 | eval($nchain1 = $nchain1 + 1) 15 | for $id in id (tag and segid $prot_segid_$nchain1 16 | and (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 17 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) around 5.0)) loop defnoe1 18 | show (resid) (id $id) 19 | evaluate ($inres = $result) 20 | noe 21 | assign (resid $inres and segid $prot_segid_$nchain1) 22 | (byres (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 23 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) 24 | and (segid $prot_segid_$nchain1) around 5.0)) 2.0 2.0 0.0 25 | end 26 | end loop defnoe1 27 | end loop nloop1 28 | -------------------------------------------------------------------------------- /src/haddock/modules/refinement/mdref/cns/setflags.cns: -------------------------------------------------------------------------------- 1 | ! setflags.cns 2 | ! Defines energy flags 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | if ($Data.flags.noe = TRUE) then 14 | flags include noe end 15 | end if 16 | if ($Data.flags.cdih = TRUE) then 17 | flags include cdih end 18 | end if 19 | if ($Data.flags.ncs = TRUE) then 20 | flags include ncs end 21 | end if 22 | -------------------------------------------------------------------------------- /src/haddock/modules/sampling/__init__.py: -------------------------------------------------------------------------------- 1 | """HADDOCK3 modules for sampling.""" 2 | -------------------------------------------------------------------------------- /src/haddock/modules/sampling/gdock/defaults.yaml: -------------------------------------------------------------------------------- 1 | ambig_fname: 2 | default: '' 3 | type: file 4 | title: No title yet 5 | short: No short description yet 6 | long: No long description yet 7 | group: 'distance restraints' 8 | explevel: easy 9 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/emscoring/cns/calc_free-ene.cns: -------------------------------------------------------------------------------- 1 | ! calc_free-ene.cns 2 | ! Calculate the total energy of the separated components 3 | ! 4 | ! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object 5 | ! *********************************************************************** 6 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 7 | ! * All rights reserved. * 8 | ! * This code is part of the HADDOCK software and governed by its * 9 | ! * license. Please see the LICENSE file that should have been included * 10 | ! * as part of this package. * 11 | ! *********************************************************************** 12 | ! 13 | @MODULE:scale_intra_only.cns 14 | 15 | evaluate ($eintfree = 0.0) 16 | 17 | if ($nemsteps > 0) then 18 | minimize powell nstep=$nemsteps drop=10.0 nprint=25 end 19 | end if 20 | energy end 21 | 22 | evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) 23 | 24 | display FREE MOLECULES INTERNAL ENERGY = $eintfree 25 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/mdscoring/cns/calc_free-ene.cns: -------------------------------------------------------------------------------- 1 | ! calc_free-ene.cns 2 | ! Calculate the total energy of the separated components 3 | ! 4 | ! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object 5 | ! *********************************************************************** 6 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 7 | ! * All rights reserved. * 8 | ! * This code is part of the HADDOCK software and governed by its * 9 | ! * license. Please see the LICENSE file that should have been included * 10 | ! * as part of this package. * 11 | ! *********************************************************************** 12 | ! 13 | @MODULE:scale_intra_only.cns 14 | 15 | evaluate ($eintfree = 0.0) 16 | @MODULE:flex_segment_back.cns 17 | fix sele=(((attr store5 = 0) or resn ANI or resn DAN or resn XAN or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end 18 | 19 | minimize powell nstep=100 drop=10.0 nprint=25 end 20 | fix sele=(not all) end 21 | energy end 22 | evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) 23 | 24 | display FREE MOLECULES INTERNAL ENERGY = $eintfree 25 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/mdscoring/cns/contactairs.cns: -------------------------------------------------------------------------------- 1 | ! contactairs.cns 2 | ! Define ambiguous distance restraints between residues at interfaces 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | eval($nchain1 = 0) 13 | while ($nchain1 < $data.ncomponents) loop nloop1 14 | eval($nchain1 = $nchain1 + 1) 15 | for $id in id (tag and segid $prot_segid_$nchain1 16 | and (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 17 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) around 5.0)) loop defnoe1 18 | show (resid) (id $id) 19 | evaluate ($inres = $result) 20 | noe 21 | assign (resid $inres and segid $prot_segid_$nchain1) 22 | (byres (not (segid $prot_segid_$nchain1 or resn ANI or resn DAN or resn XAN 23 | or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM) 24 | and (segid $prot_segid_$nchain1) around 5.0)) 2.0 2.0 0.0 25 | end 26 | end loop defnoe1 27 | end loop nloop1 28 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/mdscoring/cns/flex_segment_back.cns: -------------------------------------------------------------------------------- 1 | ! flex_segment_back.cns 2 | ! Define the semi-flexible segments (both side-chains and backbone) 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | do (store5 = 0) (all) 14 | do (store6 = 0) (all) 15 | do (store7 = 0) (all) 16 | 17 | !define interface flexible regions 18 | evaluate($nchain1 = 0) 19 | while ($nchain1 < $data.ncomponents) loop nloop1 20 | evaluate($nchain1 = $nchain1 + 1) 21 | inline @MODULE:flexauto-neighbors.cns 22 | end loop nloop1 23 | 24 | do (store5 = 21) (resn WAT or resn HOH or resn TIP*) 25 | do (store1 = 0) (all) 26 | do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) 27 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/mdscoring/cns/flex_segment_side.cns: -------------------------------------------------------------------------------- 1 | ! flex_segment_side.cns 2 | ! Define semi-flexible segments (side-chains only) 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | do (store5 = 0) (all) 14 | do (store6 = 0) (all) 15 | do (store7 = 0) (all) 16 | 17 | !define interface flexible regions 18 | evaluate($nchain1 = 0) 19 | while ($nchain1 < $data.ncomponents) loop nloop1 20 | evaluate($nchain1 = $nchain1 + 1) 21 | inline @MODULE:flexauto-neighbors.cns 22 | end loop nloop1 23 | 24 | ! freeze backbone 25 | do (store5 = 0) (name CA or name BB or name C or name N or name O) 26 | 27 | do (store5 = 21) (resn WAT or resn HOH or resn TIP*) 28 | do (store1 = 0) (all) 29 | do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) 30 | -------------------------------------------------------------------------------- /src/haddock/modules/scoring/mdscoring/cns/setflags.cns: -------------------------------------------------------------------------------- 1 | ! setflags.cns 2 | ! Defines energy flags 3 | ! 4 | ! *********************************************************************** 5 | ! * Copyright 2003-2022 Alexandre Bonvin, Utrecht University. * 6 | ! * All rights reserved. * 7 | ! * This code is part of the HADDOCK software and governed by its * 8 | ! * license. Please see the LICENSE file that should have been included * 9 | ! * as part of this package. * 10 | ! *********************************************************************** 11 | ! 12 | 13 | if ($Data.flags.noe = TRUE) then 14 | flags include noe end 15 | end if 16 | if ($Data.flags.cdih = TRUE) then 17 | flags include cdih end 18 | end if 19 | if ($Data.flags.ncs = TRUE) then 20 | flags include ncs end 21 | end if 22 | -------------------------------------------------------------------------------- /src/haddock/modules/topology/__init__.py: -------------------------------------------------------------------------------- 1 | """HADDOCK3 modules to create topologies.""" 2 | -------------------------------------------------------------------------------- /src/haddock/modules/topology/topocg/__init__.py: -------------------------------------------------------------------------------- 1 | """Create and manage CNS coarse-grained-atom topology. 2 | 3 | This module is under development... 4 | """ 5 | # to be developed 6 | # adding dummy interfaces to pass the tests 7 | from pathlib import Path 8 | 9 | from haddock.core.defaults import MODULE_DEFAULT_YAML 10 | 11 | RECIPE_PATH = Path(__file__).resolve().parent 12 | DEFAULT_CONFIG = Path(RECIPE_PATH, MODULE_DEFAULT_YAML) 13 | -------------------------------------------------------------------------------- /src/haddock/modules/topology/topocg/defaults.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Define common test variables.""" 2 | from pathlib import Path 3 | 4 | from haddock.modules import modules_category 5 | 6 | 7 | tests_path = Path(__file__).resolve().parents[0] 8 | data_folder = Path(tests_path, 'data') 9 | golden_data = Path(tests_path, 'golden_data') 10 | 11 | # preprocessing files 12 | broken_pdb = Path(data_folder, 'broken.pdb') 13 | corrected_pdb = Path(data_folder, 'corrected.pdb') 14 | 15 | residues_top = Path(data_folder, 'residues.top') 16 | 17 | configs_data = Path(tests_path, 'configs') 18 | emptycfg = Path(configs_data, 'empty.cfg') 19 | haddock3_yaml_cfg_examples = Path(configs_data, 'yml_example.yml') 20 | haddock3_yaml_converted = Path(configs_data, 'yaml2cfg_converted.cfg') 21 | haddock3_yaml_converted_no_header = \ 22 | Path(configs_data, 'yaml2cfg_converted_no_header.cfg') 23 | clean_steps_folder = Path(tests_path, 'clean_output_data') 24 | 25 | steptmp = Path(data_folder, "0_dummystep") 26 | 27 | # defines which modules are already working 28 | working_modules = [t for t in modules_category.items() if t[0] != 'topocg'] 29 | -------------------------------------------------------------------------------- /tests/clean_output_data/run1/0_topoaa/params.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/0_topoaa/params.cfg -------------------------------------------------------------------------------- /tests/clean_output_data/run1/0_topoaa/structure_1.inp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/0_topoaa/structure_1.inp -------------------------------------------------------------------------------- /tests/clean_output_data/run1/0_topoaa/structure_1.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/0_topoaa/structure_1.out -------------------------------------------------------------------------------- /tests/clean_output_data/run1/0_topoaa/structure_1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/0_topoaa/structure_1.pdb -------------------------------------------------------------------------------- /tests/clean_output_data/run1/0_topoaa/structure_1.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/0_topoaa/structure_1.psf -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/io.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/io.json -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/params.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/params.cfg -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_1.inp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_1.inp -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_1.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_1.out -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_1.pdb -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_1.seed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_1.seed -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_2.inp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_2.inp -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_2.out -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_2.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_2.pdb -------------------------------------------------------------------------------- /tests/clean_output_data/run1/1_rigidbody/structure_2.seed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/1_rigidbody/structure_2.seed -------------------------------------------------------------------------------- /tests/clean_output_data/run1/2_clustfcc/structure_1.con: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/2_clustfcc/structure_1.con -------------------------------------------------------------------------------- /tests/clean_output_data/run1/2_clustfcc/structure_2.con: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clean_output_data/run1/2_clustfcc/structure_2.con -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/0_topoaa/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run1/0_topoaa 6 | some other stuff 0_topoaa 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/1_rigidbody/io.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run1/1_rigidbody/io.json -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/2_flexref/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run1/2_flexref 6 | some other stuff 2_flexref 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/2_flexref/other.file: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run1/2_flexref 6 | some other stuff 2_flexref 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/3_seletop/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run1/3_seletop 6 | some other stuff 3_seletop 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/data/0_topoaa/mol1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run1/data/0_topoaa/mol1.pdb -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/data/0_topoaa/mol2.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run1/data/0_topoaa/mol2.pdb -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/data/1_rigidbody/air.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run1/data/1_rigidbody/air.tbl -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run1/data/2_flexref/air.tbl: -------------------------------------------------------------------------------- 1 | # table for flexref 2 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/0_topoaa/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run2/0_topoaa 6 | some other stuff 0_topoaa 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/1_flexref/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run2/1_flexref 6 | some other stuff 1_flexref 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/1_flexref/other.file: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run2/1_flexref 6 | some other stuff 1_flexref 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/2_seletop/io.json: -------------------------------------------------------------------------------- 1 | # this is a dummy io.json 2 | # used to test haddock3-copy CLI 3 | # aim is to check the renaming of paths is correct 4 | 5 | path/to/somewhere/run2/2_seletop 6 | some other stuff 2_seletop 7 | -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/data/0_topoaa/mol1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run2_ref/data/0_topoaa/mol1.pdb -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/data/0_topoaa/mol2.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/clis/hd3_copy/run2_ref/data/0_topoaa/mol2.pdb -------------------------------------------------------------------------------- /tests/clis/hd3_copy/run2_ref/data/1_flexref/air.tbl: -------------------------------------------------------------------------------- 1 | # table for flexref 2 | -------------------------------------------------------------------------------- /tests/configs/empty.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/configs/empty.cfg -------------------------------------------------------------------------------- /tests/configs/recipe.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/configs/recipe.cfg -------------------------------------------------------------------------------- /tests/data/0_dummystep/file1.in: -------------------------------------------------------------------------------- 1 | 0_dummystep 2 | -------------------------------------------------------------------------------- /tests/data/0_dummystep/folder/file2.in: -------------------------------------------------------------------------------- 1 | 0_dummystep 2 | -------------------------------------------------------------------------------- /tests/data/residues.top: -------------------------------------------------------------------------------- 1 | # dummy residues 2 | RESIdue DA2 {dammy 2+} 3 | GROUp 4 | ATOM DA+2 TYPE=DA+2 CHARge=+2.0 END 5 | END {DA2} 6 | 7 | residue DE3 8 | 9 | RESIdue DI {dimmy} 10 | RESI DO {dommy} 11 | 12 | residue DU1 {dummy 1+} 13 | GROUp 14 | ATOM DU+1 TYPE=DU+1 CHARge=+1.0 END 15 | END {DU1} 16 | 17 | -------------------------------------------------------------------------------- /tests/golden_data/ambig.tbl.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haddocking/haddock3/7f7f5ee344266a52b32151de833538a9123041a6/tests/golden_data/ambig.tbl.tgz -------------------------------------------------------------------------------- /tests/golden_data/ens_header.pdb: -------------------------------------------------------------------------------- 1 | REMARK 9 MODEL 1 MD5 71098743056e0b95fbfafff690703761 2 | REMARK 9 MODEL 2 MD5 f7ab0b7c751adf44de0f25f53cfee50b 3 | REMARK 9 MODEL 3 MD5 41e028d8d28b8d97148dc5e548672142 4 | REMARK 9 MODEL 4 MD5 761cb5da81d83971c2aae2f0b857ca1e 5 | REMARK 9 MODEL 5 MD5 6c438f941cec7c6dc092c8e48e5b1c10 6 | REMARK MODEL 1 FROM T161-hybrid-fit-C2-NCS_complex_100w.pdb 7 | REMARK MODEL 2 FROM T161-hybrid-fit-C2-NCS_complex_101w.pdb 8 | REMARK MODEL 3 FROM T161-hybrid-fit-C2-NCS_complex_102w.pdb 9 | REMARK MODEL 4 FROM T161-hybrid-fit-C2-NCS_complex_103w.pdb 10 | REMARK MODEL 5 FROM T161-hybrid-fit-C2-NCS_complex_104w.pdb -------------------------------------------------------------------------------- /tests/golden_data/example.act-pass: -------------------------------------------------------------------------------- 1 | 97 98 115 116 117 2 | 91 93 95 118 119 120 3 | -------------------------------------------------------------------------------- /tests/golden_data/example_ambig_1.tbl: -------------------------------------------------------------------------------- 1 | ! HADDOCK AIR restraints for 1st partner 2 | ! 3 | assign ( resid 1 and segid A) 4 | ( 5 | ( resid 1 and segid B) 6 | or 7 | ( resid 2 and segid B) 8 | ) 2.0 2.0 0.0 9 | ! 10 | assign ( resid 2 and segid A) 11 | ( 12 | ( resid 1 and segid B) 13 | or 14 | ( resid 2 and segid B) 15 | ) 2.0 2.0 0.0 16 | ! 17 | ! HADDOCK AIR restraints for 2nd partner 18 | ! 19 | assign ( resid 1 and segid B) 20 | ( 21 | ( resid 1 and segid A) 22 | or 23 | ( resid 2 and segid A) 24 | ) 2.0 2.0 0.0 25 | ! 26 | assign ( resid 2 and segid B) 27 | ( 28 | ( resid 1 and segid A) 29 | or 30 | ( resid 2 and segid A) 31 | ) 2.0 2.0 0.0 32 | -------------------------------------------------------------------------------- /tests/golden_data/example_ambig_2.tbl: -------------------------------------------------------------------------------- 1 | ! HADDOCK AIR restraints for 1st partner 2 | ! 3 | assign ( resid 3 and segid A) 4 | ( 5 | ( resid 3 and segid B) 6 | or 7 | ( resid 4 and segid B) 8 | ) 2.0 2.0 0.0 9 | ! 10 | assign ( resid 4 and segid A) 11 | ( 12 | ( resid 3 and segid B) 13 | or 14 | ( resid 4 and segid B) 15 | ) 2.0 2.0 0.0 16 | ! 17 | ! HADDOCK AIR restraints for 2nd partner 18 | ! 19 | assign ( resid 3 and segid B) 20 | ( 21 | ( resid 3 and segid A) 22 | or 23 | ( resid 4 and segid A) 24 | ) 2.0 2.0 0.0 25 | ! 26 | assign ( resid 4 and segid B) 27 | ( 28 | ( resid 3 and segid A) 29 | or 30 | ( resid 4 and segid A) 31 | ) 2.0 2.0 0.0 32 | -------------------------------------------------------------------------------- /tests/golden_data/example_dendrogram.txt: -------------------------------------------------------------------------------- 1 | 0.00000 7.00000 7.42900 2.00000 2 | 1.00000 10.00000 8.34850 3.00000 3 | 2.00000 8.00000 10.46900 2.00000 4 | 11.00000 12.00000 16.47300 5.00000 5 | 5.00000 9.00000 17.70000 2.00000 6 | 6.00000 13.00000 21.91620 6.00000 7 | 3.00000 15.00000 24.11250 7.00000 8 | 4.00000 16.00000 24.82557 8.00000 9 | 14.00000 17.00000 27.15800 10.00000 10 | -------------------------------------------------------------------------------- /tests/golden_data/example_fcc.matrix: -------------------------------------------------------------------------------- 1 | 1 2 0.06 0.083 2 | -------------------------------------------------------------------------------- /tests/golden_data/example_ilrmsd.matrix: -------------------------------------------------------------------------------- 1 | 1 2 7.530 2 | 1 3 17.975 3 | 1 4 26.060 4 | 1 5 23.225 5 | 1 6 25.157 6 | 1 7 22.237 7 | 1 8 7.429 8 | 1 9 13.730 9 | 1 10 27.317 10 | 2 3 13.527 11 | 2 4 24.912 12 | 2 5 23.456 13 | 2 6 27.039 14 | 2 7 22.517 15 | 2 8 9.167 16 | 2 9 13.908 17 | 2 10 28.274 18 | 3 4 21.353 19 | 3 5 24.951 20 | 3 6 28.342 21 | 3 7 21.445 22 | 3 8 20.665 23 | 3 9 10.469 24 | 3 10 28.384 25 | 4 5 26.906 26 | 4 6 28.906 27 | 4 7 24.405 28 | 4 8 25.995 29 | 4 9 21.950 30 | 4 10 27.851 31 | 5 6 26.139 32 | 5 7 27.771 33 | 5 8 22.860 34 | 5 9 24.610 35 | 5 10 27.181 36 | 6 7 28.006 37 | 6 8 24.079 38 | 6 9 27.952 39 | 6 10 17.700 40 | 7 8 24.148 41 | 7 9 19.234 42 | 7 10 23.908 43 | 8 9 19.033 44 | 8 10 27.783 45 | 9 10 28.210 46 | -------------------------------------------------------------------------------- /tests/golden_data/example_rmsd_matrix.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": [ 3 | { 4 | "created": "2024-04-12 16:42:08", 5 | "file_name": "example_ilrmsd.matrix", 6 | "file_type": { 7 | "py/reduce": [ 8 | { 9 | "py/type": "haddock.libs.libontology.Format" 10 | }, 11 | { 12 | "py/tuple": [ 13 | "matrix" 14 | ] 15 | } 16 | ] 17 | }, 18 | "full_name": "example_ilrmsd.matrix", 19 | "md5": null, 20 | "npairs": 45, 21 | "path": "tests/golden_data", 22 | "py/object": "haddock.libs.libontology.RMSDFile", 23 | "rel_path": { 24 | "py/reduce": [ 25 | { 26 | "py/type": "pathlib.PosixPath" 27 | }, 28 | { 29 | "py/tuple": [ 30 | "..", 31 | "1_ilrmsdmatrix", 32 | "example_ilrmsd.matrix" 33 | ] 34 | } 35 | ] 36 | }, 37 | "restr_fname": null 38 | } 39 | ], 40 | "output": [] 41 | } 42 | -------------------------------------------------------------------------------- /tests/golden_data/params_clustfcc.cfg: -------------------------------------------------------------------------------- 1 | [clustfcc] 2 | cns_exec = "" 3 | max_cpus = true 4 | mode = "local" 5 | batch_type = "slurm" 6 | queue = "" 7 | concat = 1 8 | clean = true 9 | executable = "src/contact_fcc" 10 | contact_distance_cutoff = 5.0 11 | clust_cutoff = 0.6 12 | min_population = 4 13 | strictness = 0.75 14 | -------------------------------------------------------------------------------- /tests/golden_data/params_clustrmsd.cfg: -------------------------------------------------------------------------------- 1 | [clustrmsd] 2 | batch_type = "slurm" 3 | queue = "" 4 | criterion = "distance" 5 | linkage = "average" 6 | min_population = 1 7 | clust_cutoff = 7.5 8 | n_clusters = 4 9 | -------------------------------------------------------------------------------- /tests/golden_data/scan_protprot_complex_1.tsv: -------------------------------------------------------------------------------- 1 | ########################################################## 2 | # `alascan` results for protprot_complex_1.pdb 3 | # 4 | # z_score is calculated with respect to the other residues 5 | ########################################################## 6 | chain res ori_resname end_resname score vdw elec desolv bsa delta_score delta_vdw delta_elec delta_desolv delta_bsa z_score 7 | A 94 ASP ALA -106.700 -29 -316 -13 1494 -4.000 -4 0 0 0 0.000 8 | A 90 NEP ALA -106.700 -30 -316 -13 1494 -3.000 -3 0 0 0 0.000 9 | A 38 ASP ALA -106.700 -31 -316 -13 1494 -2.000 -2 0 0 0 0.000 10 | A 39 VAL ALA -106.700 -32 -316 -13 1494 -1.000 -1 0 0 0 0.000 11 | -------------------------------------------------------------------------------- /tests/test_cli_cfg.py: -------------------------------------------------------------------------------- 1 | """Test haddock3-cfg client.""" 2 | import pytest 3 | 4 | from haddock import config_expert_levels 5 | from haddock.clis import cli_cfg 6 | from haddock.modules import modules_category 7 | 8 | 9 | @pytest.fixture(params=config_expert_levels + ("all",)) 10 | def config_level(request): 11 | """Haddock3 config levels.""" 12 | return request.param 13 | 14 | 15 | @pytest.fixture(params=(True, False)) 16 | def global_params(request): 17 | """Haddock3 config levels.""" 18 | return request.param 19 | 20 | 21 | @pytest.fixture(params=list(modules_category.keys()) + [None]) 22 | def module(request): 23 | return request.param 24 | 25 | 26 | def test_export_cfgs_add_global(module, config_level, global_params): 27 | """Test export all configs work with `add_global` parameter.""" 28 | cli_cfg.main(module, explevel=config_level, global_params=global_params) 29 | 30 | 31 | def test_export_cfgs_details(module, config_level, global_params): 32 | """Test export all configs work with detailed parameter description.""" 33 | cli_cfg.main( 34 | module, 35 | explevel=config_level, 36 | global_params=global_params, 37 | details=True, 38 | ) 39 | -------------------------------------------------------------------------------- /tests/test_cli_copy.py: -------------------------------------------------------------------------------- 1 | """Test client copy.""" 2 | import shutil 3 | from pathlib import Path 4 | 5 | from haddock.clis.cli_cp import main 6 | 7 | from . import tests_path 8 | 9 | 10 | def test_main(): 11 | """Test main function of haddock3-copy CLI.""" 12 | run1 = Path(tests_path, "clis", "hd3_copy", "run1") 13 | run2 = Path(tests_path, "clis", "hd3_copy", "run2") 14 | run2_ref = Path(tests_path, "clis", "hd3_copy", "run2_ref") 15 | main(run1, [0, 2, 3], run2) 16 | compare_files(run2, run2_ref) 17 | # easy way to make sure no file is left behind 18 | compare_files(run2_ref, run2) 19 | shutil.rmtree(run2) 20 | 21 | 22 | def compare_files(folder1, folder2): 23 | for file_folder in folder1.iterdir(): 24 | file_folder_2 = Path(folder2, file_folder.name) 25 | if file_folder.is_file(): 26 | text1 = file_folder.read_text() 27 | text2 = file_folder_2.read_text() 28 | assert text1 == text2 29 | if file_folder.is_dir(): 30 | compare_files(file_folder, file_folder_2) 31 | -------------------------------------------------------------------------------- /tests/test_cli_mpi.py: -------------------------------------------------------------------------------- 1 | from unittest import mock 2 | 3 | import pytest 4 | 5 | from haddock.clis import cli_mpi 6 | from haddock.clis.cli_mpi import get_mpi, split_tasks 7 | 8 | 9 | def test_cli_has_maincli(): 10 | """ 11 | Test maincli func in CLI. 12 | 13 | maincli is used in setup.py. 14 | """ 15 | assert cli_mpi.maincli 16 | 17 | 18 | def test_cli_has_comm(): 19 | """ 20 | Test COMM object in CLI. 21 | 22 | COMM is used in main function. 23 | """ 24 | assert cli_mpi.COMM is None 25 | 26 | 27 | def test_split_tasks(): 28 | 29 | t = split_tasks([1, 2, 3, 4, 5, 6, 7, 8, 9], 3) 30 | 31 | assert t == [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 32 | 33 | 34 | def test_get_mpi_success(): 35 | # Mock the import of mpi4py.MPI 36 | with mock.patch.dict( 37 | "sys.modules", {"mpi4py": mock.Mock(), "mpi4py.MPI": mock.Mock()} 38 | ): 39 | from mpi4py import MPI as _MPI 40 | 41 | MPI, COMM = get_mpi() 42 | assert MPI == _MPI 43 | assert COMM == _MPI.COMM_WORLD 44 | 45 | 46 | def test_get_mpi_import_error(): 47 | # Mock the absence of mpi4py.MPI to simulate ImportError 48 | with mock.patch.dict("sys.modules", {"mpi4py": None}): 49 | with mock.patch("sys.exit") as mock_exit: 50 | get_mpi() 51 | mock_exit.assert_called_once() 52 | 53 | 54 | # Cleanup fixture to reset global state after each test 55 | @pytest.fixture(autouse=True) 56 | def cleanup(): 57 | yield 58 | import haddock.clis.cli_mpi 59 | 60 | haddock.clis.cli_mpi.MPI = None 61 | haddock.clis.cli_mpi.COMM = None 62 | -------------------------------------------------------------------------------- /tests/test_cli_pp.py: -------------------------------------------------------------------------------- 1 | """Test preprocessing client.""" 2 | import os 3 | from pathlib import Path 4 | 5 | import pytest 6 | 7 | from haddock.clis.cli_pp import ap, main 8 | 9 | from . import broken_pdb, corrected_pdb 10 | 11 | 12 | def test_pp_cli(): 13 | """ 14 | Test `haddock-pp` client with broken PDB. 15 | 16 | This is the same PDB used to test the preprocessing library. 17 | """ 18 | main(broken_pdb) 19 | output = Path(Path.cwd(), 'broken_processed.pdb') 20 | assert output.exists() 21 | 22 | result = output.read_text().strip(os.linesep) 23 | expected = corrected_pdb.read_text().strip(os.linesep) 24 | assert result == expected 25 | 26 | output.unlink() 27 | 28 | 29 | @pytest.mark.parametrize( 30 | "arg,key,value", 31 | [ 32 | ('-d', "dry", True), 33 | ('--dry', "dry", True), 34 | ('-t file1.top file2.top', "topfile", ['file1.top', 'file2.top']), 35 | ('--topfile file1.top file2.top', "topfile", ['file1.top', 'file2.top']), # noqa: E501 36 | ('-s somesuffix', 'suffix', 'somesuffix'), 37 | ('--suffix somesuffix', 'suffix', 'somesuffix'), 38 | ('-odir somedir', 'output_directory', Path('somedir')), 39 | ('--output-directory somedir', 'output_directory', Path('somedir')), 40 | ] 41 | ) 42 | def test_cli_args(arg, key, value): 43 | """Test adding arguments to client.""" 44 | cmd = ap.parse_args(('some-file.pdb ' + arg).split()) 45 | assert value == vars(cmd)[key] 46 | -------------------------------------------------------------------------------- /tests/test_core.py: -------------------------------------------------------------------------------- 1 | """Test the core module.""" 2 | 3 | from haddock.core.defaults import max_molecules_allowed 4 | 5 | 6 | def test_max_molecules_allowed(): 7 | assert max_molecules_allowed == 20 8 | -------------------------------------------------------------------------------- /tests/test_core_supported_molecules.py: -------------------------------------------------------------------------------- 1 | """Test supported molecules.""" 2 | import os 3 | 4 | import pytest 5 | 6 | from haddock.core import supported_molecules as SM 7 | 8 | 9 | ZN = """RESIdue ZN2 {zinc 2+} 10 | GROUp 11 | ATOM ZN+2 TYPE=ZN+2 CHARge=+0.96 END ! comment 12 | END {ZN2}""" 13 | 14 | CU = """RESIdue CU2 {copper 2+} 15 | GROUp 16 | ATOM CU+2 TYPE=CU+2 CHARge=+2.0 END 17 | END {CU2}""" 18 | 19 | 20 | @pytest.mark.parametrize( 21 | "text, expected", 22 | [ 23 | (ZN, ("ZN2", ("ZN+2",), 0.96)), 24 | (CU, ("CU2", ("CU+2",), 2)), 25 | ] 26 | ) 27 | def test_read_top_file(text, expected): 28 | """Test read top file to CNSTopologyResidue.""" 29 | result = SM._read_residues_from_top_file(text.split(os.linesep)) 30 | assert isinstance(result, list) 31 | assert isinstance(result[0], SM.CNSTopologyResidue) 32 | 33 | resname, atom, charge = expected 34 | assert result[0].resname == resname 35 | assert result[0].atoms == atom 36 | assert result[0].charge == charge 37 | 38 | 39 | def test_read_top_file_2(): 40 | text = ZN + os.linesep + CU 41 | result = SM._read_residues_from_top_file(text.split(os.linesep)) 42 | 43 | assert isinstance(result, list) 44 | assert len(result) == 2 45 | assert all(isinstance(r, SM.CNSTopologyResidue) for r in result) 46 | 47 | assert result[0].resname == "ZN2" 48 | assert result[0].atoms == ("ZN+2",) 49 | assert result[0].charge == 0.96 50 | 51 | assert result[1].resname == "CU2" 52 | assert result[1].atoms == ("CU+2",) 53 | assert result[1].charge == 2 54 | -------------------------------------------------------------------------------- /tests/test_exceptions.py: -------------------------------------------------------------------------------- 1 | """Test exceptions module.""" 2 | import pytest 3 | 4 | from haddock.core.exceptions import CNSRunningError 5 | 6 | 7 | def test_cns_error(): 8 | """Test CNS error.""" 9 | with pytest.raises(CNSRunningError): 10 | raise CNSRunningError(b'something') 11 | -------------------------------------------------------------------------------- /tests/test_extend_run.py: -------------------------------------------------------------------------------- 1 | """Test extend run gear.""" 2 | import argparse 3 | from pathlib import Path 4 | 5 | import pytest 6 | 7 | from haddock.gear.extend_run import add_extend_run 8 | 9 | 10 | @pytest.mark.parametrize( 11 | 'path,expected', 12 | [ 13 | ('path', Path('path')), 14 | ('.', Path('.')), 15 | ] 16 | ) 17 | def test_add_argument_copy_args(path, expected): 18 | ap = argparse.ArgumentParser() 19 | add_extend_run(ap) 20 | cmd = ap.parse_args(f'--extend-run {path}'.split()) 21 | assert cmd.extend_run == expected 22 | 23 | 24 | def test_add_argument_copy_none(): 25 | ap = argparse.ArgumentParser() 26 | add_extend_run(ap) 27 | cmd = ap.parse_args([]) 28 | assert cmd.extend_run is None 29 | -------------------------------------------------------------------------------- /tests/test_gear_parameters.py: -------------------------------------------------------------------------------- 1 | """Test mandatory parameters.""" 2 | from haddock.core.defaults import RUNDIR 3 | # this import is also a test 4 | from haddock.gear.parameters import ( # noqa: F401 5 | MANDATORY_YAML, 6 | OPTIONAL_YAML, 7 | _mandatory_parameters, 8 | config_mandatory_general_parameters, 9 | config_optional_general_parameters, 10 | config_optional_general_parameters_dict, 11 | ) 12 | 13 | 14 | def test_mandatory_config_set(): 15 | """Test if is set.""" 16 | assert isinstance(config_mandatory_general_parameters, set) 17 | 18 | 19 | def test_optional_config_set(): 20 | """Test if is set.""" 21 | assert isinstance(config_optional_general_parameters, set) 22 | 23 | 24 | def test_rundir_in_yaml(): 25 | """Test RUNDIR is in yaml.""" 26 | assert RUNDIR in _mandatory_parameters 27 | 28 | 29 | def test_rundir_in_set(): 30 | """Test RUNDIR is in yaml.""" 31 | assert RUNDIR in config_mandatory_general_parameters 32 | 33 | 34 | def test_optional_skip_preprocessing_yaml(): 35 | assert "preprocess" in config_optional_general_parameters_dict 36 | 37 | 38 | def test_optional_skip_preprocessing_set(): 39 | assert "preprocess" in config_optional_general_parameters 40 | -------------------------------------------------------------------------------- /tests/test_libcli.py: -------------------------------------------------------------------------------- 1 | """Test lib client.""" 2 | import argparse 3 | from pathlib import Path 4 | 5 | import pytest 6 | 7 | from haddock.libs import libcli 8 | 9 | 10 | @pytest.mark.parametrize( 11 | 'cmd,expected', 12 | [ 13 | ('-odir my_folder', Path("my_folder")), 14 | ('--output-directory my_folder/other', Path("my_folder", "other")), 15 | ] 16 | ) 17 | def test_output_dir(cmd, expected): 18 | """Test output directory.""" 19 | parser = argparse.ArgumentParser() 20 | libcli.add_output_dir_arg(parser) 21 | v = vars(parser.parse_args(cmd.split())) 22 | assert v['output_directory'] == expected 23 | 24 | 25 | def test_output_dir_default(): 26 | """Test output directory.""" 27 | parser = argparse.ArgumentParser() 28 | libcli.add_output_dir_arg(parser) 29 | v = vars(parser.parse_args([])) 30 | assert v['output_directory'] == Path.cwd() 31 | 32 | 33 | @pytest.mark.parametrize( 34 | 'cmd,expected', 35 | [ 36 | ('-n 4', 4), 37 | ('--ncores 2', 2), 38 | ('', 1), 39 | ('-n', None), 40 | ('--ncores', None), 41 | ], 42 | ) 43 | def test_ncores(cmd, expected): 44 | """Test output directory.""" 45 | parser = argparse.ArgumentParser() 46 | libcli.add_ncores_arg(parser) 47 | v = vars(parser.parse_args(cmd.split())) 48 | assert v['ncores'] == expected 49 | -------------------------------------------------------------------------------- /tests/test_libfunc.py: -------------------------------------------------------------------------------- 1 | """Test libfunc.""" 2 | 3 | from haddock.libs.libfunc import chainf, chainfs 4 | 5 | 6 | def test_chainf(): 7 | result = chainf(2, *[str, int, float]) 8 | assert isinstance(result, float) 9 | assert result == 2.0 10 | 11 | 12 | def test_chainfs(): 13 | do = chainfs(str, int, float) 14 | result = do(2) 15 | assert isinstance(result, float) 16 | assert result == 2.0 17 | -------------------------------------------------------------------------------- /tests/test_liblog.py: -------------------------------------------------------------------------------- 1 | """Test liblog.""" 2 | import argparse 3 | 4 | import pytest 5 | 6 | from haddock import log 7 | from haddock.libs import liblog 8 | 9 | 10 | @pytest.mark.parametrize( 11 | 'func', 12 | [ 13 | liblog.add_sysout_handler, 14 | liblog.add_logfile_handler, 15 | ], 16 | ) 17 | def test_add_handlers(func): 18 | """Test add handlers functions.""" 19 | log.handlers.clear() 20 | func(log) 21 | log.info('something') 22 | assert len(log.handlers) == 1 23 | 24 | 25 | def test_dics_keys(): 26 | """Test log levels are okay in dics.""" 27 | a = list(liblog.log_formatters.keys()) 28 | b = list(liblog.log_levels.keys()) 29 | 30 | assert a == b 31 | assert len(a) == 5 32 | 33 | 34 | @pytest.mark.parametrize('key', liblog.log_levels.keys()) 35 | def test_add_loglevel_arg(key): 36 | """Test adds log level argument to CLI.""" 37 | ap = argparse.ArgumentParser() 38 | liblog.add_loglevel_arg(ap) 39 | cmd = ap.parse_args(f'--log-level {key}'.split()) 40 | assert cmd.log_level 41 | 42 | 43 | def test_add_loglevel_arg_error(): 44 | """Test adds log level argument to CLI.""" 45 | ap = argparse.ArgumentParser() 46 | liblog.add_loglevel_arg(ap) 47 | with pytest.raises(SystemExit) as err: 48 | ap.parse_args('--log-level BAD'.split()) 49 | 50 | assert err.value.code == 2 51 | -------------------------------------------------------------------------------- /tests/test_libtimer.py: -------------------------------------------------------------------------------- 1 | """Test libtimer.""" 2 | import pytest 3 | 4 | from haddock.libs.libtimer import convert_seconds_to_min_sec, log_time 5 | 6 | 7 | def test_logtime(): 8 | with log_time("some string"): 9 | 2 * 2 10 | 11 | 12 | @pytest.mark.parametrize( 13 | "seconds,expected", 14 | [ 15 | (60, "1 minute and 0 seconds"), 16 | (120, "2 minutes and 0 seconds"), 17 | (40, "40 seconds"), 18 | (179, "2 minutes and 59 seconds"), 19 | (3600, "1h0m0s"), 20 | (3601, "1h0m1s"), 21 | (3600 + 120, "1h2m0s"), 22 | (3600 + 125, "1h2m5s"), 23 | (3600 * 2 + 125, "2h2m5s"), 24 | (3600 * 2 + 179, "2h2m59s"), 25 | (3600 * 2 + 180, "2h3m0s"), 26 | ] 27 | ) 28 | def test_convert_seconds(seconds, expected): 29 | """Convert seconds to min&sec.""" 30 | result = convert_seconds_to_min_sec(seconds) 31 | assert result == expected 32 | -------------------------------------------------------------------------------- /tests/test_libworkflow.py: -------------------------------------------------------------------------------- 1 | """Uni-test functions for the Workflow Manager.""" 2 | 3 | import tempfile 4 | from haddock.libs.libworkflow import WorkflowManager 5 | from haddock.core.typing import Any 6 | 7 | 8 | def test_WorkflowManager(caplog): 9 | """Test WorkflowManager.""" 10 | caplog.set_level("INFO") 11 | ParamDict = { 12 | 'topoaa.1': { 13 | 'autohis': True, 14 | 'molecules': ['fake.pdb'], 15 | 'clean': True, 16 | 'offline': False, 17 | 'mode': "local", 18 | 'ncores': 2, 19 | } 20 | } 21 | with tempfile.TemporaryDirectory(dir=".") as _tmpdir: 22 | workflow = WorkflowManager( 23 | ParamDict, 24 | start=0, 25 | other_params=Any, 26 | ) 27 | workflow.postprocess() 28 | first_log_line = str(caplog.records[0].message) 29 | second_log_line = str(caplog.records[1].message) 30 | assert first_log_line == "Reading instructions step 0_topoaa" 31 | assert second_log_line == "Running haddock3-analyse on ./, modules [], with top_clusters = 10" # noqa : E501 32 | -------------------------------------------------------------------------------- /tests/test_module_clustfcc.py: -------------------------------------------------------------------------------- 1 | """Test the clustfcc module.""" 2 | 3 | import os 4 | import tempfile 5 | from pathlib import Path 6 | 7 | import pytest 8 | 9 | from haddock.libs.libontology import ModuleIO 10 | from haddock.modules.analysis.clustfcc import DEFAULT_CONFIG as clustfcc_pars 11 | from haddock.modules.analysis.clustfcc import HaddockModule as ClustFCCModule 12 | 13 | 14 | @pytest.fixture(name="fcc_module") 15 | def fixture_fcc_module(monkeypatch): 16 | """Clustfcc module.""" 17 | with tempfile.TemporaryDirectory() as tempdir: 18 | monkeypatch.chdir(tempdir) 19 | yield ClustFCCModule(order=1, path=Path("."), initial_params=clustfcc_pars) 20 | 21 | 22 | def test_io_json(fcc_module, protprot_input_list): 23 | """Test the correct creation of the io.json file.""" 24 | # set the input and output models 25 | fcc_module.previous_io.output = protprot_input_list 26 | fcc_module.output_models = protprot_input_list 27 | 28 | # export models 29 | fcc_module.export_io_models() 30 | expected_io = Path(f"{fcc_module.path}/io.json") 31 | 32 | assert expected_io.exists() 33 | 34 | # check the content of io.json 35 | io = ModuleIO() 36 | io.load(expected_io) 37 | assert io.input[0].file_name == protprot_input_list[0].file_name 38 | assert io.output[1].file_name == protprot_input_list[1].file_name 39 | -------------------------------------------------------------------------------- /tests/test_modules_analysis.py: -------------------------------------------------------------------------------- 1 | """Test general functions of haddock3 analysis modules.""" 2 | 3 | from haddock.modules.analysis import get_analysis_exec_mode 4 | 5 | 6 | def test_get_analysis_exec_mode(): 7 | """Test the get_analysis_exec_mode function.""" 8 | assert get_analysis_exec_mode("local") == "local" 9 | assert get_analysis_exec_mode("batch") == "local" 10 | assert get_analysis_exec_mode("mpi") == "mpi" 11 | -------------------------------------------------------------------------------- /tests/test_validations.py: -------------------------------------------------------------------------------- 1 | """Test specific validations modules.""" 2 | from pathlib import Path 3 | 4 | import pytest 5 | 6 | from haddock.core.defaults import MODULE_DEFAULT_YAML 7 | from haddock.core.exceptions import ConfigurationError 8 | from haddock.gear.validations import v_rundir 9 | 10 | 11 | @pytest.mark.parametrize( 12 | "rundir", 13 | [ 14 | "some/folder", 15 | "some_folder/other", 16 | "some_folder_2/other", 17 | r"some\folder\on\windows", 18 | Path('some', 'folder', 'file.f'), 19 | ] 20 | ) 21 | def test_v_rundir_okay(rundir): 22 | """Test rundir validation okay.""" 23 | v_rundir(rundir) 24 | 25 | 26 | @pytest.mark.parametrize( 27 | "rundir", 28 | [ 29 | "some/folder with spaces", 30 | "some_folder/ðßæ", 31 | "joão/folder", 32 | ] 33 | ) 34 | def test_v_rundir_invalid(rundir): 35 | """Test rundir validation okay.""" 36 | with pytest.raises(ConfigurationError): 37 | v_rundir(rundir) 38 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/arm-aarch64-linux/0read.me: -------------------------------------------------------------------------------- 1 | To install on 64-bit linux machines use the following commands: 2 | 3 | make install compiler=ifort ! compilation with ifort compiler 4 | make install compiler=ifort_mp ! compilation with ifort compiler with OpenMP parallelization enabled 5 | make install compiler=gfortran ! compilation with gfortran compiler 6 | make install compiler=gfortran_mp ! compilation with gfortran compiler with OpenMP parallelization enabled 7 | make install compiler=pgf95 ! compilation with pgf95 compiler 8 | make install compiler=ifort_mp_profile ! for development: compilation with ifort profiler 9 | make install compiler=ifort_mp_tcheck ! for development: compilation with ifort thread checking 10 | 11 | 12 | 13 | The number of threads during run time is set in cns_solve_env. 14 | To change it to a different number set it to a different 15 | number after sourcing cns_solve_env: 16 | 17 | setenv OMP_NUM_THREADS 18 | 19 | where is the number of desired processors used. 20 | 21 | For advanced debugging with the ifort compiler, include the following debug options during build: 22 | make install compiler=ifort debug='-g -mp -traceback -debug extended -debug inline_debug_info' 23 | 24 | It sometimes helps to include "-check uninit" which emits a run-time error if memory is accessed 25 | that is not initialized. On linux systems, you can also try the Electric Fence (-lefence) option. -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/arm-aarch64-linux/Makefile.header.2.gfortran: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -static 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/arm-aarch64-linux/Makefile.header.7.gfortran_mp: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran -fopenmp 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -march=native -mtune=native 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w -fopenmp $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/arm-aarch64-linux/arch_env: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | # 3 | # architecture specific setup file for CNSsolve 4 | # 5 | # written by: Axel Brunger, Ralf Grosse-Kunstleve and Paul Adams 6 | # 7 | # copyright Yale University 8 | # 9 | # fft library 10 | # use CNS code by default 11 | if ( ! $?CNS_FFTDIR ) then 12 | setenv CNS_FFTDIR "" 13 | endif 14 | if ( ! $?CNS_FFTLIB ) then 15 | setenv CNS_FFTLIB "" 16 | endif 17 | # 18 | # set LEXLIB (linux is different from most others) 19 | # 20 | setenv LEXLIB "l" 21 | if ( $CNS_ARCH =~ *linux* ) then 22 | setenv LEXLIB "fl" 23 | endif 24 | # 25 | # set -malign-double flag on intel-based machines 26 | # 27 | setenv CNS_MALIGN_I86 "" 28 | ##if ( $CNS_ARCH =~ *-i[3456789]86-* ) then 29 | ## setenv CNS_MALIGN_I86 "-malign-double" 30 | ##endif 31 | # 32 | # machine architecture string for C preprocessor 33 | # 34 | setenv CNS_ARCH_TYPE LINUX 35 | # 36 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/arm-aarch64-linux/machine_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void outbuf_(void) 7 | { 8 | (void) setvbuf(stdout, NULL, _IONBF, 0); 9 | } 10 | 11 | int csatty_(fildes) 12 | int *fildes; 13 | { 14 | return isatty(*fildes); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/intel-x86_64bit-linux/0read.me: -------------------------------------------------------------------------------- 1 | To install on 64-bit linux machines use the following commands: 2 | 3 | make install compiler=ifort ! compilation with ifort compiler 4 | make install compiler=ifort_mp ! compilation with ifort compiler with OpenMP parallelization enabled 5 | make install compiler=gfortran ! compilation with gfortran compiler 6 | make install compiler=gfortran_mp ! compilation with gfortran compiler with OpenMP parallelization enabled 7 | make install compiler=pgf95 ! compilation with pgf95 compiler 8 | make install compiler=ifort_mp_profile ! for development: compilation with ifort profiler 9 | make install compiler=ifort_mp_tcheck ! for development: compilation with ifort thread checking 10 | 11 | 12 | 13 | The number of threads during run time is set in cns_solve_env. 14 | To change it to a different number set it to a different 15 | number after sourcing cns_solve_env: 16 | 17 | setenv OMP_NUM_THREADS 18 | 19 | where is the number of desired processors used. 20 | 21 | For advanced debugging with the ifort compiler, include the following debug options during build: 22 | make install compiler=ifort debug='-g -mp -traceback -debug extended -debug inline_debug_info' 23 | 24 | It sometimes helps to include "-check uninit" which emits a run-time error if memory is accessed 25 | that is not initialized. On linux systems, you can also try the Electric Fence (-lefence) option. -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/intel-x86_64bit-linux/Makefile.header.2.gfortran: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -static 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/intel-x86_64bit-linux/Makefile.header.7.gfortran_mp: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran -fopenmp 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -march=native -mtune=native 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w -fopenmp $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/intel-x86_64bit-linux/arch_env: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | # 3 | # architecture specific setup file for CNSsolve 4 | # 5 | # written by: Axel Brunger, Ralf Grosse-Kunstleve and Paul Adams 6 | # 7 | # copyright Yale University 8 | # 9 | # fft library 10 | # use CNS code by default 11 | if ( ! $?CNS_FFTDIR ) then 12 | setenv CNS_FFTDIR "" 13 | endif 14 | if ( ! $?CNS_FFTLIB ) then 15 | setenv CNS_FFTLIB "" 16 | endif 17 | # 18 | # set LEXLIB (linux is different from most others) 19 | # 20 | setenv LEXLIB "l" 21 | if ( $CNS_ARCH =~ *linux* ) then 22 | setenv LEXLIB "fl" 23 | endif 24 | # 25 | # set -malign-double flag on intel-based machines 26 | # 27 | setenv CNS_MALIGN_I86 "" 28 | ##if ( $CNS_ARCH =~ *-i[3456789]86-* ) then 29 | ## setenv CNS_MALIGN_I86 "-malign-double" 30 | ##endif 31 | # 32 | # machine architecture string for C preprocessor 33 | # 34 | setenv CNS_ARCH_TYPE LINUX 35 | # 36 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/intel-x86_64bit-linux/machine_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void outbuf_(void) 7 | { 8 | (void) setvbuf(stdout, NULL, _IONBF, 0); 9 | } 10 | 11 | int csatty_(fildes) 12 | int *fildes; 13 | { 14 | return isatty(*fildes); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/linux/0read.me: -------------------------------------------------------------------------------- 1 | To install on 32-bit linux machines use the following commands: 2 | 3 | make install compiler=ifort ! compilation with ifort compiler 4 | make install compiler=ifort_mp ! compilation with ifort compiler with OpenMP parallelization enabled 5 | make install compiler=gfortran ! compilation with gfortran compiler 6 | make install compiler=gfortran_mp ! compilation with gfortran compiler with OpenMP parallelization enabled 7 | make install compiler=pgf95 ! compilation with pgf95 compiler 8 | 9 | The number of threads during run time is set in cns_solve_env. 10 | To change it to a different number set it to a different 11 | number after sourcing cns_solve_env: 12 | 13 | setenv OMP_NUM_THREADS 14 | 15 | where is the number of desired processors used. 16 | 17 | For advanced debugging with the ifort compiler, include the following debug options during build: 18 | make install compiler=ifort debug='-g -mp -traceback -debug extended -debug inline_debug_info' 19 | 20 | It sometimes helps to include "-check uninit" which emits a run-time error if memory is accessed 21 | that is not initialized. On linux systems, you can also try the Electric Fence (-lefence) option. -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/linux/Makefile.header.2.gfortran: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -static 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/linux/Makefile.header.5.gfortran_mp: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran -fopenmp 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -march=native -mtune=native 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w -fopenmp $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/linux/arch_env: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | # 3 | # architecture specific setup file for CNSsolve 4 | # 5 | # written by: Axel Brunger, Ralf Grosse-Kunstleve and Paul Adams 6 | # 7 | # copyright Yale University 8 | # 9 | # fft library 10 | # use CNS code by default 11 | if ( ! $?CNS_FFTDIR ) then 12 | setenv CNS_FFTDIR "" 13 | endif 14 | if ( ! $?CNS_FFTLIB ) then 15 | setenv CNS_FFTLIB "" 16 | endif 17 | # 18 | # set LEXLIB (linux is different from most others) 19 | # 20 | setenv LEXLIB "l" 21 | if ( $CNS_ARCH =~ *linux* ) then 22 | setenv LEXLIB "fl" 23 | endif 24 | # 25 | # set -malign-double flag on intel-based machines 26 | # 27 | setenv CNS_MALIGN_I86 "" 28 | ##if ( $CNS_ARCH =~ *-i[3456789]86-* ) then 29 | ## setenv CNS_MALIGN_I86 "-malign-double" 30 | ##endif 31 | # 32 | # machine architecture string for C preprocessor 33 | # 34 | setenv CNS_ARCH_TYPE LINUX 35 | # 36 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/linux/machine_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void outbuf_(void) 7 | { 8 | (void) setvbuf(stdout, NULL, _IONBF, 0); 9 | } 10 | 11 | int csatty_(fildes) 12 | int *fildes; 13 | { 14 | return isatty(*fildes); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-arm-darwin/0read.me: -------------------------------------------------------------------------------- 1 | To install on 64-bit linux machines use the following commands: 2 | 3 | make install compiler=ifort ! compilation with ifort compiler 4 | make install compiler=ifort_mp ! compilation with ifort compiler with OpenMP parallelization enabled 5 | make install compiler=gfortran ! compilation with gfortran compiler 6 | make install compiler=gfortran_mp ! compilation with gfortran compiler with OpenMP parallelization enabled 7 | make install compiler=pgf95 ! compilation with pgf95 compiler 8 | make install compiler=ifort_mp_profile ! for development: compilation with ifort profiler 9 | make install compiler=ifort_mp_tcheck ! for development: compilation with ifort thread checking 10 | 11 | 12 | 13 | The number of threads during run time is set in cns_solve_env. 14 | To change it to a different number set it to a different 15 | number after sourcing cns_solve_env: 16 | 17 | setenv OMP_NUM_THREADS 18 | 19 | where is the number of desired processors used. 20 | 21 | For advanced debugging with the ifort compiler, include the following debug options during build: 22 | make install compiler=ifort debug='-g -mp -traceback -debug extended -debug inline_debug_info' 23 | 24 | It sometimes helps to include "-check uninit" which emits a run-time error if memory is accessed 25 | that is not initialized. On linux systems, you can also try the Electric Fence (-lefence) option. -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-arm-darwin/Makefile.header.1.gfortran: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math -static 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" 30 | # F77LINK="" CCLINK="-lm" LEXLIB="fl" 31 | 32 | #============================================================================== 33 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-arm-darwin/arch_env: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | # 3 | # architecture specific setup file for CNSsolve 4 | # 5 | # written by: Axel Brunger, Ralf Grosse-Kunstleve and Paul Adams 6 | # 7 | # copyright Yale University 8 | # 9 | # fft library 10 | # use CNS code by default 11 | if ( ! $?CNS_FFTDIR ) then 12 | setenv CNS_FFTDIR "" 13 | endif 14 | if ( ! $?CNS_FFTLIB ) then 15 | setenv CNS_FFTLIB "" 16 | endif 17 | # 18 | # set LEXLIB (linux is different from most others) 19 | # 20 | setenv LEXLIB "l" 21 | if ( $CNS_ARCH =~ *linux* ) then 22 | setenv LEXLIB "fl" 23 | endif 24 | # 25 | # set -malign-double flag on intel-based machines 26 | # 27 | setenv CNS_MALIGN_I86 "" 28 | ##if ( $CNS_ARCH =~ *-i[3456789]86-* ) then 29 | ## setenv CNS_MALIGN_I86 "-malign-double" 30 | ##endif 31 | # 32 | # machine architecture string for C preprocessor 33 | # 34 | setenv CNS_ARCH_TYPE LINUX 35 | # 36 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-arm-darwin/machine_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void outbuf_(void) 7 | { 8 | (void) setvbuf(stdout, NULL, _IONBF, 0); 9 | } 10 | 11 | int csatty_(fildes) 12 | int *fildes; 13 | { 14 | return isatty(*fildes); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-intel-darwin/Makefile.header.7.gfortran: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # # 3 | # Machine dependent Makefile header for CNSsolve # 4 | # Paul Adams 20-10-98 # 5 | # copyright Yale University # 6 | # # 7 | ############################################################################### 8 | 9 | # fortran options 10 | F77 = gfortran 11 | F77STD = -fdefault-integer-8 -w -fallow-argument-mismatch 12 | F77OPT = -O3 $(CNS_MALIGN_I86) -funroll-loops -ffast-math 13 | F77FLAGS = $(F77STD) $(F77OPT) $(EXT_F77FLAGS) $(F77BUG) 14 | 15 | # C options 16 | CC = gcc 17 | CPP = g++ 18 | CCFLAGS = -O -DINTEGER='long int' -DCNS_ARCH_TYPE_$(CNS_ARCH_TYPE) $(EXT_CCFLAGS) 19 | 20 | # link options 21 | LD = gfortran 22 | LDFLAGS = -w $(EXT_LDFLAGS) -static-libgfortran 23 | 24 | # utility programs 25 | compile-utils: 26 | @ cd $(CNS_INST)/utils; \ 27 | make utils F77="$(F77)" CC="$(CC)" CPP="$(CPP)"\ 28 | F77FLAGS="-w -O" CCFLAGS="-O" \ 29 | F77LINK="" CCLINK="-lm" LEXLIB="fl" 30 | 31 | #============================================================================== 32 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-intel-darwin/arch_env: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | # 3 | # architecture specific setup file for CNSsolve 4 | # 5 | # written by: Axel Brunger, Ralf Grosse-Kunstleve and Paul Adams 6 | # 7 | # copyright Yale University 8 | # 9 | # fft library 10 | # use CNS code by default 11 | if ( ! $?CNS_FFTDIR ) then 12 | setenv CNS_FFTDIR "" 13 | endif 14 | if ( ! $?CNS_FFTLIB ) then 15 | setenv CNS_FFTLIB "" 16 | endif 17 | # 18 | # set LEXLIB (linux is different from most others) 19 | # 20 | setenv LEXLIB "l" 21 | if ( $CNS_ARCH =~ *linux* ) then 22 | setenv LEXLIB "fl" 23 | endif 24 | # 25 | # set -malign-double flag on intel-based machines 26 | # 27 | setenv CNS_MALIGN_I86 "" 28 | ##if ( $CNS_ARCH =~ *-i[3456789]86-* ) then 29 | ## setenv CNS_MALIGN_I86 "-malign-double" 30 | ##endif 31 | # 32 | # machine architecture string for C preprocessor 33 | # 34 | setenv CNS_ARCH_TYPE LINUX 35 | # 36 | -------------------------------------------------------------------------------- /varia/cns1.3/instlib/machine/supported/mac-intel-darwin/machine_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void outbuf_(void) 7 | { 8 | (void) setvbuf(stdout, NULL, _IONBF, 0); 9 | } 10 | 11 | int csatty_(fildes) 12 | int *fildes; 13 | { 14 | return isatty(*fildes); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /varia/cns1.3/source/cns.inc: -------------------------------------------------------------------------------- 1 | C 2 | C File: cns.inc 3 | C ============= 4 | C 5 | C This include file contains parameters which define array dimensions in 6 | C CNS. These parameters are used by other include files to define sizes 7 | C of common-block arrays 8 | C 9 | C Authors: Axel T. Brunger, Paul Adams, Ralf Grosse-Kunstleve 10 | C 11 | C================================================================= 12 | C 13 | C maximum number of atoms 14 | C NOTE: 5-char Hybrid-36 limit is 87440031 15 | C 16 | INTEGER MAX_ATOM 17 | PARAMETER (MAX_ATOM=1000000) 18 | C 19 | C================================================================= 20 | C 21 | C word size 22 | C 23 | INTEGER WORD_SIZE 24 | PARAMETER (WORD_SIZE=264) 25 | C 26 | C================================================================= 27 | C 28 | C string size 29 | C 30 | INTEGER STRING_SIZE 31 | PARAMETER (STRING_SIZE=264) 32 | C 33 | C================================================================= 34 | C 35 | C number of buffer lines 36 | C 37 | INTEGER NUM_BUFFER 38 | PARAMETER (NUM_BUFFER=65536) 39 | C 40 | C================================================================= 41 | C 42 | C maximum number of pairs of interacting groups 43 | C 44 | INTEGER MAX_PIGS 45 | PARAMETER (MAX_PIGS=5000) 46 | C 47 | C================================================================= 48 | C 49 | C length of xray-object names 50 | C 51 | INTEGER XRNAME_SIZE 52 | PARAMETER (XRNAME_SIZE=20) 53 | C 54 | C================================================================= 55 | C 56 | -------------------------------------------------------------------------------- /varia/cns1.3/source/collapse.inc: -------------------------------------------------------------------------------- 1 | C ============== 2 | C 3 | C collapse.fcm 4 | C 5 | C holds a few things for the collapse energy term 6 | C 7 | C JJK 6/14/96 8 | C ============== 9 | DOUBLE PRECISION KCOLLAPSE, RTARGET 10 | INTEGER CLPSSELPTR, NSELECTED 11 | C 12 | C common blocks 13 | C 14 | COMMON /ICLP/ CLPSSELPTR, NSELECTED 15 | COMMON /RCLP/ KCOLLAPSE, RTARGET 16 | SAVE /ICLP/ 17 | SAVE /RCLP/ 18 | 19 | -------------------------------------------------------------------------------- /varia/cns1.3/source/fantaxplor.inc: -------------------------------------------------------------------------------- 1 | C ------------------------------------------------------------------ 2 | C FANTALIN additional stuff 3 | C 4 | C By Gabriele Cavallaro, Andrea Giachetti and Giacomo Parigi (2003) 5 | C ------------------------------------------------------------------ 6 | CHARACTER*4 NRESFA,NTYPEFA,NRESIDFA 7 | 8 | COMMON NRESFA(1000),NTYPEFA(1000),NRESIDFA(1000) 9 | -------------------------------------------------------------------------------- /varia/cns1.3/source/initia.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE ATMINI(ISTART,ISTOP) 2 | C 3 | C Subroutine sets coordinate arrays and harmonic constraint array 4 | C to default values for atom numbers between ISTART and ISTOP. 5 | C 6 | C Author: Axel T. Brunger 7 | C 8 | IMPLICIT NONE 9 | C input/output 10 | INCLUDE 'cns.inc' 11 | INCLUDE 'mtf.inc' 12 | INCLUDE 'cnst.inc' 13 | INCLUDE 'coord.inc' 14 | INCLUDE 'coordc.inc' 15 | INCLUDE 'deriv.inc' 16 | INCLUDE 'heap.inc' 17 | INTEGER ISTART, ISTOP 18 | C local 19 | INTEGER I 20 | DOUBLE PRECISION ANUM 21 | PARAMETER (ANUM=9999.0D0) 22 | C begin 23 | DO I=ISTART,ISTOP 24 | X(I)=ANUM 25 | Y(I)=ANUM 26 | Z(I)=ANUM 27 | WMAIN(I)=0.0D0 28 | QMAIN(I)=1.0D0 29 | XCOMP(I)=ANUM 30 | YCOMP(I)=ANUM 31 | ZCOMP(I)=ANUM 32 | WCOMP(I)=0.0D0 33 | QCOMP(I)=1.0D0 34 | KCNSTR(I)=0.0D0 35 | KZCNSTR(I)=0.0D0 36 | RMSD(I)=0.0D0 37 | REFX(I)=ANUM 38 | REFY(I)=ANUM 39 | REFZ(I)=ANUM 40 | FBETA(I)=0.0D0 41 | DX(I)=0.0D0 42 | DY(I)=0.0D0 43 | DZ(I)=0.0D0 44 | XV(I)=0.0D0 45 | YV(I)=0.0D0 46 | ZV(I)=0.0D0 47 | IMOVE(I)=0 48 | END DO 49 | CALL ATMIN2(HEAP(IINTER(1)),ISTART,ISTOP) 50 | RETURN 51 | END 52 | C 53 | SUBROUTINE ATMIN2(INTERE,ISTART,ISTOP) 54 | C 55 | IMPLICIT NONE 56 | C I/O 57 | INTEGER INTERE(*), ISTART, ISTOP 58 | C local 59 | INTEGER I 60 | C begin 61 | DO I=ISTART,ISTOP 62 | INTERE(I)=0 63 | ENDDO 64 | C 65 | RETURN 66 | END 67 | -------------------------------------------------------------------------------- /varia/cns1.3/source/version.inc: -------------------------------------------------------------------------------- 1 | C 2 | C Version.inc 3 | INTEGER MXVLEN 4 | PARAMETER (MXVLEN=3) 5 | C 6 | CHARACTER*(MXVLEN) CNSVERSION 7 | CHARACTER*(1) CNSPATCH 8 | C 9 | C the version number for CNS 10 | PARAMETER (CNSVERSION='1.3') 11 | C 12 | C the patch level for this version 13 | PARAMETER (CNSPATCH='UU') 14 | C 15 | -------------------------------------------------------------------------------- /varia/lmod/README.md: -------------------------------------------------------------------------------- 1 | ### Using haddock3 with module 2 | 3 | This directory provides an example module for using haddock3 with the `module` command if installed on your system. 4 | `module` is part of the lmod software (refer to documentation below for details). In short, it allows to enable and disable software at wish on a server. 5 | 6 | This directory contains an example module file for haddock3. It assumes that haddock3 has been installed using miniconda3. The module will source the conda environment and activate haddock3. To use it in your enviroment, someone with admin rights will have to edit it and place it in the proper location. 7 | 8 | To configure the module script for your system, edit the provided `haddock3/3.0.0.lua` file and change the following line to specifiy the installation location of miniconda3: 9 | 10 | ``` 11 | local conda_dir = "/trinity/home/software/miniconda3" 12 | 13 | ``` 14 | 15 | Then copy the entire haddock3 directory into the `modulefiles` directory of your lmod installation. E.g on our system this is: `/opt/ohpc/pub/modulefiles/` as lmod was installed as part of the open HPC software stack (see for example https://openhpc.github.io/cloudwg/) 16 | 17 | 18 | 19 | #### Documentation 20 | 21 | Lmod Web Sites 22 | 23 | * Documentation: http://lmod.readthedocs.org 24 | * Github: https://github.com/TACC/Lmod 25 | * Sourceforge: https://lmod.sf.net 26 | * TACC Homepage: https://www.tacc.utexas.edu/research-development/tacc-projects/lmod 27 | -------------------------------------------------------------------------------- /varia/lmod/haddock3/3.0.0.lua: -------------------------------------------------------------------------------- 1 | local help_message = [[ 2 | 3 | HADDOCK3 environment based on miniconda with Python3.9 4 | 5 | ]] 6 | 7 | help(help_message,"\n") 8 | 9 | 10 | whatis("Name: haddock") 11 | whatis("Version: 3.0.0") 12 | whatis("Category: python conda haddock3") 13 | whatis("Keywords: python conda haddock3") 14 | whatis("Description: haddock3 miniconda3 python3.9 environment") 15 | 16 | local conda_dir = "/trinity/home/software/miniconda3" 17 | local funcs = "conda __conda_activate __conda_hashr __conda_reactivate __add_sys_prefix_to_path" 18 | 19 | -- Specify where system and user environments should be created 20 | setenv("CONDA_ENVS_PATH", conda_dir .. "/envs") 21 | -- Directories are separated with a comma 22 | setenv("CONDA_PKGS_DIRS", conda_dir .. "pkgs") 23 | -- Initialize conda and activate environment 24 | execute{cmd="source " .. conda_dir .. "/etc/profile.d/conda.sh; conda activate haddock3", modeA={"load"}} 25 | -- Unload environments and clear conda from environment 26 | execute{cmd="for i in $(seq ${CONDA_SHLVL:=0}); do conda deactivate; done; pre=" .. conda_dir .. "; \ 27 | export LD_LIBRARY_PATH=$(echo ${LD_LIBRARY_PATH} | tr ':' '\\n' | grep . | grep -v $pre | tr '\\n' ':' | sed 's/:$//'); \ 28 | export PATH=$(echo ${PATH} | tr ':' '\\n' | grep . | grep -v $pre | tr '\\n' ':' | sed 's/:$//'); \ 29 | unset -f " .. funcs .. "; \ 30 | unset $(env | grep -o \"[^=]*CONDA[^=]*\");", modeA={"unload"}} 31 | -- Prevent from being loaded with another system python or conda environment 32 | family("python") 33 | --------------------------------------------------------------------------------