Home - ULJ-Yale/qunexsdk GitHub Wiki
QuNex SDK documentation
Background
The Quantitative Neuroimaging Environment & ToolboX (QuNex) integrates code developed in several programming languages that support a flexible and extensible framework for data organization, preprocessing, quality assurance and various analyses across neuroimaging modalities. The QuNex suite is flexible and can be updated by adding specific functions and units of code to support new command calls developed around its component tools.
QuNex SDK is a separate set of tools provided as a Git repository created to support the development and acceptance testing procedures for core QuNex developers as well as others who wish to contribute to the development of the QuNex suite.
QuNex suite and its SDK are developed and maintained by the:
QuNex development
Information for QuNex developers is provided in the following sections:
-
Development information General information for the development process.
-
DevOps model Overview of the DevOps model and strategy for developers of the QuNex suite.
-
Development workflow Instructions on how to setup and use a development environment.
-
Command registry and command types How QuNex registers commands from docstrings, command types and processing parallelization.
-
Developer utilities and classes Reusable classes and helpers QuNex provides for command development, including the SessionList class.
-
Writing a QuNex extension How to add your own commands to QuNex — in Python, MATLAB or bash — without touching the QuNex installation.
-
Invocation — sessions and parameters How a command gets its sessions and its parameter values: the batch file, the parameter tiers, and the rules that govern both.
-
Logging How a command reports what it did: runlogs and comlogs, the log object, the rules to follow and the pitfalls to avoid.
-
How to write commit messages Information on how to write commit messages.
-
Read the Docs documentation deployment Guide on how to compile the Read the Docs documentation.
-
Writing QuNex tutorials Template on how to write QuNex tutorials.
-
QuNex container development Guide on QuNex container development, building and tagging.
-
Publishin containers and the qunex_container script Guide on QuNex container publishing.
QuNex whitepapers
Longer, self-standing documents that describe how a part of QuNex is built, and why:
-
The QuNex invocation whitepaper How a command line becomes a running command: the entry points and the dispatcher, how the batch file, the sessions and the filter are read, how the parameter tiers are merged, and what each command class receives.
-
The QuNex logging whitepaper How logging is implemented: runlogs and comlogs, the log object and the log files, the life of a log, what a processing command's contract is, where the logs land, and every setting.
-
The QuNex extensions whitepaper How QuNex is extended with commands of your own: the anatomy of an extension, how commands and their parameters are declared and found, what happens when one runs, and how an extension overrides a command the suite provides.
QuNex support servers
Information about deploying servers to support QuNex infrastructure: