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.
Files changed (48) hide show
  1. {multimm-2.1.0/src/MultiMM.egg-info → multimm-2.1.1}/PKG-INFO +11 -4
  2. {multimm-2.1.0 → multimm-2.1.1}/README.md +5 -3
  3. {multimm-2.1.0 → multimm-2.1.1}/pyproject.toml +8 -1
  4. {multimm-2.1.0 → multimm-2.1.1/src/MultiMM.egg-info}/PKG-INFO +11 -4
  5. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/__init__.py +1 -1
  6. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/logger.py +18 -14
  7. {multimm-2.1.0 → multimm-2.1.1}/LICENSE +0 -0
  8. {multimm-2.1.0 → multimm-2.1.1}/setup.cfg +0 -0
  9. {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/SOURCES.txt +0 -0
  10. {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/dependency_links.txt +0 -0
  11. {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/entry_points.txt +0 -0
  12. {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/requires.txt +0 -0
  13. {multimm-2.1.0 → multimm-2.1.1}/src/MultiMM.egg-info/top_level.txt +0 -0
  14. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/args_definition.py +0 -0
  15. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/bridge.py +0 -0
  16. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/config.py +0 -0
  17. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/data/hg38_gtf_annotations.tsv +0 -0
  18. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/enums.py +0 -0
  19. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/facts.py +0 -0
  20. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/forcefields/dna_histones_ff.xml +0 -0
  21. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/forcefields/ff.xml +0 -0
  22. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/hic_force.py +0 -0
  23. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/initial_structure_tools.py +0 -0
  24. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/model.py +0 -0
  25. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/nucleosome_interpolation.py +0 -0
  26. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/plots.py +0 -0
  27. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/quality_tests.py +0 -0
  28. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/read_hic.py +0 -0
  29. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/run.py +0 -0
  30. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/structural_analysis.py +0 -0
  31. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/utils.py +0 -0
  32. {multimm-2.1.0 → multimm-2.1.1}/src/multimm/validation.py +0 -0
  33. {multimm-2.1.0 → multimm-2.1.1}/tests/test_config.py +0 -0
  34. {multimm-2.1.0 → multimm-2.1.1}/tests/test_force_signs.py +0 -0
  35. {multimm-2.1.0 → multimm-2.1.1}/tests/test_genes.py +0 -0
  36. {multimm-2.1.0 → multimm-2.1.1}/tests/test_hic_force.py +0 -0
  37. {multimm-2.1.0 → multimm-2.1.1}/tests/test_known_issues.py +0 -0
  38. {multimm-2.1.0 → multimm-2.1.1}/tests/test_lamina.py +0 -0
  39. {multimm-2.1.0 → multimm-2.1.1}/tests/test_logger.py +0 -0
  40. {multimm-2.1.0 → multimm-2.1.1}/tests/test_loops.py +0 -0
  41. {multimm-2.1.0 → multimm-2.1.1}/tests/test_nucleosomes.py +0 -0
  42. {multimm-2.1.0 → multimm-2.1.1}/tests/test_presets.py +0 -0
  43. {multimm-2.1.0 → multimm-2.1.1}/tests/test_read_hic.py +0 -0
  44. {multimm-2.1.0 → multimm-2.1.1}/tests/test_run_validation.py +0 -0
  45. {multimm-2.1.0 → multimm-2.1.1}/tests/test_simulations.py +0 -0
  46. {multimm-2.1.0 → multimm-2.1.1}/tests/test_structure_tools.py +0 -0
  47. {multimm-2.1.0 → multimm-2.1.1}/tests/test_utils.py +0 -0
  48. {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.0
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.svg" alt="MultiMM" width="100%">
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
+ [![PyPI](https://img.shields.io/pypi/v/MultiMM)](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.svg" alt="MultiMM" width="100%">
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
+ [![PyPI](https://img.shields.io/pypi/v/MultiMM)](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.0"
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.0
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.svg" alt="MultiMM" width="100%">
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
+ [![PyPI](https://img.shields.io/pypi/v/MultiMM)](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
@@ -8,4 +8,4 @@ def main(*args, **kwargs):
8
8
  return _main(*args, **kwargs)
9
9
 
10
10
 
11
- __version__ = "2.1.0"
11
+ __version__ = "2.1.1"
@@ -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.0")
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