| Name | brainvoyagertools JSON |
| Version |
0.4.0
JSON |
| download |
| home_page | https://github.com/fladd/brainvoyagertools |
| Summary | BrainVoyager Tools - An object-oriented approach to create, read and write common plain-text BrainVoyager input formats with Python |
| upload_time | 2022-12-06 10:53:33 |
| maintainer | |
| docs_url | None |
| author | Florian Krause |
| requires_python | >=3.6 |
| license | |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# BrainVoyager Tools
An object-oriented approach to create, read and write common plain-text BrainVoyager input formats with Python.
Currently supported:
* .ctr
* .mdm
* .prt
* .sdm
* .voi
## Installation
BrainVoyager Tools can be easily installed with pip:
```
pip install brainvoyagertools
```
## Usage
### ctr
**Build a contrast definition from scratch:**
```python
from brainvoyagertools import ctr
contrasts = ctr.ContrastsDefinition()
contrasts.add_contrast(ctr.Contrast("All vs. Baseline", [1, 1, 0]))
contrasts.add_contrast(ctr.Contrast("House vs. Faces", [1, -1, 0]))
contrasts.save("contrasts.ctr")
```
**Add contrasts to contrast definition file:**
```python
from brainvoyagertools import ctr
contrasts = ctr.ContrastsDefinition(load="contrasts.ctr")
contrasts.add_contrast(ctr.Contrast("Faces vs. Houses", [-1, 1, 0]))
contrasts.save("contrasts2.ctr")
```
### mdm
**Build a design matrix from scratch:**
```python
from brainvoyagertools import mdm
design = mdm.DesignMatrix()
design.add_study(mdm.Study("path/to/MyStudy1.vtc", "path/to/MyStudy1.sdm")
design.add_study(mdm.Study("path/to/MyStudy2.vtc", "path/to/MyStudy2.sdm")
design.add_study(mdm.Study("path/to/MyStudy3.vtc", "path/to/MyStudy3.sdm")
design.add_study(mdm.Study("path/to/MyStudy4.vtc", "path/to/MyStudy4.sdm")
design.add_study(mdm.Study("path/to/MyStudy5.vtc", "path/to/MyStudy5.sdm")
design.add_study(mdm.Study("path/to/MyStudy6.vtc", "path/to/MyStudy6.sdm")
design.add_study(mdm.Study("path/to/MyStudy7.vtc", "path/to/MyStudy7.sdm")
design.add_study(mdm.Study("path/to/MyStudy8.vtc", "path/to/MyStudy8.sdm")
design.add_study(mdm.Study("path/to/MyStudy9.vtc", "path/to/MyStudy9.sdm")
design.add_study(mdm.Study("path/to/MyStudy10.vtc", "path/to/MyStudy10.sdm")
design.rfx_glm = True
design.transformation = 'z'
design.separate_predictors = True
design.save("design.mdm")
```
**Also works for MTC data:**
```python
from brainvoyagertools import mdm
design = mdm.DesignMatrix()
design.add_study(mdm.Study(["path/to/MyStudy1.ssm", "path/to/MyStudy1.mtc"], "path/to/MyStudy1.sdm")
design.add_study(mdm.Study(["path/to/MyStudy2.ssm", "path/to/MyStudy2.mtc"], "path/to/MyStudy2.sdm")
design.add_study(mdm.Study(["path/to/MyStudy3.ssm", "path/to/MyStudy3.mtc"], "path/to/MyStudy3.sdm")
design.save("design2.mdm")
```
### prt
**Build a stimulation protocol from scratch:**
```python
from brainvoyagertools import prt
protocol = prt.StimulationProtocol(experiment_name="MyExperiment")
protocol.add_condition(prt.Condition("Rest", [[x+1,x+8] for x in range(1,80,16], colour=[255,0,0]))
protocol.add_condition(prt.Condition("Task", [[x+1,x+8] for x in range(8,80,16], colour=[0,255,0]))
protocol.save("MyExperiment.prt")
```
**Change time units to milliseconds and add condition to other protocol:**
```python
from brainvoyagertools import prt
protocol = prt.StimulationProtocol(load="MyExperiment.prt")
protocol.convert_to_msec(tr=2000)
protocol2 = prt.StimulationProtocol(experiment_name="MyExperiment2", time_units="msec")
protocol2.add_condition(prt.conditions[-1])
protocol2.save("MyExperiment2.prt")
```
**Add combination of conditions into new protocol:**
```python
from brainvoyagertools import prt
protocol = prt.StimulationProtocol(load="MyExperiment.prt")
protocol2 = prt.StimulationProtocol(experiment_name="MyExperiment3"
protocol2.add_condition(protocol.condition[0] + protocol.conditions[1])
protocol2.save("MyExperiment3.prt")
```
### sdm
**Build a design matrix from scratch:**
```python
from brainvoyagertools import sdm
design = sdm.DesignMatrix()
design.add_predictor(sdm.Predictor("FirstHalf", 100*[1] + 100*[0], colour=[255,0,0]))
design.add_predictor(sdm.Predictor("SecondHalf", 100*[0] + 100*[1], colour=[0,255,0]))
for p in design.predictors:
p.convolve_with_hrf(tr=2000)
design.save("design.sdm")
```
**Add z-transformed motion regressors, their first and second derivatives, and a constant:**
```python
from brainvoyagertools import sdm
design = sdm.DesignMatrix(load="design.sdm")
motion = sdm.DesignMatrix(load="3DMC.sdm")
for p in motion.predictors:
p.ztransform()
design.add_confound_predictor(p)
design.add_confound_predictor(p.get_derivative(1))
design.add_confound_predictor(p.get_derivative(2))
design.add_constant()
design.save("design_and_motion.sdm")
```
**Define predictors from a prt file:**
```python
from brainvoyagertools import prt, sdm
protocol = prt.StimulationProtocol(load="protocol.prt")
design = sdm.DesignMatrix()
design.define_predictors(protocol, data_points=400, tr=2000)
design.add_constant()
design.save("design.sdm")
```
### voi
**Save a single a VOI with three coordinates :**
```python
from brainvoyagertools import voi
vois = voi.VOIsDefinition(reference_space="MNI")
vois.add_voi(voi.VOI("VOI_1", [[15, 30, 40], [16, 30, 40]]
vois.save("my_voi.voi")
```
Raw data
{
"_id": null,
"home_page": "https://github.com/fladd/brainvoyagertools",
"name": "brainvoyagertools",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Florian Krause",
"author_email": "me@floriankrause.org",
"download_url": "https://files.pythonhosted.org/packages/18/a9/ac73b7b3be8b6ea84461e14a351ffe39eda97a870b936b46448fb514cf33/brainvoyagertools-0.4.0.tar.gz",
"platform": null,
"description": "# BrainVoyager Tools\nAn object-oriented approach to create, read and write common plain-text BrainVoyager input formats with Python.\n\nCurrently supported:\n* .ctr\n* .mdm\n* .prt\n* .sdm\n* .voi\n\n\n## Installation\nBrainVoyager Tools can be easily installed with pip:\n```\npip install brainvoyagertools\n```\n\n## Usage\n### ctr\n**Build a contrast definition from scratch:**\n```python\nfrom brainvoyagertools import ctr\n\ncontrasts = ctr.ContrastsDefinition()\ncontrasts.add_contrast(ctr.Contrast(\"All vs. Baseline\", [1, 1, 0]))\ncontrasts.add_contrast(ctr.Contrast(\"House vs. Faces\", [1, -1, 0]))\ncontrasts.save(\"contrasts.ctr\")\n```\n\n**Add contrasts to contrast definition file:**\n```python\nfrom brainvoyagertools import ctr\n\ncontrasts = ctr.ContrastsDefinition(load=\"contrasts.ctr\")\ncontrasts.add_contrast(ctr.Contrast(\"Faces vs. Houses\", [-1, 1, 0]))\ncontrasts.save(\"contrasts2.ctr\")\n```\n\n### mdm\n**Build a design matrix from scratch:**\n```python\nfrom brainvoyagertools import mdm\n\ndesign = mdm.DesignMatrix()\ndesign.add_study(mdm.Study(\"path/to/MyStudy1.vtc\", \"path/to/MyStudy1.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy2.vtc\", \"path/to/MyStudy2.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy3.vtc\", \"path/to/MyStudy3.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy4.vtc\", \"path/to/MyStudy4.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy5.vtc\", \"path/to/MyStudy5.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy6.vtc\", \"path/to/MyStudy6.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy7.vtc\", \"path/to/MyStudy7.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy8.vtc\", \"path/to/MyStudy8.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy9.vtc\", \"path/to/MyStudy9.sdm\")\ndesign.add_study(mdm.Study(\"path/to/MyStudy10.vtc\", \"path/to/MyStudy10.sdm\")\ndesign.rfx_glm = True\ndesign.transformation = 'z'\ndesign.separate_predictors = True\ndesign.save(\"design.mdm\")\n```\n\n**Also works for MTC data:**\n```python\nfrom brainvoyagertools import mdm\n\ndesign = mdm.DesignMatrix()\ndesign.add_study(mdm.Study([\"path/to/MyStudy1.ssm\", \"path/to/MyStudy1.mtc\"], \"path/to/MyStudy1.sdm\")\ndesign.add_study(mdm.Study([\"path/to/MyStudy2.ssm\", \"path/to/MyStudy2.mtc\"], \"path/to/MyStudy2.sdm\")\ndesign.add_study(mdm.Study([\"path/to/MyStudy3.ssm\", \"path/to/MyStudy3.mtc\"], \"path/to/MyStudy3.sdm\")\ndesign.save(\"design2.mdm\")\n```\n\n### prt\n**Build a stimulation protocol from scratch:** \n```python\nfrom brainvoyagertools import prt\n\nprotocol = prt.StimulationProtocol(experiment_name=\"MyExperiment\")\nprotocol.add_condition(prt.Condition(\"Rest\", [[x+1,x+8] for x in range(1,80,16], colour=[255,0,0]))\nprotocol.add_condition(prt.Condition(\"Task\", [[x+1,x+8] for x in range(8,80,16], colour=[0,255,0]))\nprotocol.save(\"MyExperiment.prt\")\n```\n\n**Change time units to milliseconds and add condition to other protocol:**\n```python\nfrom brainvoyagertools import prt\n\nprotocol = prt.StimulationProtocol(load=\"MyExperiment.prt\")\nprotocol.convert_to_msec(tr=2000)\nprotocol2 = prt.StimulationProtocol(experiment_name=\"MyExperiment2\", time_units=\"msec\")\nprotocol2.add_condition(prt.conditions[-1])\nprotocol2.save(\"MyExperiment2.prt\")\n```\n\n**Add combination of conditions into new protocol:**\n```python\nfrom brainvoyagertools import prt\n\nprotocol = prt.StimulationProtocol(load=\"MyExperiment.prt\")\nprotocol2 = prt.StimulationProtocol(experiment_name=\"MyExperiment3\"\nprotocol2.add_condition(protocol.condition[0] + protocol.conditions[1])\nprotocol2.save(\"MyExperiment3.prt\")\n```\n\n### sdm\n**Build a design matrix from scratch:**\n```python\nfrom brainvoyagertools import sdm\n\ndesign = sdm.DesignMatrix()\ndesign.add_predictor(sdm.Predictor(\"FirstHalf\", 100*[1] + 100*[0], colour=[255,0,0]))\ndesign.add_predictor(sdm.Predictor(\"SecondHalf\", 100*[0] + 100*[1], colour=[0,255,0]))\nfor p in design.predictors:\n p.convolve_with_hrf(tr=2000)\ndesign.save(\"design.sdm\")\n```\n\n**Add z-transformed motion regressors, their first and second derivatives, and a constant:**\n```python\nfrom brainvoyagertools import sdm\n\ndesign = sdm.DesignMatrix(load=\"design.sdm\")\nmotion = sdm.DesignMatrix(load=\"3DMC.sdm\")\nfor p in motion.predictors:\n p.ztransform()\n design.add_confound_predictor(p)\n design.add_confound_predictor(p.get_derivative(1))\n design.add_confound_predictor(p.get_derivative(2))\ndesign.add_constant()\ndesign.save(\"design_and_motion.sdm\")\n```\n\n**Define predictors from a prt file:**\n```python\nfrom brainvoyagertools import prt, sdm\n\nprotocol = prt.StimulationProtocol(load=\"protocol.prt\")\ndesign = sdm.DesignMatrix()\ndesign.define_predictors(protocol, data_points=400, tr=2000)\ndesign.add_constant()\ndesign.save(\"design.sdm\")\n```\n\n### voi\n**Save a single a VOI with three coordinates :**\n```python\nfrom brainvoyagertools import voi\n\nvois = voi.VOIsDefinition(reference_space=\"MNI\")\nvois.add_voi(voi.VOI(\"VOI_1\", [[15, 30, 40], [16, 30, 40]]\nvois.save(\"my_voi.voi\")\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "BrainVoyager Tools - An object-oriented approach to create, read and write common plain-text BrainVoyager input formats with Python",
"version": "0.4.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "429b8b80d2fdeb08c321a3ea4700a545",
"sha256": "711a24bb23e6eef362ffc95433b52897e88b99279bb994016cb611714a36c4ae"
},
"downloads": -1,
"filename": "brainvoyagertools-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "429b8b80d2fdeb08c321a3ea4700a545",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 26787,
"upload_time": "2022-12-06T10:53:30",
"upload_time_iso_8601": "2022-12-06T10:53:30.153470Z",
"url": "https://files.pythonhosted.org/packages/11/31/1ff2f79efdf818fcea28ae6230cfeb94211aae8db2fd48f07ebbd5cd64c3/brainvoyagertools-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "1dbec3ab970cfeafa1aab7333ea0a96c",
"sha256": "28e33837f17b624355bbc497a052a8725451ad0c3eaa46b38e8820e0c2e3a0f8"
},
"downloads": -1,
"filename": "brainvoyagertools-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "1dbec3ab970cfeafa1aab7333ea0a96c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 23793,
"upload_time": "2022-12-06T10:53:33",
"upload_time_iso_8601": "2022-12-06T10:53:33.379748Z",
"url": "https://files.pythonhosted.org/packages/18/a9/ac73b7b3be8b6ea84461e14a351ffe39eda97a870b936b46448fb514cf33/brainvoyagertools-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-06 10:53:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "fladd",
"github_project": "brainvoyagertools",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "brainvoyagertools"
}