MultiMM 2.0.2__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. multimm-2.1.0/PKG-INFO +144 -0
  2. multimm-2.1.0/README.md +104 -0
  3. {multimm-2.0.2 → multimm-2.1.0}/pyproject.toml +5 -1
  4. multimm-2.1.0/src/MultiMM.egg-info/PKG-INFO +144 -0
  5. {multimm-2.0.2 → multimm-2.1.0}/src/MultiMM.egg-info/SOURCES.txt +20 -1
  6. {multimm-2.0.2 → multimm-2.1.0}/src/MultiMM.egg-info/requires.txt +5 -0
  7. multimm-2.1.0/src/multimm/__init__.py +11 -0
  8. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/bridge.py +2 -1
  9. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/config.py +227 -13
  10. multimm-2.1.0/src/multimm/facts.py +50 -0
  11. multimm-2.1.0/src/multimm/hic_force.py +442 -0
  12. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/initial_structure_tools.py +7 -0
  13. multimm-2.1.0/src/multimm/logger.py +747 -0
  14. multimm-2.1.0/src/multimm/model.py +2086 -0
  15. multimm-2.1.0/src/multimm/plots.py +1801 -0
  16. multimm-2.1.0/src/multimm/quality_tests.py +889 -0
  17. multimm-2.1.0/src/multimm/read_hic.py +1185 -0
  18. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/run.py +246 -97
  19. multimm-2.1.0/src/multimm/structural_analysis.py +665 -0
  20. multimm-2.1.0/src/multimm/utils.py +1272 -0
  21. multimm-2.1.0/src/multimm/validation.py +1482 -0
  22. multimm-2.1.0/tests/test_config.py +102 -0
  23. multimm-2.1.0/tests/test_force_signs.py +173 -0
  24. multimm-2.1.0/tests/test_genes.py +68 -0
  25. multimm-2.1.0/tests/test_hic_force.py +69 -0
  26. multimm-2.1.0/tests/test_known_issues.py +25 -0
  27. multimm-2.1.0/tests/test_lamina.py +55 -0
  28. multimm-2.1.0/tests/test_logger.py +86 -0
  29. multimm-2.1.0/tests/test_loops.py +43 -0
  30. multimm-2.1.0/tests/test_nucleosomes.py +27 -0
  31. multimm-2.1.0/tests/test_presets.py +49 -0
  32. multimm-2.1.0/tests/test_read_hic.py +79 -0
  33. multimm-2.1.0/tests/test_run_validation.py +133 -0
  34. multimm-2.1.0/tests/test_simulations.py +58 -0
  35. multimm-2.1.0/tests/test_structure_tools.py +51 -0
  36. multimm-2.1.0/tests/test_utils.py +78 -0
  37. multimm-2.1.0/tests/test_validation_metrics.py +74 -0
  38. multimm-2.0.2/PKG-INFO +0 -623
  39. multimm-2.0.2/README.md +0 -587
  40. multimm-2.0.2/src/MultiMM.egg-info/PKG-INFO +0 -623
  41. multimm-2.0.2/src/multimm/__init__.py +0 -4
  42. multimm-2.0.2/src/multimm/logger.py +0 -51
  43. multimm-2.0.2/src/multimm/model.py +0 -1259
  44. multimm-2.0.2/src/multimm/plots.py +0 -801
  45. multimm-2.0.2/src/multimm/utils.py +0 -739
  46. multimm-2.0.2/src/multimm/validation.py +0 -746
  47. multimm-2.0.2/tests/test_run_validation.py +0 -88
  48. multimm-2.0.2/tests/test_simulations.py +0 -129
  49. {multimm-2.0.2 → multimm-2.1.0}/LICENSE +0 -0
  50. {multimm-2.0.2 → multimm-2.1.0}/setup.cfg +0 -0
  51. {multimm-2.0.2 → multimm-2.1.0}/src/MultiMM.egg-info/dependency_links.txt +0 -0
  52. {multimm-2.0.2 → multimm-2.1.0}/src/MultiMM.egg-info/entry_points.txt +0 -0
  53. {multimm-2.0.2 → multimm-2.1.0}/src/MultiMM.egg-info/top_level.txt +0 -0
  54. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/args_definition.py +0 -0
  55. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/data/hg38_gtf_annotations.tsv +0 -0
  56. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/enums.py +0 -0
  57. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/forcefields/dna_histones_ff.xml +0 -0
  58. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/forcefields/ff.xml +0 -0
  59. {multimm-2.0.2 → multimm-2.1.0}/src/multimm/nucleosome_interpolation.py +0 -0
multimm-2.1.0/PKG-INFO ADDED
@@ -0,0 +1,144 @@
1
+ Metadata-Version: 2.4
2
+ Name: MultiMM
3
+ Version: 2.1.0
4
+ Summary: A tool for chromatin modeling from nucleosomes to chromosomal territories.
5
+ Author-email: Sebastian Korsak <s.korsak@datascience.edu.pl>
6
+ License: GNU General Public License v3.0
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
9
+ Classifier: Operating System :: POSIX :: Linux
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: numpy>=1.26.4
14
+ Requires-Dist: scipy>=1.11
15
+ Requires-Dist: pandas>=2.2.2
16
+ Requires-Dist: argparse>=1.4.0
17
+ Requires-Dist: matplotlib>=3.8.2
18
+ Requires-Dist: mdtraj>=1.9.9
19
+ Requires-Dist: seaborn>=0.12.2
20
+ Requires-Dist: scikit-learn>=1.3.0
21
+ Requires-Dist: configparser>=6.0.1
22
+ Requires-Dist: typing-extensions>=4.7.1
23
+ Requires-Dist: pyBigWig>=0.3.22
24
+ Requires-Dist: hilbertcurve>=2.0.5
25
+ Requires-Dist: tqdm>=4.65.2
26
+ Requires-Dist: pyvista[all]
27
+ Requires-Dist: OpenMM>=8.5.1
28
+ Requires-Dist: pydantic>=2.0.0
29
+ Requires-Dist: cooler>=0.10.2
30
+ Requires-Dist: scikit-image>=0.21.0
31
+ Provides-Extra: hic
32
+ Requires-Dist: hic-straw>=1.3.1; extra == "hic"
33
+ Provides-Extra: dev
34
+ Requires-Dist: ruff; extra == "dev"
35
+ Requires-Dist: black; extra == "dev"
36
+ Requires-Dist: isort; extra == "dev"
37
+ Requires-Dist: docformatter; extra == "dev"
38
+ Requires-Dist: pytest; extra == "dev"
39
+ Dynamic: license-file
40
+
41
+ <p align="center">
42
+ <img src="docs/assets/multimm_logo.svg" alt="MultiMM" width="100%">
43
+ </p>
44
+
45
+ **MultiMM** is an [OpenMM](https://openmm.org)-based tool for building 3D models of chromatin, from single genomic regions to the whole human genome. It is *multiscale*: one energy function covers nucleosomes, loops and TADs, A/B compartments, chromosome territories and the nucleus. You give it loop calls, and optionally compartments or a Hi-C map, and it returns a 3D structure that you can open in any molecular viewer. The model is fast because it starts from a compact Hilbert-curve conformation and runs on GPUs through OpenMM.
46
+
47
+ <p align="center">
48
+ <img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
49
+ </p>
50
+
51
+ ## Scales of modelling
52
+
53
+ One energy function ties together five scales. Each is a different way of looking at the same chain of beads.
54
+
55
+ | Scale | What it means | How MultiMM models it |
56
+ |---|---|---|
57
+ | **Nucleosome / fibre** | DNA wrapped around histones, forming a ~10 nm fibre | Beads joined by bonds and angle (stiffness) terms, with excluded volume so beads do not overlap |
58
+ | **Loops** | Pairs of distant sites held together, e.g. by CTCF and cohesin | Harmonic springs between loop anchors, taken from your loop file |
59
+ | **TADs / Hi-C contacts** | Domains that fold together more than with their surroundings | Optional restraints derived from a Hi-C map by Boltzmann inversion |
60
+ | **A/B compartments** | Active (A) and inactive (B) chromatin that cluster by type | Soft attraction between beads of the same compartment type |
61
+ | **Chromosomes and nucleus** | Chromosome territories inside a nucleus, anchored at the lamina | Container wall, lamina and chromosome-block forces |
62
+
63
+ ## Install
64
+
65
+ From PyPI:
66
+
67
+ ```bash
68
+ pip install MultiMM
69
+ ```
70
+
71
+ With [uv](https://docs.astral.sh/uv/) (fast, isolated):
72
+
73
+ ```bash
74
+ uv pip install MultiMM # into the current environment
75
+ uv tool install MultiMM # or as a standalone command-line tool
76
+ ```
77
+
78
+ For `.hic` Hi-C files, also install the optional reader (`pip install "MultiMM[hic]"`); `.cool` and `.mcool` files work out of the box.
79
+
80
+ Requires Python 3.10 or newer. Linux is the main platform; macOS works without CUDA. The documentation covers installation from source.
81
+
82
+ ## Run
83
+
84
+ All settings live in one config file:
85
+
86
+ ```bash
87
+ MultiMM -c config.ini
88
+ ```
89
+
90
+ Any setting can also be overridden on the command line, for example `--n_beads 2000`.
91
+
92
+ ## A config file
93
+
94
+ You only write what you want to change; everything else has a default.
95
+
96
+ ```ini
97
+ [Main]
98
+ CHROM = chr1
99
+ LOC_START = 160_000_000
100
+ LOC_END = 173_000_000
101
+ N_BEADS = 5000
102
+
103
+ LOOPS_PATH = data/loops.bedpe ; chromatin loops
104
+ COMPARTMENT_PATH = data/compartments.bed ; optional A/B compartments
105
+ COB_USE_COMPARTMENT_BLOCKS = True
106
+
107
+ OUT_PATH = results/chr1_region
108
+ ```
109
+
110
+ ## Documentation
111
+
112
+ The full documentation, with the mathematics of every force and a table of all arguments, is written with [MkDocs](https://www.mkdocs.org) and its source is in [`docs/`](docs). To read it locally:
113
+
114
+ ```bash
115
+ pip install mkdocs-material
116
+ mkdocs serve
117
+ ```
118
+
119
+ ## Development
120
+
121
+ ```bash
122
+ git clone https://github.com/SFGLab/MultiMM.git
123
+ cd MultiMM
124
+ uv sync --extra dev # or: pip install -e ".[dev]"
125
+ ```
126
+
127
+ Run the tests (all are quick checks, no full simulation, about half a minute):
128
+
129
+ ```bash
130
+ uv run pytest -q # or: pytest -q
131
+ uv run pytest tests/test_force_signs.py # a single file
132
+ ```
133
+
134
+ Console output has four levels: no flag shows only the pipeline stages and progress bars; `-v` adds details, `-vv` adds statistics tables, `-vvv` is fully verbose.
135
+
136
+ ## Citation
137
+
138
+ If you use MultiMM in your research, please cite:
139
+
140
+ > Korsak, Sevastianos, Krzysztof Banecki, and Dariusz Plewczynski. "Multiscale molecular modeling of chromatin with MultiMM: From nucleosomes to the whole genome." *Computational and Structural Biotechnology Journal* 23 (2024): 3537–3548.
141
+
142
+ ## License
143
+
144
+ MultiMM is free software, distributed under the GNU General Public License v3.0.
@@ -0,0 +1,104 @@
1
+ <p align="center">
2
+ <img src="docs/assets/multimm_logo.svg" alt="MultiMM" width="100%">
3
+ </p>
4
+
5
+ **MultiMM** is an [OpenMM](https://openmm.org)-based tool for building 3D models of chromatin, from single genomic regions to the whole human genome. It is *multiscale*: one energy function covers nucleosomes, loops and TADs, A/B compartments, chromosome territories and the nucleus. You give it loop calls, and optionally compartments or a Hi-C map, and it returns a 3D structure that you can open in any molecular viewer. The model is fast because it starts from a compact Hilbert-curve conformation and runs on GPUs through OpenMM.
6
+
7
+ <p align="center">
8
+ <img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
9
+ </p>
10
+
11
+ ## Scales of modelling
12
+
13
+ One energy function ties together five scales. Each is a different way of looking at the same chain of beads.
14
+
15
+ | Scale | What it means | How MultiMM models it |
16
+ |---|---|---|
17
+ | **Nucleosome / fibre** | DNA wrapped around histones, forming a ~10 nm fibre | Beads joined by bonds and angle (stiffness) terms, with excluded volume so beads do not overlap |
18
+ | **Loops** | Pairs of distant sites held together, e.g. by CTCF and cohesin | Harmonic springs between loop anchors, taken from your loop file |
19
+ | **TADs / Hi-C contacts** | Domains that fold together more than with their surroundings | Optional restraints derived from a Hi-C map by Boltzmann inversion |
20
+ | **A/B compartments** | Active (A) and inactive (B) chromatin that cluster by type | Soft attraction between beads of the same compartment type |
21
+ | **Chromosomes and nucleus** | Chromosome territories inside a nucleus, anchored at the lamina | Container wall, lamina and chromosome-block forces |
22
+
23
+ ## Install
24
+
25
+ From PyPI:
26
+
27
+ ```bash
28
+ pip install MultiMM
29
+ ```
30
+
31
+ With [uv](https://docs.astral.sh/uv/) (fast, isolated):
32
+
33
+ ```bash
34
+ uv pip install MultiMM # into the current environment
35
+ uv tool install MultiMM # or as a standalone command-line tool
36
+ ```
37
+
38
+ For `.hic` Hi-C files, also install the optional reader (`pip install "MultiMM[hic]"`); `.cool` and `.mcool` files work out of the box.
39
+
40
+ Requires Python 3.10 or newer. Linux is the main platform; macOS works without CUDA. The documentation covers installation from source.
41
+
42
+ ## Run
43
+
44
+ All settings live in one config file:
45
+
46
+ ```bash
47
+ MultiMM -c config.ini
48
+ ```
49
+
50
+ Any setting can also be overridden on the command line, for example `--n_beads 2000`.
51
+
52
+ ## A config file
53
+
54
+ You only write what you want to change; everything else has a default.
55
+
56
+ ```ini
57
+ [Main]
58
+ CHROM = chr1
59
+ LOC_START = 160_000_000
60
+ LOC_END = 173_000_000
61
+ N_BEADS = 5000
62
+
63
+ LOOPS_PATH = data/loops.bedpe ; chromatin loops
64
+ COMPARTMENT_PATH = data/compartments.bed ; optional A/B compartments
65
+ COB_USE_COMPARTMENT_BLOCKS = True
66
+
67
+ OUT_PATH = results/chr1_region
68
+ ```
69
+
70
+ ## Documentation
71
+
72
+ The full documentation, with the mathematics of every force and a table of all arguments, is written with [MkDocs](https://www.mkdocs.org) and its source is in [`docs/`](docs). To read it locally:
73
+
74
+ ```bash
75
+ pip install mkdocs-material
76
+ mkdocs serve
77
+ ```
78
+
79
+ ## Development
80
+
81
+ ```bash
82
+ git clone https://github.com/SFGLab/MultiMM.git
83
+ cd MultiMM
84
+ uv sync --extra dev # or: pip install -e ".[dev]"
85
+ ```
86
+
87
+ Run the tests (all are quick checks, no full simulation, about half a minute):
88
+
89
+ ```bash
90
+ uv run pytest -q # or: pytest -q
91
+ uv run pytest tests/test_force_signs.py # a single file
92
+ ```
93
+
94
+ Console output has four levels: no flag shows only the pipeline stages and progress bars; `-v` adds details, `-vv` adds statistics tables, `-vvv` is fully verbose.
95
+
96
+ ## Citation
97
+
98
+ If you use MultiMM in your research, please cite:
99
+
100
+ > Korsak, Sevastianos, Krzysztof Banecki, and Dariusz Plewczynski. "Multiscale molecular modeling of chromatin with MultiMM: From nucleosomes to the whole genome." *Computational and Structural Biotechnology Journal* 23 (2024): 3537–3548.
101
+
102
+ ## License
103
+
104
+ MultiMM is free software, distributed under the GNU General Public License v3.0.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "MultiMM"
7
- version = "2.0.2"
7
+ version = "2.1.0"
8
8
  description = "A tool for chromatin modeling from nucleosomes to chromosomal territories."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -34,9 +34,13 @@ dependencies = [
34
34
  "pyvista[all]",
35
35
  "OpenMM>=8.5.1",
36
36
  "pydantic>=2.0.0",
37
+ "cooler>=0.10.2",
38
+ "scikit-image>=0.21.0",
37
39
  ]
38
40
 
39
41
  [project.optional-dependencies]
42
+ # .hic files need hic-straw, which compiles C++ code and may fail to install; .cool/.mcool do not need it
43
+ hic = ["hic-straw>=1.3.1"]
40
44
  dev = [
41
45
  "ruff",
42
46
  "black",
@@ -0,0 +1,144 @@
1
+ Metadata-Version: 2.4
2
+ Name: MultiMM
3
+ Version: 2.1.0
4
+ Summary: A tool for chromatin modeling from nucleosomes to chromosomal territories.
5
+ Author-email: Sebastian Korsak <s.korsak@datascience.edu.pl>
6
+ License: GNU General Public License v3.0
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
9
+ Classifier: Operating System :: POSIX :: Linux
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: numpy>=1.26.4
14
+ Requires-Dist: scipy>=1.11
15
+ Requires-Dist: pandas>=2.2.2
16
+ Requires-Dist: argparse>=1.4.0
17
+ Requires-Dist: matplotlib>=3.8.2
18
+ Requires-Dist: mdtraj>=1.9.9
19
+ Requires-Dist: seaborn>=0.12.2
20
+ Requires-Dist: scikit-learn>=1.3.0
21
+ Requires-Dist: configparser>=6.0.1
22
+ Requires-Dist: typing-extensions>=4.7.1
23
+ Requires-Dist: pyBigWig>=0.3.22
24
+ Requires-Dist: hilbertcurve>=2.0.5
25
+ Requires-Dist: tqdm>=4.65.2
26
+ Requires-Dist: pyvista[all]
27
+ Requires-Dist: OpenMM>=8.5.1
28
+ Requires-Dist: pydantic>=2.0.0
29
+ Requires-Dist: cooler>=0.10.2
30
+ Requires-Dist: scikit-image>=0.21.0
31
+ Provides-Extra: hic
32
+ Requires-Dist: hic-straw>=1.3.1; extra == "hic"
33
+ Provides-Extra: dev
34
+ Requires-Dist: ruff; extra == "dev"
35
+ Requires-Dist: black; extra == "dev"
36
+ Requires-Dist: isort; extra == "dev"
37
+ Requires-Dist: docformatter; extra == "dev"
38
+ Requires-Dist: pytest; extra == "dev"
39
+ Dynamic: license-file
40
+
41
+ <p align="center">
42
+ <img src="docs/assets/multimm_logo.svg" alt="MultiMM" width="100%">
43
+ </p>
44
+
45
+ **MultiMM** is an [OpenMM](https://openmm.org)-based tool for building 3D models of chromatin, from single genomic regions to the whole human genome. It is *multiscale*: one energy function covers nucleosomes, loops and TADs, A/B compartments, chromosome territories and the nucleus. You give it loop calls, and optionally compartments or a Hi-C map, and it returns a 3D structure that you can open in any molecular viewer. The model is fast because it starts from a compact Hilbert-curve conformation and runs on GPUs through OpenMM.
46
+
47
+ <p align="center">
48
+ <img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
49
+ </p>
50
+
51
+ ## Scales of modelling
52
+
53
+ One energy function ties together five scales. Each is a different way of looking at the same chain of beads.
54
+
55
+ | Scale | What it means | How MultiMM models it |
56
+ |---|---|---|
57
+ | **Nucleosome / fibre** | DNA wrapped around histones, forming a ~10 nm fibre | Beads joined by bonds and angle (stiffness) terms, with excluded volume so beads do not overlap |
58
+ | **Loops** | Pairs of distant sites held together, e.g. by CTCF and cohesin | Harmonic springs between loop anchors, taken from your loop file |
59
+ | **TADs / Hi-C contacts** | Domains that fold together more than with their surroundings | Optional restraints derived from a Hi-C map by Boltzmann inversion |
60
+ | **A/B compartments** | Active (A) and inactive (B) chromatin that cluster by type | Soft attraction between beads of the same compartment type |
61
+ | **Chromosomes and nucleus** | Chromosome territories inside a nucleus, anchored at the lamina | Container wall, lamina and chromosome-block forces |
62
+
63
+ ## Install
64
+
65
+ From PyPI:
66
+
67
+ ```bash
68
+ pip install MultiMM
69
+ ```
70
+
71
+ With [uv](https://docs.astral.sh/uv/) (fast, isolated):
72
+
73
+ ```bash
74
+ uv pip install MultiMM # into the current environment
75
+ uv tool install MultiMM # or as a standalone command-line tool
76
+ ```
77
+
78
+ For `.hic` Hi-C files, also install the optional reader (`pip install "MultiMM[hic]"`); `.cool` and `.mcool` files work out of the box.
79
+
80
+ Requires Python 3.10 or newer. Linux is the main platform; macOS works without CUDA. The documentation covers installation from source.
81
+
82
+ ## Run
83
+
84
+ All settings live in one config file:
85
+
86
+ ```bash
87
+ MultiMM -c config.ini
88
+ ```
89
+
90
+ Any setting can also be overridden on the command line, for example `--n_beads 2000`.
91
+
92
+ ## A config file
93
+
94
+ You only write what you want to change; everything else has a default.
95
+
96
+ ```ini
97
+ [Main]
98
+ CHROM = chr1
99
+ LOC_START = 160_000_000
100
+ LOC_END = 173_000_000
101
+ N_BEADS = 5000
102
+
103
+ LOOPS_PATH = data/loops.bedpe ; chromatin loops
104
+ COMPARTMENT_PATH = data/compartments.bed ; optional A/B compartments
105
+ COB_USE_COMPARTMENT_BLOCKS = True
106
+
107
+ OUT_PATH = results/chr1_region
108
+ ```
109
+
110
+ ## Documentation
111
+
112
+ The full documentation, with the mathematics of every force and a table of all arguments, is written with [MkDocs](https://www.mkdocs.org) and its source is in [`docs/`](docs). To read it locally:
113
+
114
+ ```bash
115
+ pip install mkdocs-material
116
+ mkdocs serve
117
+ ```
118
+
119
+ ## Development
120
+
121
+ ```bash
122
+ git clone https://github.com/SFGLab/MultiMM.git
123
+ cd MultiMM
124
+ uv sync --extra dev # or: pip install -e ".[dev]"
125
+ ```
126
+
127
+ Run the tests (all are quick checks, no full simulation, about half a minute):
128
+
129
+ ```bash
130
+ uv run pytest -q # or: pytest -q
131
+ uv run pytest tests/test_force_signs.py # a single file
132
+ ```
133
+
134
+ Console output has four levels: no flag shows only the pipeline stages and progress bars; `-v` adds details, `-vv` adds statistics tables, `-vvv` is fully verbose.
135
+
136
+ ## Citation
137
+
138
+ If you use MultiMM in your research, please cite:
139
+
140
+ > Korsak, Sevastianos, Krzysztof Banecki, and Dariusz Plewczynski. "Multiscale molecular modeling of chromatin with MultiMM: From nucleosomes to the whole genome." *Computational and Structural Biotechnology Journal* 23 (2024): 3537–3548.
141
+
142
+ ## License
143
+
144
+ MultiMM is free software, distributed under the GNU General Public License v3.0.
@@ -12,16 +12,35 @@ src/multimm/args_definition.py
12
12
  src/multimm/bridge.py
13
13
  src/multimm/config.py
14
14
  src/multimm/enums.py
15
+ src/multimm/facts.py
16
+ src/multimm/hic_force.py
15
17
  src/multimm/initial_structure_tools.py
16
18
  src/multimm/logger.py
17
19
  src/multimm/model.py
18
20
  src/multimm/nucleosome_interpolation.py
19
21
  src/multimm/plots.py
22
+ src/multimm/quality_tests.py
23
+ src/multimm/read_hic.py
20
24
  src/multimm/run.py
25
+ src/multimm/structural_analysis.py
21
26
  src/multimm/utils.py
22
27
  src/multimm/validation.py
23
28
  src/multimm/data/hg38_gtf_annotations.tsv
24
29
  src/multimm/forcefields/dna_histones_ff.xml
25
30
  src/multimm/forcefields/ff.xml
31
+ tests/test_config.py
32
+ tests/test_force_signs.py
33
+ tests/test_genes.py
34
+ tests/test_hic_force.py
35
+ tests/test_known_issues.py
36
+ tests/test_lamina.py
37
+ tests/test_logger.py
38
+ tests/test_loops.py
39
+ tests/test_nucleosomes.py
40
+ tests/test_presets.py
41
+ tests/test_read_hic.py
26
42
  tests/test_run_validation.py
27
- tests/test_simulations.py
43
+ tests/test_simulations.py
44
+ tests/test_structure_tools.py
45
+ tests/test_utils.py
46
+ tests/test_validation_metrics.py
@@ -14,6 +14,8 @@ tqdm>=4.65.2
14
14
  pyvista[all]
15
15
  OpenMM>=8.5.1
16
16
  pydantic>=2.0.0
17
+ cooler>=0.10.2
18
+ scikit-image>=0.21.0
17
19
 
18
20
  [dev]
19
21
  ruff
@@ -21,3 +23,6 @@ black
21
23
  isort
22
24
  docformatter
23
25
  pytest
26
+
27
+ [hic]
28
+ hic-straw>=1.3.1
@@ -0,0 +1,11 @@
1
+ from .bridge import SimulationEngine as SimulationEngine
2
+
3
+
4
+ def main(*args, **kwargs):
5
+ """Command-line entry point (imported lazily so `python -m multimm.run` stays warning-free)."""
6
+ from .run import main as _main
7
+
8
+ return _main(*args, **kwargs)
9
+
10
+
11
+ __version__ = "2.1.0"
@@ -8,7 +8,6 @@ import openmm
8
8
 
9
9
  from .config import SimulationConfig
10
10
  from .model import MultiMM
11
- from .run import write_config
12
11
 
13
12
  logger = logging.getLogger(__name__)
14
13
 
@@ -91,6 +90,7 @@ class SimulationEngine:
91
90
  try:
92
91
  base_out_path = config.OUT_PATH
93
92
 
93
+ from .run import write_config # lazy: keeps `python -m multimm.run` warning-free
94
94
  write_config(config)
95
95
 
96
96
  if config.GENERATE_ENSEMBLE and config.N_ENSEMBLE is not None:
@@ -141,6 +141,7 @@ class SimulationEngine:
141
141
  os.makedirs(metadata_dir, exist_ok=True)
142
142
  config_path = os.path.join(metadata_dir, "config_auto.ini")
143
143
 
144
+ from .run import write_config
144
145
  write_config(config)
145
146
 
146
147
  cmd = [