# SpinDoctor Toolbox
SpinDoctor is a software package that performs numerical simulations of diffusion magnetic resonance imaging (dMRI) for prototyping purposes.
SpinDoctor can be used
1) to solve the Bloch-Torrey partial differential equation (BTDPE) to obtain the dMRI signal (the toolbox provides a way of robustly fitting the dMRI signal to obtain the fitted Apparent Diffusion Coefficient (ADC));
2) to solve the diffusion equation for the homogenized ADC (HADC) model to obtain the ADC;
3) a short-time approximation formula for the ADC is also included in the toolbox for comparison with the simulated ADC;
4) Compute the dMRI signal using a matrix formalism (MF) analytical solution based Laplace eigenfunctions.
The PDEs and Laplace eigenvalue decompositions are solved by P1 finite elements combined with built-in MATLAB routines for solving ordinary differential equations.
The finite element mesh generation is performed using an external package called TetGen that is included in the toolbox.
SpinDoctor has support for the following features:
1. multiple compartments with compartment-wise constant
* initial spin densities,
* diffusion coefficients or diffusion tensors, and
* T2-relaxation coefficients;
2. permeable membranes between compartments for the BTPDE and MF (the HADC assumes negligible permeability);
3. built-in diffusion-encoding pulse sequences, including
* the Pulsed Gradient Spin Echo (PGSE) and double-PGSE,
* the Ocsillating Gradient Spin Echo (OGSE), or
* custom pulse sequences;
4. uniformly distributed gradient directions in 2D and 3D for high angular resolution diffusion imaging (HARDI)
SpinDoctor also comes with a geometry generation module, allowing for
1. spherical cells with a nucleus;
2. cylindrical cells with a myelin layer;
3. an extra-cellular space (ECS) enclosed in either
* a box,
* a convex hull, or
* a tight wrapping around the cells;
4. deformation of canonical cells by bending and twisting.
In addition, a variety of neuron meshes is available, whose surface geometries were extracted from [NeuroMopho.org](http://neuromorpho.org). The neurons may also be enclosed in an extracellular space as described above.
### Spinning spindle spins in SpinDoctor
![Spindle](misc/spindle.gif)
The above graphic visualizes the magnetization as a z-displacement for the spindle neuron geometry `03b_spindle4aACC` (extracted from NeuroMorpho). The gradient is a PGSE sequence in the x-direction.
## Software requirements
The SpinDoctor Toolbox has been developed in the MATLAB R2020b and tested with MATLAB R2018a-R2021a.
SpinDoctor requires no additional MATLAB Toolboxes. However, if the MATLAB Parallel Computing Toolbox is available,
the simulations can be run in parallel.
## Getting started
1) The base folder contains a commented general purpose driver called `driver_spindoctor.m`. The other driver, `driver_save_load.m`, can save and load simulations.
2) The input files for the drivers are found in the folder `setups`, and define the structures needed for the simulations.
3) Multiple neuron meshes are found in the folder `mesh_files`. These can be loaded in the `setups/setup_neuron.m` script.
4) The user guide is found [here](https://github.com/jingrebeccali/SpinDoctor/blob/master/user_guide.pdf).
## Updates March 2021
All modules (master, T2, NeuronModule, MatrixFormalismModule) are now merged and found in the `master` branch. The previous versions of the modules are still found in their branches.
New features:
* Code refactoring, change of data structures
* New input file system, controlled by a structure `setup`
* Some speed and memory improvements (extensive vectorization, reduced memory usage in ODE solvers)
* Support for parallel outer loops (solve for multiple directions, amplitudes and sequences in parallel)
* Diffusion tensors as an alternative to scalar diffusion coefficients
* Matrix formalism with built in Matlab functions instead of PDE Toolbox
* Add convex hull ECS + tight wrap ECS for neurons (experimental feature)
* Simple interface for pulse sequences, the user can add custom sequences
* by passing a function handle, for which the integral quantities are computed numerically,
* or by manually defining a subclass of the `Sequence` class
## Authors
Jing-Rebecca Li, Syver Døving Agdestein, Chengran Fang, Van-Dang Nguyen, Try Nguyen Tran.
## How to cite us
The original paper about SpinDoctor can be found at https://arxiv.org/abs/1902.01025.
If you use our software for research, please cite us:
```bibtex
@article{Li2019,
author = {Jing-Rebecca Li and Van-Dang Nguyen and Try Nguyen Tran and Jan Valdman and Cong-Bang Trang and Khieu Van Nguyen and Duc Thach Son Vu and Hoang An Tran and Hoang Trong An Tran and Thi Minh Phuong Nguyen},
doi = {https://doi.org/10.1016/j.neuroimage.2019.116120},
issn = {1053-8119},
journal = {NeuroImage},
pages = {116120},
title = {{SpinDoctor: A MATLAB toolbox for diffusion MRI simulation}},
url = {http://www.sciencedirect.com/science/article/pii/S1053811919307116},
volume = {202},
year = {2019}
}
```
Citations for further developements such as the Neuron Module and the Matrix Formalism module can be found in the `CITATION.bib` file.
## License
Copyright (C) 2019-2021 Jing-Rebecca Li
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计&课设-Matlab中的扩散MRI仿真工具箱.zip (233个子文件)
libg2c0_3.4.6-6ubuntu5_i386.deb.1 49KB
DoublePGSE.asv 9KB
CITATION.bib 2KB
COPYRIGHT 2KB
COPYRIGHT 347B
libg2c0_3.4.6-6ubuntu5_i386.deb 49KB
tetview-win.exe 1.75MB
tetgen.exe 455KB
spindle.gif 9.11MB
.gitignore 40B
a.lua 180B
a.lua 174B
plot_lap_bt_grid.m 22KB
plot_eigfuncs.m 15KB
gmsh_to_fem_try.m 15KB
solve_btpde_midpoint.m 10KB
setup_neuron.m 10KB
plot_magnetization.m 9KB
solve_btpde.m 9KB
DoublePGSE.m 9KB
driver_spindoctor.m 9KB
setup_1axon_analytical.m 9KB
shapeder.m 8KB
SinOGSE.m 8KB
create_surfaces_sphere.m 8KB
create_surfaces_cylinder.m 7KB
driver_save_load.m 7KB
setup_1sphere_analytical.m 7KB
setup_30axons_flat.m 7KB
setup_2axons_deform.m 7KB
setup_30axons.m 7KB
setup_4axons_flat.m 7KB
setup_5axons_myelin_relax.m 7KB
setup_15spheres.m 7KB
setup_200axons.m 7KB
CosOGSE.m 7KB
solve_hadc.m 7KB
fresnelC.m 7KB
plot_eigvals.m 6KB
solve_analytical.m 6KB
create_geometry.m 6KB
solve_mf.m 5KB
create_surfaces_neuron.m 5KB
all_error.m 5KB
solve_karger.m 5KB
Sequence.m 5KB
mf_error.m 5KB
PGSE.m 5KB
fresnelS.m 5KB
compute_laplace_eig.m 5KB
couple_flux_matrix.m 4KB
prepare_pde.m 4KB
split_mesh.m 4KB
load_btpde_midpoint.m 4KB
load_btpde.m 4KB
prepare_experiments.m 3KB
load_hadc.m 3KB
create_cells.m 3KB
compute_bt_eig_save.m 3KB
plot_hardi_2d.m 2KB
CustomSequence.m 2KB
plot_hardi_3d.m 2KB
mesh_quality.m 2KB
get_faces.m 2KB
plot_signal_btpde_mf.m 2KB
stiffness_matrixP1_3D.m 2KB
btpde_functions_interval.m 2KB
process_signal_poly.m 2KB
compute_adc_sta.m 2KB
compute_K.m 2KB
aminv.m 2KB
spheresurface_regularpoints.m 2KB
compute_I.m 2KB
plot_geometry_info.m 2KB
save_surfaces.m 2KB
plot_field.m 2KB
deleteRepeatedRows.m 2KB
alpha_func.m 2KB
compute_blochtorrey_eig.m 2KB
plot_emphasized_compartments.m 2KB
fit_signal.m 2KB
plot_field_everywhere.m 2KB
phider.m 2KB
compute_eigenvalues.m 2KB
plot_signal.m 1KB
read_surfaces.m 1KB
manipulate_cells.m 1KB
spherical_harmonics.m 1KB
plot_femesh.m 1KB
compute_bc.m 1KB
call_tetgen.m 1KB
find_alpha_n.m 1KB
mass_matrixP1_3D.m 1KB
plot_femesh_everywhere.m 1KB
compute_free_diffusion.m 1KB
read_tetgen.m 1KB
compute_v.m 1KB
fit_tensor.m 1KB
get_surfacenormal_mesh.m 1KB
find_alpha_n_interval.m 1KB
共 233 条
- 1
- 2
- 3
资源评论
毕业小助手
- 粉丝: 2764
- 资源: 5583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 概率数据关联滤波器(PDAF)学习
- 二级A2生物安全柜sw18可编辑全套技术资料100%好用.zip
- 面向对象程序设计实践(C++)物流管理系统设计与实现报告论文(参考学习).pdf
- 快速开发平台 WebBuilder 10.5 all for Linux
- 基于偏置电压注入的载波PWM仿真模型 控制架构为正常的双闭环永磁同步电机系统 采用基于偏置电压注入的载波PWM策略,实现与SVPWM完全等效的调制效果,一方面可以减少控制算法占用的内存,另一方面可
- Verilog HDL示例代码之05-乘法器
- 粉末搅拌机sw18可编辑全套技术资料100%好用.zip
- 混合动力汽车simulink模型 ①基于模糊规则的控制策略; ②整车similink模型中包含工况输入模型、驾驶员模型、发动机模型、电机模型、制动能量回收模型、转矩分配模型、运行模式切模型、档位切模型
- Verilog HDL示例代码之06-异步复位同步释放
- 基于扩展卡尔曼滤波EKF的车辆状态估计 估计的状态包括: 1. 车辆的横纵向位置 2.车辆行驶轨迹、横摆角、 3. 车速、加速度、横摆角速度 4. 相应的估计偏差 内容附带:Simulink模型与M
- 高度提升设备sw18全套技术资料100%好用.zip
- Verilog HDL示例代码之07-分频
- 3D视觉相机:适配多场景的智能工业解决方案
- Verilog HDL示例代码之08-语法语句
- 基于扩张状态观测器的自抗扰控制ADRC仿真模型 ①跟踪微分器TD:为系统输入安排过渡过程,得到光滑的输入信号以及输入信号的微分信号 ②非线性状态误差反馈律NLSEF:把跟踪微分器产生的跟踪信号和微分
- Verilog HDL示例代码之09-串并转换
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功