The Icarus NMR Pressure Jump Apparatus is a novel device used to rapidly switch the pressure within an NMR sample cell. This enables study of the unfolded protein under native conditions and, vice versa, study of the native protein under denaturing conditions. This project is the second version of a monitoring software for the pressure sensors and digital controls. It is responsible for displaying device readings, controlling and testing hardware, and detecting faults.
Once a DATAQ DI-4108 USB device (check out its protocol here) is detected by the monitoring software, it establishes a connection and begins reading data from the USB device at 4000Hz. The analog and digital channels monitored are as follows:
The data is stored in a circular buffer with a default length of 2 minutes. The data is read by many event handlers which each detect certain features in the readings. They then signal events containing their respective data which may be read by the GUI. The event handlers are as follows:
The digital channels may be controlled by the software by sending commands to the DATAQ DI-4108. This is used for the following:
All events are transmitted to the GUI and are rendered in dedicated event plots, history plots, and status indicators. They are also transmitted to a Sentry module which analyzes them to detect leaks and abnormal behavior. In the event of a serious leak, the device will automatically shut down. Pressurize, depressurize, and period events are also transmitted to a logger, which generates LZMA compressed log files. These files may be opened by the GUI for later viewing.
Python >=3.10, <=3.12
PySide6
PyQtDarkTheme
Ensure you have Python 3.10-3.12 installed on your system by running the following command.
python3 --version
If Python is not installed, or you need a different version, follow the installation instructions for your operating system from the official Python documentation: https://www.python.org/downloads/.
The recommended method for installation is to install the application globally using pipx. If pipx is not installed on your system, follow the official installation instructions here: https://pypa.github.io/pipx/installation/
Now, you can install the icarus_v2 package:
pipx install icarus_v2
To update the application to the latest version, use:
pipx upgrade icarus_v2
To start the application, run the following command from any directory:
icarus
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)This project uses poetry to manage dependencies. To install it, follow the instructions found in the documentation at https://python-poetry.org/docs.
Before you can start setting up your environment, you'll need to clone the repository containing the project. Open your terminal and execute the following command:
git clone https://github.com/SeanIFitch/icarus_v2
cd icarus_v2
Now you can initialize the poetry package:
poetry install
To run the main script, you can use the following command from the directory into which you cloned the repository:
poetry run icarus
Distributed under the MIT License. See LICENSE.txt
for more information.
Sean Fitch - seanifitch@gmail.com
Project Link: https://github.com/SeanIFitch/icarus_v2