# hurahura - formally miresearch
Organisation and automation tools for medical imaging research data
__hurahura__ is maori for "to investigate" or "to look around"
## Installation:
```bash
pip install hurahura
# formally: pip install imaging-research
```
> [!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 [hurahura docs](https://fraser29.github.io/hurahura/) for advanced usage, epsecially via inheritance and polymorphism.
# Exposed commandline tool: miresearch
```bash
hurahura -h
usage: hurahura [-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
hurahura 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 `hurahura`
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:
`hurahura -INFO`
# Documentation
For full documentation see [hurahura docs](https://fraser29.github.io/hurahura/)
Raw data
{
"_id": null,
"home_page": "https://github.com/fraser29/hurahura",
"name": "hurahura",
"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/bd/1b/e6a544ee9216817e5b96dc21bc6fe8d4fe81621c728f070d30f83758d7e3/hurahura-0.1.1.tar.gz",
"platform": null,
"description": "\n# hurahura - formally miresearch\n\nOrganisation and automation tools for medical imaging research data\n\n__hurahura__ is maori for \"to investigate\" or \"to look around\"\n\n## Installation: \n\n```bash\npip install hurahura\n# formally: pip install imaging-research\n\n```\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 [hurahura docs](https://fraser29.github.io/hurahura/) for advanced usage, epsecially via inheritance and polymorphism. \n\n# Exposed commandline tool: miresearch\n\n```bash\n\nhurahura -h\nusage: hurahura [-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\nhurahura 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 `hurahura`\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`hurahura -INFO` \n\n# Documentation\n\nFor full documentation see [hurahura docs](https://fraser29.github.io/hurahura/)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Medical Imaginging Research structuring and automation",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/fraser29/hurahura"
},
"split_keywords": [
"medical",
" imaging",
" mri",
" ct",
" dicom"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "aeaab538bcf8ebb9244642c0bacba78fe8ef323fbc4e079d26607248a64155b4",
"md5": "6cd8598f4b54797347120f7920ed10af",
"sha256": "a75ee580b4038d86a3b8f2fe93f60a8d6baf1e6cd18e47655252c42058b66240"
},
"downloads": -1,
"filename": "hurahura-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6cd8598f4b54797347120f7920ed10af",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9.0",
"size": 49332,
"upload_time": "2025-02-12T15:48:22",
"upload_time_iso_8601": "2025-02-12T15:48:22.251957Z",
"url": "https://files.pythonhosted.org/packages/ae/aa/b538bcf8ebb9244642c0bacba78fe8ef323fbc4e079d26607248a64155b4/hurahura-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bd1be6a544ee9216817e5b96dc21bc6fe8d4fe81621c728f070d30f83758d7e3",
"md5": "90fca222adde3b0b5aaf89cab59b168e",
"sha256": "cfb426211927cd98b4f37a00b59ac1b420ed34eb05f7143cc41910dbe3ae8c0a"
},
"downloads": -1,
"filename": "hurahura-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "90fca222adde3b0b5aaf89cab59b168e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 48403,
"upload_time": "2025-02-12T15:48:24",
"upload_time_iso_8601": "2025-02-12T15:48:24.379801Z",
"url": "https://files.pythonhosted.org/packages/bd/1b/e6a544ee9216817e5b96dc21bc6fe8d4fe81621c728f070d30f83758d7e3/hurahura-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-12 15:48:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fraser29",
"github_project": "hurahura",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "hurahura"
}