mdadash 0.0.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 (81) hide show
  1. mdadash-0.0.1/AUTHORS.md +23 -0
  2. mdadash-0.0.1/CHANGELOG.md +51 -0
  3. mdadash-0.0.1/CODE_OF_CONDUCT.md +89 -0
  4. mdadash-0.0.1/LICENSE +21 -0
  5. mdadash-0.0.1/MANIFEST.in +13 -0
  6. mdadash-0.0.1/PKG-INFO +268 -0
  7. mdadash-0.0.1/README.md +234 -0
  8. mdadash-0.0.1/mdadash/__init__.py +9 -0
  9. mdadash-0.0.1/mdadash/backend/__init__.py +0 -0
  10. mdadash-0.0.1/mdadash/backend/example_api.py +3 -0
  11. mdadash-0.0.1/mdadash/backend/kernel/__init__.py +0 -0
  12. mdadash-0.0.1/mdadash/backend/kernel/core.py +210 -0
  13. mdadash-0.0.1/mdadash/backend/kernel/manager.py +305 -0
  14. mdadash-0.0.1/mdadash/backend/main.py +177 -0
  15. mdadash-0.0.1/mdadash/backend/state/__init__.py +0 -0
  16. mdadash-0.0.1/mdadash/backend/state/manager.py +81 -0
  17. mdadash-0.0.1/mdadash/backend/tests/__init__.py +0 -0
  18. mdadash-0.0.1/mdadash/backend/tests/conftest.py +20 -0
  19. mdadash-0.0.1/mdadash/backend/tests/data/.gitignore +1 -0
  20. mdadash-0.0.1/mdadash/backend/tests/data/__init__.py +0 -0
  21. mdadash-0.0.1/mdadash/backend/tests/data/adk_oplsaa.tpr +0 -0
  22. mdadash-0.0.1/mdadash/backend/tests/data/adk_oplsaa.xtc +0 -0
  23. mdadash-0.0.1/mdadash/backend/tests/data/files.py +21 -0
  24. mdadash-0.0.1/mdadash/backend/tests/test_mdadash.py +29 -0
  25. mdadash-0.0.1/mdadash/backend/tests/test_server.py +177 -0
  26. mdadash-0.0.1/mdadash/backend/tests/utils.py +14 -0
  27. mdadash-0.0.1/mdadash/data/README.md +17 -0
  28. mdadash-0.0.1/mdadash/data/__init__.py +0 -0
  29. mdadash-0.0.1/mdadash/data/files.py +19 -0
  30. mdadash-0.0.1/mdadash/data/mda.txt +45 -0
  31. mdadash-0.0.1/mdadash/frontend/.editorconfig +8 -0
  32. mdadash-0.0.1/mdadash/frontend/.eslintcache +1 -0
  33. mdadash-0.0.1/mdadash/frontend/.gitattributes +1 -0
  34. mdadash-0.0.1/mdadash/frontend/.gitignore +39 -0
  35. mdadash-0.0.1/mdadash/frontend/.oxlintrc.json +10 -0
  36. mdadash-0.0.1/mdadash/frontend/.prettierrc.json +6 -0
  37. mdadash-0.0.1/mdadash/frontend/README.md +64 -0
  38. mdadash-0.0.1/mdadash/frontend/dist/assets/index-8hBHiXAA.js +17 -0
  39. mdadash-0.0.1/mdadash/frontend/dist/assets/index-Bv73Vvuu.css +1 -0
  40. mdadash-0.0.1/mdadash/frontend/dist/assets/materialdesignicons-webfont-B7mPwVP_.ttf +0 -0
  41. mdadash-0.0.1/mdadash/frontend/dist/assets/materialdesignicons-webfont-CSr8KVlo.eot +0 -0
  42. mdadash-0.0.1/mdadash/frontend/dist/assets/materialdesignicons-webfont-Dp5v-WZN.woff2 +0 -0
  43. mdadash-0.0.1/mdadash/frontend/dist/assets/materialdesignicons-webfont-PXm3-2wK.woff +0 -0
  44. mdadash-0.0.1/mdadash/frontend/dist/favicon.ico +0 -0
  45. mdadash-0.0.1/mdadash/frontend/dist/index.html +14 -0
  46. mdadash-0.0.1/mdadash/frontend/eslint.config.js +36 -0
  47. mdadash-0.0.1/mdadash/frontend/index.html +13 -0
  48. mdadash-0.0.1/mdadash/frontend/jsconfig.json +8 -0
  49. mdadash-0.0.1/mdadash/frontend/package-lock.json +6125 -0
  50. mdadash-0.0.1/mdadash/frontend/package.json +49 -0
  51. mdadash-0.0.1/mdadash/frontend/public/favicon.ico +0 -0
  52. mdadash-0.0.1/mdadash/frontend/src/App.vue +256 -0
  53. mdadash-0.0.1/mdadash/frontend/src/__tests__/App.spec.js +132 -0
  54. mdadash-0.0.1/mdadash/frontend/src/__tests__/views/AlertsView.spec.js +18 -0
  55. mdadash-0.0.1/mdadash/frontend/src/__tests__/views/DashboardView.spec.js +38 -0
  56. mdadash-0.0.1/mdadash/frontend/src/__tests__/views/SettingsView.spec.js +84 -0
  57. mdadash-0.0.1/mdadash/frontend/src/main.js +6 -0
  58. mdadash-0.0.1/mdadash/frontend/src/plugins/vuetify.js +10 -0
  59. mdadash-0.0.1/mdadash/frontend/src/router/index.js +18 -0
  60. mdadash-0.0.1/mdadash/frontend/src/socket.js +9 -0
  61. mdadash-0.0.1/mdadash/frontend/src/views/AlertsView.vue +7 -0
  62. mdadash-0.0.1/mdadash/frontend/src/views/DashboardView.vue +83 -0
  63. mdadash-0.0.1/mdadash/frontend/src/views/SettingsView.vue +208 -0
  64. mdadash-0.0.1/mdadash/frontend/vite.config.js +31 -0
  65. mdadash-0.0.1/mdadash/frontend/vitest.config.js +21 -0
  66. mdadash-0.0.1/mdadash/frontend/vitest.setup.js +27 -0
  67. mdadash-0.0.1/mdadash/mdadash.egg-info/PKG-INFO +177 -0
  68. mdadash-0.0.1/mdadash/mdadash.egg-info/SOURCES.txt +48 -0
  69. mdadash-0.0.1/mdadash/mdadash.egg-info/dependency_links.txt +1 -0
  70. mdadash-0.0.1/mdadash/mdadash.egg-info/entry_points.txt +2 -0
  71. mdadash-0.0.1/mdadash/mdadash.egg-info/requires.txt +13 -0
  72. mdadash-0.0.1/mdadash/mdadash.egg-info/top_level.txt +3 -0
  73. mdadash-0.0.1/mdadash.egg-info/PKG-INFO +268 -0
  74. mdadash-0.0.1/mdadash.egg-info/SOURCES.txt +79 -0
  75. mdadash-0.0.1/mdadash.egg-info/dependency_links.txt +1 -0
  76. mdadash-0.0.1/mdadash.egg-info/entry_points.txt +2 -0
  77. mdadash-0.0.1/mdadash.egg-info/requires.txt +21 -0
  78. mdadash-0.0.1/mdadash.egg-info/top_level.txt +1 -0
  79. mdadash-0.0.1/pyproject.toml +142 -0
  80. mdadash-0.0.1/setup.cfg +4 -0
  81. mdadash-0.0.1/setup.py +51 -0
@@ -0,0 +1,23 @@
1
+ # Authors
2
+
3
+ mdadash was created by Pardhav Maradani in 2026.
4
+
5
+ All contributing authors are listed in this file below.
6
+ The repository history at https://github.com/MDAnalysis/mdadash
7
+ and the CHANGELOG show individual code contributions.
8
+
9
+ ## Chronological list of authors
10
+
11
+ <!--
12
+ The rules for this file:
13
+ * Authors are sorted chronologically, earliest to latest
14
+ * Please format it each entry as "Preferred name <GitHub username>"
15
+ * Your preferred name is whatever you wish to go by --
16
+ it does *not* have to be your legal name!
17
+ * Please start a new section for each new year
18
+ * Don't ever delete anything
19
+ -->
20
+
21
+ **2026**
22
+
23
+ - Pardhav Maradani <@PardhavMaradani>
@@ -0,0 +1,51 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ <!--
9
+ The rules for this file:
10
+ * entries are sorted newest-first.
11
+ * summarize sets of changes - don't reproduce every git log comment here.
12
+ * don't ever delete anything.
13
+ * keep the format consistent:
14
+ * do not use tabs but use spaces for formatting
15
+ * 79 char width
16
+ * YYYY-MM-DD date format (following ISO 8601)
17
+ * accompany each entry with github issue/PR number (Issue #xyz)
18
+ -->
19
+
20
+ ## [Unreleased]
21
+
22
+ ### Authors
23
+
24
+ <!-- GitHub usernames of contributors to this release -->
25
+
26
+ PardhavMaradani
27
+
28
+ ### Added
29
+
30
+ <!-- New added features -->
31
+
32
+ - Added overall project structure (PR #3)
33
+ - Added async jupyter kernel support (PR #4)
34
+ - Added more tests and enabled code coverage (PR #5)
35
+ - Add basic connectivity between frontend and backend (PR #6)
36
+
37
+ ### Fixed
38
+
39
+ <!-- Bug fixes -->
40
+
41
+ ### Changed
42
+
43
+ <!-- Changes in existing functionality -->
44
+
45
+ ### Deprecated
46
+
47
+ <!-- Soon-to-be removed features -->
48
+
49
+ ### Removed
50
+
51
+ <!-- Removed features -->
@@ -0,0 +1,89 @@
1
+ The MDAnalysis *Code of Conduct* sets the rules for the behavior of
2
+ every member in the MDAnalysis community so that everyone can
3
+ experience a welcoming, supportive, and productive environment that is
4
+ free from harassment. As a [NumFOCUS][NF] sponsored
5
+ project, MDAnalysis follows the [NumFOCUS Code of Conduct][NF-conduct].
6
+
7
+ **Table of Contents**
8
+
9
+ - [MDAnalysis Code of Conduct](#numfocus-code-of-conduct)
10
+ - [How to Report](#how-to-report)
11
+ - [Who Will Receive Your Report](#who-will-receive-your-report)
12
+ - [Diversity, Equity, and Inclusion Statement](#diversity-equity-and-inclusion-statement)
13
+ - [Acknowledgment](#acknowledgment)
14
+
15
+ ## MDANALYSIS CODE OF CONDUCT
16
+ You can find the whole document here: [https://numfocus.org/code-of-conduct][NF-conduct].
17
+
18
+ ### THE SHORT VERSION
19
+ MDAnalysis and NumFOCUS are dedicated to providing a harassment-free community for everyone,
20
+ regardless of gender, sexual orientation, gender identity and expression, disability,
21
+ physical appearance, body size, race, or religion. We do not tolerate harassment of
22
+ community members in any form.
23
+
24
+ Be kind to others. Do not insult or put down others. Behave professionally. Remember
25
+ that harassment and sexist, racist, or exclusionary jokes are not appropriate for MDAnalysis
26
+ or NumFOCUS.
27
+
28
+ All communication should be appropriate for a professional audience including people of
29
+ many different backgrounds. Sexual language and imagery is not appropriate.
30
+
31
+ Thank you for helping make this a welcoming, friendly community for all.
32
+
33
+ ### THE LONG VERSION
34
+ You can find the long version of the Code of Conduct on the NumFOCUS website:
35
+ [https://numfocus.org/code-of-conduct][NF-conduct].
36
+
37
+ ## HOW TO REPORT
38
+ If you feel that the Code of Conduct has been violated, feel free to submit a report, by
39
+ using the [NumFOCUS Code of Conduct Reporting Form](https://numfocus.typeform.com/to/ynjGdT?typeform-source=numfocus.org).
40
+
41
+ ### REPORTING AT MDANALYSIS EVENTS AND MEETUPS
42
+ If you are attending an MDAnalysis event or meetup and wish to make a report that requires
43
+ an appropriate immediate response, you may contact the ombudspersons (who will identify
44
+ themselves at the event) or other event staff/meetup organizers. If you would prefer not to
45
+ do that, please [submit a report](#how-to-report) to NumFOCUS, but please note it may not be
46
+ possible for the [NumFOCUS Code of Conduct Working Group](#who-will-receive-your-report) to
47
+ respond immediately.
48
+
49
+ Ombudspeople and event staff/meetup organizers will be happy to help participants contact
50
+ venue security or local law enforcement, provide escorts, or otherwise assist those
51
+ experiencing harassment to feel safe for the duration of the event/meetup.
52
+
53
+ ## WHO WILL RECEIVE YOUR REPORT
54
+ Your report will be received and handled by the NumFOCUS Code of Conduct Working Group; trained,
55
+ and experienced contributors with diverse backgrounds. The group is making decisions independently
56
+ from the MDAnalysis project, PyData, NumFOCUS or any other organization.
57
+
58
+ You can learn more about the current group members, as well as the reporting procedure [HERE][NF-conduct].
59
+
60
+ ### ENFORCEMENT
61
+ Based on recommendations for next steps as determined by the NumFOCUS Code of Conduct Working Group,
62
+ the MDAnalysis project will remain responsible for making the final decision and implementing any
63
+ resulting actions. See the [MDAnalysis team](https://www.mdanalysis.org/pages/team/#roles) page on
64
+ the MDAnalysis website for a current list of the **MDAnalysis Code of Conduct Committee** members.
65
+
66
+ Once a resolution has been agreed upon, but before it is enacted, the MDAnalysis Code of Conduct
67
+ Committee will contact the original reporter and any other affected parties and explain the proposed
68
+ resolution. We will ask if this resolution is acceptable and note feedback for the record. We are,
69
+ however, not required to act on this feedback.
70
+
71
+ ## DIVERSITY, EQUITY, AND INCLUSION STATEMENT
72
+ MDAnalysis strives to ensure a welcoming, inclusive space for all. As a [NumFOCUS][NF] sponsored project,
73
+ we fully support their [*Diversity & Inclusion in Scientific Computing*](https://numfocus.org/programs/diversity-inclusion)
74
+ (DISC) mission and abide by their Diversity Statement:
75
+
76
+ > *"NumFOCUS welcomes and encourages participation in our community by people of all backgrounds and identities.
77
+ > We are committed to promoting and sustaining a culture that values mutual respect, tolerance, and learning,
78
+ > and we work together as a community to help each other live out these values."*
79
+
80
+ ## ACKNOWLEDGMENT
81
+
82
+ Original text courtesy of [*NumFOCUS*](https://numfocus.org/code-of-conduct), modified by MDAnalysis.
83
+
84
+ All content on this page is licensed under a [*Creative Commons Attribution*](http://creativecommons.org/licenses/by/3.0/)
85
+ license.
86
+
87
+ [NF]: https://numfocus.org/
88
+ [NF-conduct]: https://numfocus.org/code-of-conduct
89
+
mdadash-0.0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MDAnalysis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ include LICENSE
2
+ include MANIFEST.in
3
+ include AUTHORS.md CHANGELOG.md CODE_OF_CONDUCT.md README.md
4
+
5
+ graft mdadash
6
+ global-exclude *.py[cod] __pycache__ *.so
7
+
8
+ prune mdadash/frontend/node_modules
9
+ recursive-exclude mdadash/frontend/node_modules *
10
+ recursive-include mdadash/frontend/dist *
11
+ prune mdadash/frontend/coverage
12
+ recursive-exclude mdadash/frontend/coverage *
13
+ recursive-exclude mdadash/backend/tests *.npz
mdadash-0.0.1/PKG-INFO ADDED
@@ -0,0 +1,268 @@
1
+ Metadata-Version: 2.4
2
+ Name: mdadash
3
+ Version: 0.0.1
4
+ Summary: Dashboard for tracking and analyzing live MD simulations with streaming.
5
+ Author-email: Pardhav Maradani <pardhav.maradani@gmail.com>
6
+ Maintainer-email: Pardhav Maradani <pardhav.maradani@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: source, https://github.com/MDAnalysis/mdadash
9
+ Keywords: streaming monitoring mdanalysis molecular-dynamics-simulations
10
+ Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ License-File: AUTHORS.md
15
+ Requires-Dist: fastapi>=0.136.3
16
+ Requires-Dist: imdclient>=0.2.3
17
+ Requires-Dist: ipykernel>=7.2.0
18
+ Requires-Dist: MDAnalysis>=2.10.0
19
+ Requires-Dist: python-socketio>=5.16.2
20
+ Requires-Dist: uvicorn>=0.47.0
21
+ Provides-Extra: dev
22
+ Requires-Dist: nodejs; extra == "dev"
23
+ Requires-Dist: twine; extra == "dev"
24
+ Requires-Dist: ruff; extra == "dev"
25
+ Requires-Dist: build; extra == "dev"
26
+ Provides-Extra: test
27
+ Requires-Dist: pytest>=6.0; extra == "test"
28
+ Requires-Dist: pytest-xdist>=2.5; extra == "test"
29
+ Requires-Dist: pytest-cov>=3.0; extra == "test"
30
+ Provides-Extra: doc
31
+ Requires-Dist: sphinx; extra == "doc"
32
+ Requires-Dist: sphinx_rtd_theme; extra == "doc"
33
+ Dynamic: license-file
34
+
35
+ # mdadash
36
+
37
+ [//]: # "Badges"
38
+
39
+ | **Latest release** | [![Last release tag][badge_release]][url_latest_release] ![GitHub commits since latest release (by date) for a branch][badge_commits_since] [![Documentation Status][badge_docs]][url_docs] |
40
+ | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
41
+ | **Status** | [![GH Actions Status][badge_actions]][url_actions] [![codecov][badge_codecov]][url_codecov] |
42
+ | **Community** | [![License: MIT License][badge_license]][url_license] [![Powered by MDAnalysis][badge_mda]][url_mda] |
43
+
44
+ [badge_actions]: https://github.com/MDAnalysis/mdadash/actions/workflows/gh-ci.yaml/badge.svg
45
+ [badge_codecov]: https://codecov.io/gh/MDAnalysis/mdadash/branch/main/graph/badge.svg
46
+ [badge_commits_since]: https://img.shields.io/github/commits-since/MDAnalysis/mdadash/latest
47
+ [badge_docs]: https://readthedocs.org/projects/mdadash/badge/?version=latest
48
+ [badge_license]: https://img.shields.io/badge/License-MIT-yellow.svg
49
+ [badge_mda]: https://img.shields.io/badge/powered%20by-MDAnalysis-orange.svg?logoWidth=16&logo=data:image/x-icon;base64,AAABAAEAEBAAAAEAIAAoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJD+XwCY/fEAkf3uAJf97wGT/a+HfHaoiIWE7n9/f+6Hh4fvgICAjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT/yYAlP//AJ///wCg//8JjvOchXly1oaGhv+Ghob/j4+P/39/f3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJH8aQCY/8wAkv2kfY+elJ6al/yVlZX7iIiI8H9/f7h/f38UAAAAAAAAAAAAAAAAAAAAAAAAAAB/f38egYF/noqAebF8gYaagnx3oFpUUtZpaWr/WFhY8zo6OmT///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAn46Ojv+Hh4b/jouJ/4iGhfcAAADnAAAA/wAAAP8AAADIAAAAAwCj/zIAnf2VAJD/PAAAAAAAAAAAAAAAAICAgNGHh4f/gICA/4SEhP+Xl5f/AwMD/wAAAP8AAAD/AAAA/wAAAB8Aov9/ALr//wCS/Z0AAAAAAAAAAAAAAACBgYGOjo6O/4mJif+Pj4//iYmJ/wAAAOAAAAD+AAAA/wAAAP8AAABhAP7+FgCi/38Axf4fAAAAAAAAAAAAAAAAiIiID4GBgYKCgoKogoB+fYSEgZhgYGDZXl5e/m9vb/9ISEjpEBAQxw8AAFQAAAAAAAAANQAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjo6Mb5iYmP+cnJz/jY2N95CQkO4pKSn/AAAA7gAAAP0AAAD7AAAAhgAAAAEAAAAAAAAAAACL/gsAkv2uAJX/QQAAAAB9fX3egoKC/4CAgP+NjY3/c3Nz+wAAAP8AAAD/AAAA/wAAAPUAAAAcAAAAAAAAAAAAnP4NAJL9rgCR/0YAAAAAfX19w4ODg/98fHz/i4uL/4qKivwAAAD/AAAA/wAAAP8AAAD1AAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxsVyqqqr/mpqa/6mpqf9KSUn/AAAA5QAAAPkAAAD5AAAAhQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkUFBSuZ2dn/3V1df8uLi7bAAAATgBGfyQAAAA2AAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAADoAAAA/wAAAP8AAAD/AAAAWgC3/2AAnv3eAJ/+dgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9AAAA/wAAAP8AAAD/AAAA/wAKDzEAnP3WAKn//wCS/OgAf/8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAANwAAADtAAAA7QAAAMAAABUMAJn9gwCe/e0Aj/2LAP//AQAAAAAAAAAA
50
+ [badge_release]: https://img.shields.io/github/release-pre/MDAnalysis/mdadash.svg
51
+ [url_actions]: https://github.com/MDAnalysis/mdadash/actions?query=branch%3Amain+workflow%3Agh-ci
52
+ [url_codecov]: https://codecov.io/gh/MDAnalysis/mdadash/branch/main
53
+ [url_docs]: https://mdadash.readthedocs.io/en/latest/?badge=latest
54
+ [url_latest_release]: https://github.com/MDAnalysis/mdadash/releases
55
+ [url_license]: https://opensource.org/licenses/MIT
56
+ [url_mda]: https://www.mdanalysis.org
57
+
58
+ Dashboard for tracking and analyzing live MD simulations with streaming.
59
+
60
+ mdadash is bound by a [Code of Conduct](https://github.com/MDAnalysis/mdadash/blob/main/CODE_OF_CONDUCT.md).
61
+
62
+ ### Installation
63
+
64
+ To build mdadash from source,
65
+ we highly recommend using virtual environments.
66
+ If possible, we strongly recommend that you use
67
+ [Anaconda](https://docs.conda.io/en/latest/) as your package manager.
68
+ Below we provide instructions both for `conda` and
69
+ for `pip`.
70
+
71
+ #### With conda
72
+
73
+ Ensure that you have [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) installed.
74
+
75
+ Create a virtual environment and activate it:
76
+
77
+ ```sh
78
+ conda create --name mdadash
79
+ conda activate mdadash
80
+ ```
81
+
82
+ Install the development, testing and documentation dependencies:
83
+
84
+ ```sh
85
+ conda env update --name mdadash --file devtools/conda-envs/dev_env.yaml
86
+ conda env update --name mdadash --file devtools/conda-envs/test_env.yaml
87
+ conda env update --name mdadash --file docs/requirements.yaml
88
+ ```
89
+
90
+ Build this package from source:
91
+
92
+ ```sh
93
+ pip install -e .
94
+ ```
95
+
96
+ If you want to update your dependencies (which can be risky!), run:
97
+
98
+ ```sh
99
+ conda update --all
100
+ ```
101
+
102
+ And when you are finished, you can exit the virtual environment with:
103
+
104
+ ```sh
105
+ conda deactivate
106
+ ```
107
+
108
+ #### With pip
109
+
110
+ To build the package from source, run:
111
+
112
+ ```sh
113
+ pip install .
114
+ ```
115
+
116
+ If you want to create a development environment, install
117
+ the dependencies required for tests and docs with:
118
+
119
+ ```sh
120
+ pip install ".[dev,test,doc]"
121
+ ```
122
+
123
+ ### Run
124
+
125
+ > The frontend code needs to be built before running the backend server. This can be done as follows:
126
+
127
+ ```sh
128
+ cd mdadash/frontend
129
+ npm install
130
+ npm run build
131
+ ```
132
+
133
+ To run the dashboard server:
134
+
135
+ ```sh
136
+ mdadash
137
+ ```
138
+
139
+ To see the options available:
140
+
141
+ ```sh
142
+ mdadash --help
143
+ ```
144
+
145
+ ### Development
146
+
147
+ #### Frontend
148
+
149
+ Developer instruction for `frontend` code can be found [here](mdadash/frontend/README.md).
150
+
151
+ #### Backend
152
+
153
+ - Use the `editable` installation above (`pip install -e .`)
154
+
155
+ ### Tests
156
+
157
+ #### Frontend
158
+
159
+ ```sh
160
+ npm run test:unit --prefix mdadash/frontend -- --run
161
+ ```
162
+
163
+ #### Backend
164
+
165
+ ```sh
166
+ pytest -v
167
+ ```
168
+
169
+ ### Code Coverage
170
+
171
+ #### Frontend
172
+
173
+ ```sh
174
+ cd mdadash/frontend
175
+ npx vitest --run --coverage
176
+ ```
177
+
178
+ The coverage details will be shown on the console. Open `coverage/index.html` to view the interactive coverage report in the browser.
179
+
180
+ #### Backend
181
+
182
+ To see coverage output on the console:
183
+
184
+ ```sh
185
+ pytest -v --cov=mdadash
186
+ ```
187
+
188
+ To write coverage output to `html` file:
189
+
190
+ ```sh
191
+ pytest -v --cov=mdadash --cov-report=html
192
+ ```
193
+
194
+ Open `htmlcov/index.html` to view the coverage report in the browser.
195
+
196
+ ### Build
197
+
198
+ To build this package:
199
+
200
+ ```sh
201
+ rm -rf mdadash.egg-info dist && python -m build
202
+ ```
203
+
204
+ To verify the created wheel:
205
+
206
+ ```sh
207
+ uv run --refresh --with path.to.whl mdadash
208
+ ```
209
+
210
+ To check the created distribution:
211
+
212
+ ```sh
213
+ twine check dist/*
214
+ ```
215
+
216
+ ### Verify GitHub actions locally
217
+
218
+ GitHub actions can be verified locally using [act](https://github.com/nektos/act).
219
+
220
+ > Note that this requires [Docker](https://www.docker.com). Running on Mac needs an additional param `--container-architecture linux/arm64`. To bypass the repo name check, you can pass `--env GITHUB_REPOSITORY=MDAnalysis/mdadash`. Both these can be set in `~/.actrc` as well.
221
+
222
+ To list the jobs:
223
+
224
+ ```sh
225
+ act -l
226
+ ```
227
+
228
+ To run a job (eg: `pylint_check`):
229
+
230
+ ```sh
231
+ act -j pylint_check
232
+ ```
233
+
234
+ To run all jobs:
235
+
236
+ ```sh
237
+ act
238
+ ```
239
+
240
+ ### Docs
241
+
242
+ Setting up the docs environment:
243
+
244
+ ```sh
245
+ conda env update --name mdadash --file docs/requirements.yaml
246
+ ```
247
+
248
+ Building docs locally:
249
+
250
+ ```sh
251
+ cd docs
252
+ make clean && make html
253
+ ```
254
+
255
+ Open `docs/_build/html/index.html` to view the docs in the browser.
256
+
257
+ ### Copyright
258
+
259
+ The mdadash source code is hosted at https://github.com/MDAnalysis/mdadash
260
+ and is available under the [MIT License](https://opensource.org/licenses/MIT) (see the file [LICENSE](https://github.com/MDAnalysis/mdadash/blob/main/LICENSE)).
261
+
262
+ Copyright (c) 2026, MDAnalysis
263
+
264
+ #### Acknowledgements
265
+
266
+ Project based on the
267
+ [MDAnalysis Cookiecutter](https://github.com/MDAnalysis/cookiecutter-mda) version 0.1.
268
+ Please cite [MDAnalysis](https://github.com/MDAnalysis/mdanalysis#citation) when using mdadash in published work.