# miresearch
Organisation and automation tools for medical imaging research data
## Installation:
```bash
pip install imaging-research
```
Note: pypi reported naming conflicts for miresearch
> [!IMPORTANT]
> This package is currently undergoing frequent development and testing. Please check back regularly for version updates.
## About
This is a collection of classes for following OOP principles for organisation of research data for medical imaging research studies.
It takes advantage of the dicom standard and the package [spydcmtk](https://github.com/fraser29/spydcmtk) for automating and generalising many typical steps with the intention of making the researcher's life easier.
This package may be easily adapted and expanded upon for a high level control over your research data. Or, it may be used as is for basic structure and organisation of data and automation of common tasks.
> [!NOTE]
> Version 0.1.0 release: Greater flexibility in subject ID naming and stability improvements to miresearch_watchdog.
## Class structure
**AbstractSubject** class is top level class taking inputs:
- *subjectNumber* : an integer
- *dataRoot* : the root directory where subjects to be stored
- *subjectPrefix* : a prefix to be combined with *subjectNumber* for naming each subject
- Optional: will be guessed from subjects already present in *dataRoot* if not given.
- *DIRECTORY_STRUCTURE_TREE* : DirectoryStructureTree class to define directory structure for each subject directory (see wiki for construction shortcuts)
- Optional: Defaults to **RAW** and **META** directories.
This is the basic parent class containing fundamental methods for organisation and management. See [miresearch docs](https://fraser29.github.io/miresearch/) for advanced usage, epsecially via inheritance and polymorphism.
# Exposed commandline tool: miresearch
```bash
miresearch -h
usage: miresearch [-h] [-config CONFIGFILE] [-FORCE] [-QUIET] [-INFO] [-DEBUG] [-s [SUBJNLIST ...]] [-sf SUBJNLISTFILE] [-sR SUBJRANGE SUBJRANGE] [-y DATAROOT] [-sPrefix SUBJPREFIX] [-sSuffix SUBJSUFFIX]
[-anonName ANONNAME] [-Load LOADPATH] [-LOAD_MULTI] [-LOAD_MULTI_FORCE] [-RunPost] [-SubjInfo] [-SummaryCSV SUMMARYCSV] [-WatchDirectory WATCHDIRECTORY]
options:
-h, --help show this help message and exit
Management Parameters:
-config CONFIGFILE Path to configuration file to use.
-FORCE force action - use with caution
-QUIET Suppress progress bars and logging to terminal
-INFO Provide setup (configuration) info and exit.
-DEBUG Run in DEBUG mode (save intermediate steps, increase log output)
Subject Definition:
-s [SUBJNLIST ...] Subject number
-sf SUBJNLISTFILE Subject numbers in file
-sR SUBJRANGE SUBJRANGE
Subject range
-y DATAROOT Path of root data directory (where subjects are stored) [default None -> may be set in config file]
-sPrefix SUBJPREFIX Subject prefix [default None -> will get from config file OR dataRoot]
-sSuffix SUBJSUFFIX Subject suffix [default ""]
-anonName ANONNAME Set to anonymise newly loaded subject. Set to true to use for WatchDirectory. [default None]
Actions:
-Load LOADPATH Path to load dicoms from (file / directory / tar / tar.gz / zip)
-LOAD_MULTI Combine with "Load": Load new subject for each subdirectory under loadPath
-LOAD_MULTI_FORCE Combine with "Load": Force to ignore studyUIDs and load new ID per subdirectory
-RunPost Run post load pipeline
-SubjInfo Print info for each subject
-SummaryCSV SUMMARYCSV
Write summary CSV file (give output file name)
-WatchDirectory WATCHDIRECTORY
Will watch given directory for new data and load as new study
```
# Configuration
miresearch uses a miresearch.conf file for configuration.
By default miresearch.conf files are search for in the following locations:
1. source_code_directory/miresearch.conf (file with default settings)
2. $HOME/miresearch.conf
3. $HOME/.miresearch.conf
4. $HOME/.config/miresearch.conf
5. Full file path defined at environment variable: "MIRESEARCH_CONF"
6. Full path passed as commandline argument to `miresearch`
Files are read in the above order with each subsequent variable present overwritting any previously defined.
For information on files found and variables used run:
`miresearch -INFO`
# Documentation
For full documentation see [miresearch docs](https://fraser29.github.io/miresearch/)
Raw data
{
"_id": null,
"home_page": "https://github.com/fraser29/miresearch",
"name": "imaging-research",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9.0",
"maintainer_email": null,
"keywords": "medical, imaging, mri, ct, dicom",
"author": "Fraser M. Callaghan",
"author_email": "callaghan.fm@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ed/95/e51ff603eccb74a7cde5dd8f4825f66f362493798cbffcb25feb42d85d64/imaging_research-0.1.5.tar.gz",
"platform": null,
"description": "\n# miresearch\nOrganisation and automation tools for medical imaging research data\n\n## Installation: \n\n```bash\npip install imaging-research\n```\nNote: pypi reported naming conflicts for miresearch\n\n> [!IMPORTANT] \n> This package is currently undergoing frequent development and testing. Please check back regularly for version updates.\n\n## About\n\nThis is a collection of classes for following OOP principles for organisation of research data for medical imaging research studies. \n\nIt takes advantage of the dicom standard and the package [spydcmtk](https://github.com/fraser29/spydcmtk) for automating and generalising many typical steps with the intention of making the researcher's life easier. \n\nThis package may be easily adapted and expanded upon for a high level control over your research data. Or, it may be used as is for basic structure and organisation of data and automation of common tasks. \n\n> [!NOTE] \n> Version 0.1.0 release: Greater flexibility in subject ID naming and stability improvements to miresearch_watchdog.\n\n\n## Class structure\n\n**AbstractSubject** class is top level class taking inputs:\n- *subjectNumber* : an integer\n- *dataRoot* : the root directory where subjects to be stored \n- *subjectPrefix* : a prefix to be combined with *subjectNumber* for naming each subject\n - Optional: will be guessed from subjects already present in *dataRoot* if not given. \n- *DIRECTORY_STRUCTURE_TREE* : DirectoryStructureTree class to define directory structure for each subject directory (see wiki for construction shortcuts)\n - Optional: Defaults to **RAW** and **META** directories. \n\nThis is the basic parent class containing fundamental methods for organisation and management. See [miresearch docs](https://fraser29.github.io/miresearch/) for advanced usage, epsecially via inheritance and polymorphism. \n\n# Exposed commandline tool: miresearch\n\n```bash\n\nmiresearch -h\nusage: miresearch [-h] [-config CONFIGFILE] [-FORCE] [-QUIET] [-INFO] [-DEBUG] [-s [SUBJNLIST ...]] [-sf SUBJNLISTFILE] [-sR SUBJRANGE SUBJRANGE] [-y DATAROOT] [-sPrefix SUBJPREFIX] [-sSuffix SUBJSUFFIX]\n [-anonName ANONNAME] [-Load LOADPATH] [-LOAD_MULTI] [-LOAD_MULTI_FORCE] [-RunPost] [-SubjInfo] [-SummaryCSV SUMMARYCSV] [-WatchDirectory WATCHDIRECTORY]\n\noptions:\n -h, --help show this help message and exit\n\nManagement Parameters:\n -config CONFIGFILE Path to configuration file to use.\n -FORCE force action - use with caution\n -QUIET Suppress progress bars and logging to terminal\n -INFO Provide setup (configuration) info and exit.\n -DEBUG Run in DEBUG mode (save intermediate steps, increase log output)\n\nSubject Definition:\n -s [SUBJNLIST ...] Subject number\n -sf SUBJNLISTFILE Subject numbers in file\n -sR SUBJRANGE SUBJRANGE\n Subject range\n -y DATAROOT Path of root data directory (where subjects are stored) [default None -> may be set in config file]\n -sPrefix SUBJPREFIX Subject prefix [default None -> will get from config file OR dataRoot]\n -sSuffix SUBJSUFFIX Subject suffix [default \"\"]\n -anonName ANONNAME Set to anonymise newly loaded subject. Set to true to use for WatchDirectory. [default None]\n\nActions:\n -Load LOADPATH Path to load dicoms from (file / directory / tar / tar.gz / zip)\n -LOAD_MULTI Combine with \"Load\": Load new subject for each subdirectory under loadPath\n -LOAD_MULTI_FORCE Combine with \"Load\": Force to ignore studyUIDs and load new ID per subdirectory\n -RunPost Run post load pipeline\n -SubjInfo Print info for each subject\n -SummaryCSV SUMMARYCSV\n Write summary CSV file (give output file name)\n -WatchDirectory WATCHDIRECTORY\n Will watch given directory for new data and load as new study\n\n```\n\n# Configuration\n\nmiresearch uses a miresearch.conf file for configuration. \n\nBy default miresearch.conf files are search for in the following locations: \n\n1. source_code_directory/miresearch.conf (file with default settings)\n2. $HOME/miresearch.conf\n3. $HOME/.miresearch.conf\n4. $HOME/.config/miresearch.conf\n5. Full file path defined at environment variable: \"MIRESEARCH_CONF\"\n6. Full path passed as commandline argument to `miresearch`\n\nFiles are read in the above order with each subsequent variable present overwritting any previously defined. \nFor information on files found and variables used run:\n\n`miresearch -INFO` \n\n# Documentation\n\nFor full documentation see [miresearch docs](https://fraser29.github.io/miresearch/)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Medical Imaginging Research structuring and automation",
"version": "0.1.5",
"project_urls": {
"Homepage": "https://github.com/fraser29/miresearch"
},
"split_keywords": [
"medical",
" imaging",
" mri",
" ct",
" dicom"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ee1a2f75e4c45f0063fc29b10529a6aa38cce52911a9ed12130649ba2f0fb2e8",
"md5": "694f6215d2d4bfb96597ba8b6b94f01e",
"sha256": "81429841e9166ee6aea4640d61e190faffe8edeb157def4ef7e3b7b68668a04b"
},
"downloads": -1,
"filename": "imaging_research-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "694f6215d2d4bfb96597ba8b6b94f01e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9.0",
"size": 37944,
"upload_time": "2024-06-19T09:47:47",
"upload_time_iso_8601": "2024-06-19T09:47:47.901929Z",
"url": "https://files.pythonhosted.org/packages/ee/1a/2f75e4c45f0063fc29b10529a6aa38cce52911a9ed12130649ba2f0fb2e8/imaging_research-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ed95e51ff603eccb74a7cde5dd8f4825f66f362493798cbffcb25feb42d85d64",
"md5": "684635e182c091a3836e7d33d25b2204",
"sha256": "c73c5cd6f2affb14b8d50bd98239c2a74ca14f353243f001d2e6370065fc8b41"
},
"downloads": -1,
"filename": "imaging_research-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "684635e182c091a3836e7d33d25b2204",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 36822,
"upload_time": "2024-06-19T09:47:51",
"upload_time_iso_8601": "2024-06-19T09:47:51.613118Z",
"url": "https://files.pythonhosted.org/packages/ed/95/e51ff603eccb74a7cde5dd8f4825f66f362493798cbffcb25feb42d85d64/imaging_research-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-19 09:47:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fraser29",
"github_project": "miresearch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "imaging-research"
}