MultiMM 2.1.0__tar.gz → 2.1.1__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.
- {multimm-2.1.0/src/MultiMM.egg-info → multimm-2.1.1}/PKG-INFO +11 -4
- {multimm-2.1.0 → multimm-2.1.1}/README.md +5 -3
- {multimm-2.1.0 → multimm-2.1.1}/pyproject.toml +8 -1
- {multimm-2.1.0 → multimm-2.1.1/src/MultiMM.egg-info}/PKG-INFO +11 -4
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/__init__.py +1 -1
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/logger.py +18 -14
- {multimm-2.1.0 → multimm-2.1.1}/LICENSE +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/setup.cfg +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/SOURCES.txt +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/dependency_links.txt +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/entry_points.txt +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/requires.txt +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/top_level.txt +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/args_definition.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/bridge.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/config.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/data/hg38_gtf_annotations.tsv +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/enums.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/facts.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/forcefields/dna_histones_ff.xml +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/forcefields/ff.xml +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/hic_force.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/initial_structure_tools.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/model.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/nucleosome_interpolation.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/plots.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/quality_tests.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/read_hic.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/run.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/structural_analysis.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/utils.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/src/multimm/validation.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_config.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_force_signs.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_genes.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_hic_force.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_known_issues.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_lamina.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_logger.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_loops.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_nucleosomes.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_presets.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_read_hic.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_run_validation.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_simulations.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_structure_tools.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_utils.py +0 -0
- {multimm-2.1.0 → multimm-2.1.1}/tests/test_validation_metrics.py +0 -0
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MultiMM
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: A tool for chromatin modeling from nucleosomes to chromosomal territories.
|
|
5
5
|
Author-email: Sebastian Korsak <s.korsak@datascience.edu.pl>
|
|
6
6
|
License: GNU General Public License v3.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/SFGLab/MultiMM
|
|
8
|
+
Project-URL: Documentation, https://sfglab.github.io/MultiMM/
|
|
9
|
+
Project-URL: Source, https://github.com/SFGLab/MultiMM
|
|
10
|
+
Project-URL: Issues, https://github.com/SFGLab/MultiMM/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/SFGLab/MultiMM/releases
|
|
7
12
|
Classifier: Programming Language :: Python :: 3
|
|
8
13
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
9
14
|
Classifier: Operating System :: POSIX :: Linux
|
|
@@ -39,13 +44,15 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
39
44
|
Dynamic: license-file
|
|
40
45
|
|
|
41
46
|
<p align="center">
|
|
42
|
-
<img src="docs/assets/multimm_logo.
|
|
47
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/multimm_logo.png" alt="MultiMM" width="100%">
|
|
43
48
|
</p>
|
|
44
49
|
|
|
50
|
+
[](https://pypi.org/project/MultiMM/) · **[Documentation](https://sfglab.github.io/MultiMM/)** · [Source](https://github.com/SFGLab/MultiMM)
|
|
51
|
+
|
|
45
52
|
**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
53
|
|
|
47
54
|
<p align="center">
|
|
48
|
-
<img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
55
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
49
56
|
</p>
|
|
50
57
|
|
|
51
58
|
## Scales of modelling
|
|
@@ -109,7 +116,7 @@ OUT_PATH = results/chr1_region
|
|
|
109
116
|
|
|
110
117
|
## Documentation
|
|
111
118
|
|
|
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:
|
|
119
|
+
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/`](https://github.com/SFGLab/MultiMM/tree/main/docs). To read it locally:
|
|
113
120
|
|
|
114
121
|
```bash
|
|
115
122
|
pip install mkdocs-material
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="docs/assets/multimm_logo.
|
|
2
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/multimm_logo.png" alt="MultiMM" width="100%">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
+
[](https://pypi.org/project/MultiMM/) · **[Documentation](https://sfglab.github.io/MultiMM/)** · [Source](https://github.com/SFGLab/MultiMM)
|
|
6
|
+
|
|
5
7
|
**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
8
|
|
|
7
9
|
<p align="center">
|
|
8
|
-
<img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
10
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
9
11
|
</p>
|
|
10
12
|
|
|
11
13
|
## Scales of modelling
|
|
@@ -69,7 +71,7 @@ OUT_PATH = results/chr1_region
|
|
|
69
71
|
|
|
70
72
|
## Documentation
|
|
71
73
|
|
|
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:
|
|
74
|
+
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/`](https://github.com/SFGLab/MultiMM/tree/main/docs). To read it locally:
|
|
73
75
|
|
|
74
76
|
```bash
|
|
75
77
|
pip install mkdocs-material
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "MultiMM"
|
|
7
|
-
version = "2.1.
|
|
7
|
+
version = "2.1.1"
|
|
8
8
|
description = "A tool for chromatin modeling from nucleosomes to chromosomal territories."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -38,6 +38,13 @@ dependencies = [
|
|
|
38
38
|
"scikit-image>=0.21.0",
|
|
39
39
|
]
|
|
40
40
|
|
|
41
|
+
[project.urls]
|
|
42
|
+
Homepage = "https://github.com/SFGLab/MultiMM"
|
|
43
|
+
Documentation = "https://sfglab.github.io/MultiMM/"
|
|
44
|
+
Source = "https://github.com/SFGLab/MultiMM"
|
|
45
|
+
Issues = "https://github.com/SFGLab/MultiMM/issues"
|
|
46
|
+
Changelog = "https://github.com/SFGLab/MultiMM/releases"
|
|
47
|
+
|
|
41
48
|
[project.optional-dependencies]
|
|
42
49
|
# .hic files need hic-straw, which compiles C++ code and may fail to install; .cool/.mcool do not need it
|
|
43
50
|
hic = ["hic-straw>=1.3.1"]
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MultiMM
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: A tool for chromatin modeling from nucleosomes to chromosomal territories.
|
|
5
5
|
Author-email: Sebastian Korsak <s.korsak@datascience.edu.pl>
|
|
6
6
|
License: GNU General Public License v3.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/SFGLab/MultiMM
|
|
8
|
+
Project-URL: Documentation, https://sfglab.github.io/MultiMM/
|
|
9
|
+
Project-URL: Source, https://github.com/SFGLab/MultiMM
|
|
10
|
+
Project-URL: Issues, https://github.com/SFGLab/MultiMM/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/SFGLab/MultiMM/releases
|
|
7
12
|
Classifier: Programming Language :: Python :: 3
|
|
8
13
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
9
14
|
Classifier: Operating System :: POSIX :: Linux
|
|
@@ -39,13 +44,15 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
39
44
|
Dynamic: license-file
|
|
40
45
|
|
|
41
46
|
<p align="center">
|
|
42
|
-
<img src="docs/assets/multimm_logo.
|
|
47
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/multimm_logo.png" alt="MultiMM" width="100%">
|
|
43
48
|
</p>
|
|
44
49
|
|
|
50
|
+
[](https://pypi.org/project/MultiMM/) · **[Documentation](https://sfglab.github.io/MultiMM/)** · [Source](https://github.com/SFGLab/MultiMM)
|
|
51
|
+
|
|
45
52
|
**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
53
|
|
|
47
54
|
<p align="center">
|
|
48
|
-
<img src="docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
55
|
+
<img src="https://raw.githubusercontent.com/SFGLab/MultiMM/main/docs/assets/workflow.png" alt="MultiMM workflow" width="720">
|
|
49
56
|
</p>
|
|
50
57
|
|
|
51
58
|
## Scales of modelling
|
|
@@ -109,7 +116,7 @@ OUT_PATH = results/chr1_region
|
|
|
109
116
|
|
|
110
117
|
## Documentation
|
|
111
118
|
|
|
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:
|
|
119
|
+
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/`](https://github.com/SFGLab/MultiMM/tree/main/docs). To read it locally:
|
|
113
120
|
|
|
114
121
|
```bash
|
|
115
122
|
pip install mkdocs-material
|
|
@@ -697,10 +697,27 @@ def print_banner(version: Optional[str] = None) -> None:
|
|
|
697
697
|
|
|
698
698
|
pad = " " + (" " * (sym_w + 3) if show_sym else "")
|
|
699
699
|
beads = "".join(gradient("●─" if i < 15 else "●", i / 15, i / 15) for i in range(16))
|
|
700
|
+
|
|
701
|
+
# one random chromatin fact right under the tagline, aligned with it
|
|
702
|
+
from .facts import random_fact
|
|
703
|
+
|
|
704
|
+
width = max(40, min(cols, 100) - len(pad) - 4)
|
|
705
|
+
wrapped = textwrap.wrap(random_fact(), width)
|
|
706
|
+
rule = "─" * min(width, 56)
|
|
707
|
+
quote = [pad + _tint("◆ did you know? " + rule[:max(0, len(rule) - 17)], italic=True)]
|
|
708
|
+
for k, ln in enumerate(wrapped):
|
|
709
|
+
t0, t1 = k / len(wrapped), (k + 1) / len(wrapped)
|
|
710
|
+
mark = "❝ " if k == 0 else " "
|
|
711
|
+
end = " ❞" if k == len(wrapped) - 1 else ""
|
|
712
|
+
quote.append(pad + _tint(mark + ln + end, t0, t1, italic=True))
|
|
713
|
+
|
|
700
714
|
lines += [
|
|
701
715
|
"",
|
|
702
716
|
pad + gradient(" ┈ ".join(_SCALES)),
|
|
703
717
|
pad + f"{d}multiscale modelling of chromatin{rst}" + (f" {gradient('v' + version)}" if version else ""),
|
|
718
|
+
"",
|
|
719
|
+
*quote,
|
|
720
|
+
"",
|
|
704
721
|
pad + beads,
|
|
705
722
|
"",
|
|
706
723
|
f" {d}Creator{rst} Sebastian Korsak (Warsaw, Poland)",
|
|
@@ -708,19 +725,6 @@ def print_banner(version: Optional[str] = None) -> None:
|
|
|
708
725
|
f" {d}Contact{rst} s.korsak@datascience.edu.pl · d.plewczynski@datascience.edu.pl",
|
|
709
726
|
"",
|
|
710
727
|
]
|
|
711
|
-
# one random chromatin fact: gradient rule, italic gradient text, closing mark
|
|
712
|
-
from .facts import random_fact
|
|
713
|
-
|
|
714
|
-
width = max(40, min(cols, 100) - 10)
|
|
715
|
-
wrapped = textwrap.wrap(random_fact(), width)
|
|
716
|
-
rule = "─" * min(width + 2, 60)
|
|
717
|
-
lines.append(" " + _tint("◆ did you know? " + rule[:max(0, len(rule) - 17)], italic=True))
|
|
718
|
-
for k, ln in enumerate(wrapped):
|
|
719
|
-
t0, t1 = k / len(wrapped), (k + 1) / len(wrapped)
|
|
720
|
-
mark = "❝ " if k == 0 else " "
|
|
721
|
-
end = " ❞" if k == len(wrapped) - 1 else ""
|
|
722
|
-
lines.append(" " + _tint(mark + ln + end, t0, t1, italic=True))
|
|
723
|
-
lines.append("")
|
|
724
728
|
for line in lines:
|
|
725
729
|
_emit(line)
|
|
726
730
|
|
|
@@ -733,7 +737,7 @@ if __name__ == "__main__":
|
|
|
733
737
|
v = int(sys.argv[1]) if len(sys.argv) > 1 else 0
|
|
734
738
|
setup_logger(verbosity=v)
|
|
735
739
|
log = logging.getLogger("multimm.demo")
|
|
736
|
-
print_banner("2.1.
|
|
740
|
+
print_banner("2.1.1")
|
|
737
741
|
with stage("Input data", 3) as s:
|
|
738
742
|
for name in ("Loops", "Compartments", "Hi-C"):
|
|
739
743
|
s.next(name)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|