|
| 1 | +Metadata-Version: 2.4 |
| 2 | +Name: concore |
| 3 | +Version: 1.0.0 |
| 4 | +Summary: Concore workflow management CLI |
| 5 | +Home-page: https://github.com/ControlCore-Project/concore |
| 6 | +Author: ControlCore Project |
| 7 | +License: MIT |
| 8 | +Requires-Python: >=3.9 |
| 9 | +Description-Content-Type: text/markdown |
| 10 | +License-File: LICENSE |
| 11 | +Requires-Dist: click>=8.0.0 |
| 12 | +Requires-Dist: rich>=10.0.0 |
| 13 | +Requires-Dist: beautifulsoup4>=4.9.0 |
| 14 | +Requires-Dist: lxml>=4.6.0 |
| 15 | +Requires-Dist: psutil>=5.8.0 |
| 16 | +Provides-Extra: dev |
| 17 | +Requires-Dist: pytest>=6.0.0; extra == "dev" |
| 18 | +Requires-Dist: pytest-cov>=2.10.0; extra == "dev" |
| 19 | +Dynamic: author |
| 20 | +Dynamic: home-page |
| 21 | +Dynamic: license-file |
| 22 | +Dynamic: requires-python |
| 23 | + |
| 24 | +# CONTROL-CORE: Integrated Development Environment for Closed-loop Neuromodulation Control Systems. |
| 25 | + |
| 26 | +[CONTROL-CORE](https://github.com/ControlCore-Project/) is a design and simulation framework, functioning as a visual Integrated Development Environment (IDE) for Closed-loop Neuromodulation Control Systems. At its center is _concore_, a lightweight protocol to simulate neuromodulation control systems. This repository consists of the implementation of _concore_ protocol and sample (demo and neuromodulation control systems) studies. In addition to its default standard Python implementation, _concore_ also supports developing studies in Matlab/Octave, Verilog, and C++. _concore_ also aims to support more language programs in the future. |
| 27 | + |
| 28 | +# The CONTROL-CORE Framework |
| 29 | + |
| 30 | +The CONTROL-CORE framework consists of the below projects. |
| 31 | + |
| 32 | +* _concore_: The CONTROL-CORE protocol, known as _concore_, allows modular simulation of controller and PM nodes to run on different operating systems, computing platforms, and programming languages. [This repository](https://github.com/ControlCore-Project/concore/) consists of _concore_ source code. The _concore_ documentation can be found [here](https://control-core.readthedocs.io/en/latest/index.html). A _concore_ study can be developed from programs written in different languages. That means, _concore_ facilitates a seamless communication across codes developed in different languages that it supports, through its simple file-based data sharing between the programs. |
| 33 | + |
| 34 | +* _concore_ Editor: This is the front-end for CONTROL-CORE. We forked [DHGWorkflow](https://github.com/ControlCore-Project/DHGWorkflow), a sibling project we developed, and extend it as the _concore_ Editor. |
| 35 | + |
| 36 | +* _Mediator_: The [Mediator](https://github.com/ControlCore-Project/mediator) allows the CONTROL-CORE studies to be distributed and run, rather than having all the programs that construct a study to be run just from a centralized location. |
| 37 | + |
| 38 | +* _concore-lite_: The [_concore-lite_](https://github.com/ControlCore-Project/concore-lite) repository consists of a simple example version of a _concore_ study. Please check out and run this, if you like to learn the _concore_ protocol without having to clone this large _concore_ repository. |
| 39 | + |
| 40 | +* documentation: The [source code repository](https://github.com/ControlCore-Project/documentation) of the ReadTheDocs documentation of CONTROL-CORE. |
| 41 | + |
| 42 | + |
| 43 | +# The _concore_ Protocol |
| 44 | + |
| 45 | +_concore_ enables composing studies from programs developed in different languages. Currently supported languages are, Python, Matlab/Octave, Verilog, and C++. The studies are designed through the visual _concore_ Editor (DHGWorkflow) and interpreted into _concore_ through its parser. Neural control systems consist of loops (dicycles). Therefore, they cannot be represented by classic workflow standards (such as CWL or WDL). Therefore, _concore_ addresses a significant research gap to model closed-loop neuromodulation control systems. The _concore_ protocol shares data between the programs through file sharing, with no centralized entity (a broker or an orchestrator) to arbitrate communications between the programs. (In the distributed executions, the CONTROL-CORE Mediator enables connecting the disjoint pieces of the study through REST APIs). |
| 46 | + |
| 47 | + |
| 48 | +# Installation and Getting Started Guide |
| 49 | + |
| 50 | +Please follow the [ReadTheDocs](https://control-core.readthedocs.io/en/latest/index.html) documentation and the [_concore-lite_](https://github.com/ControlCore-Project/concore-lite) repository to get started quick. |
| 51 | + |
| 52 | +Installation instructions for concore can be found [here](https://control-core.readthedocs.io/en/latest/installation.html). Usage instructions can be found [here](https://control-core.readthedocs.io/en/latest/usage.html). |
| 53 | + |
| 54 | +## Command-Line Interface (CLI) |
| 55 | + |
| 56 | +_concore_ now includes a command-line interface for easier workflow management. Install it with: |
| 57 | + |
| 58 | +```bash |
| 59 | +pip install -e . |
| 60 | +``` |
| 61 | + |
| 62 | +Quick start with the CLI: |
| 63 | + |
| 64 | +```bash |
| 65 | +# Create a new project |
| 66 | +concore init my-project |
| 67 | + |
| 68 | +# Validate your workflow |
| 69 | +concore validate workflow.graphml |
| 70 | + |
| 71 | +# Run your workflow |
| 72 | +concore run workflow.graphml --auto-build |
| 73 | + |
| 74 | +# Monitor running processes |
| 75 | +concore status |
| 76 | + |
| 77 | +# Stop all processes |
| 78 | +concore stop |
| 79 | +``` |
| 80 | + |
| 81 | +For detailed CLI documentation, see [concore_cli/README.md](concore_cli/README.md). |
| 82 | + |
| 83 | +For a detailed and more scientific documentation, please read our extensive [open-access research paper on CONTROL-CORE](https://doi.org/10.1109/ACCESS.2022.3161471). This paper has a complete discussion on the CONTROL-CORE architecture and deployment, together with the commands to execute the studies in different programming languages and programming environments (Ubuntu, Windows, MacOS, Docker, and distributed execution). |
| 84 | + |
| 85 | + |
| 86 | +# The _concore_ Repository |
| 87 | + |
| 88 | +_concore_ contains programs (such as physiological models or more commonly called "PMs" and controllers) and studies (i.e., graphml files that represents the studies as workflows). The _wrappers_ enable seamlessly extending a study into a distributed one with the CONTROL-CORE Mediator. |
| 89 | + |
| 90 | +_concore_ repository consists of several scripts at its root level. The demo folder consists of several sample programs and studies, mostly toy examples to learn the protocol. The ratc folder consists of the programs and studies of the rat cardiac experiments we developed with _concore_. |
| 91 | + |
| 92 | +If you have a bug to report in one of the CONTROL-CORE projects, please report it through relevant Issue Tracker. Similarly, please feel free to contribute your studies and code enhancements using pull requests. Questions and discussions can be made through the relevant Discussions forum. |
| 93 | + |
| 94 | +The _concore_ Issues can be reported [here](https://github.com/ControlCore-Project/concore/issues). |
| 95 | + |
| 96 | +The _concore_ discussion forum can be found [here](https://github.com/ControlCore-Project/concore/discussions). |
| 97 | + |
| 98 | +Please make sure to send your _concore_ pull requests to the [dev branch](https://github.com/ControlCore-Project/concore/tree/dev). |
| 99 | + |
| 100 | + |
| 101 | +# Citing _concore_ |
| 102 | + |
| 103 | +If you use _concore_ in your research, please cite the below papers: |
| 104 | + |
| 105 | +* Kathiravelu, P., Arnold, M., Vijay, S., Jagwani, R., Goyal, P., Goel, A.K., Li, N., Horn, C., Pan, T., Kothare, M. V., and Mahmoudi, B. **Distributed Executions with CONTROL-CORE Integrated Development Environment (IDE) for Closed-loop Neuromodulation Control Systems.** In Cluster Computing – The Journal of Networks Software Tools and Applications (CLUSTER). May 2025. Accepted. Springer. |
| 106 | +* Kathiravelu, P., Arnold, M., Fleischer, J., Yao, Y., Awasthi, S., Goel, A. K., Branen, A., Sarikhani, P., Kumar, G., Kothare, M. V., and Mahmoudi, B. **CONTROL-CORE: A Framework for Simulation and Design of Closed-Loop Peripheral Neuromodulation Control Systems**. In IEEE Access. March 2022. https://doi.org/10.1109/ACCESS.2022.3161471 |
0 commit comments