OSCR

Regulation of autism-related self-injurious behavior by electrical stimulation of corticostriatal circuits in mice and humans.

Code ↔ Paper

2 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 2 matches
  1. [1] § MATERIALS AND METHODS › Statistical analyses › Deformation-based morphometry ↔ dbm.sh, lines 394–449 · score 0.62 · deformation field, Jacobian determinants, geometric, mask, DBM
  2. [2] § MATERIALS AND METHODS › Statistical analyses › Deformation-based morphometry ↔ twolevel_dbm.py, lines 742–810 · score 0.53 · Jacobian determinants, mni, deformation, morphometry, DBM, field

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Shell · 592 lines · 26 KB · other · 1 match

  1. #!/usr/bin/env bash
  2. # ARG_HELP([DBM post-processing for modelbuild.sh from optimized_antsMultivariateTemplateConstruction])
  3. # ARG_OPTIONAL_SINGLE([output-dir],[],[Output directory for modelbuild],[output])
  4. # ARG_OPTIONAL_BOOLEAN([float],[],[Use float instead of double for calculations (reduce memory requirements, reduce precision)],[])
  5. # ARG_OPTIONAL_SINGLE([mask],[],[Mask file for average to improve delin estimates],[])
  6. # ARG_OPTIONAL_SINGLE([target-space],[],[Target space for DBM outputs, requires --final-target be used with modelbuild.sh],[unbiased])
  7. # ARG_TYPE_GROUP_SET([spacegroup],[SPACE],[target-space],[unbiased,final-target])
  8. # ARG_OPTIONAL_SINGLE([delin-affine-ratio],[],[Ratio of voxels within mask used to estimate delin affine],[0.25])
  9. # ARG_OPTIONAL_BOOLEAN([use-geometric],[],[Use geometric estimate of Jacobian instead of finite-difference],[on])
  10. # ARG_OPTIONAL_SINGLE([jacobian-smooth],[],[Comma separated list of smoothing gaussian FWHM, append "vox" for voxels, "mm" for millimeters],[4vox])
  11. # ARG_OPTIONAL_SINGLE([walltime],[],[Walltime for short running stages (averaging, resampling)],[00:15:00])
  12. # ARG_OPTIONAL_BOOLEAN([block],[],[For qbatch SGE, PBS and SLURM, blocks execution until jobs are finished.],[])
  13. # ARG_OPTIONAL_BOOLEAN([debug],[],[Debug mode, print all commands to stdout],[])
  14. # ARG_OPTIONAL_BOOLEAN([dry-run],[],[Dry run, don't run any commands, implies debug],[])
  15. # ARG_OPTIONAL_SINGLE([jobname-prefix],[],[Prefix to add to front of job names, used by twolevel wrapper],[])
  16. # ARG_POSITIONAL_INF([inputs],[Input text files, one line per input, one file per spectra],[1])
  17. # ARGBASH_SET_INDENT([ ])
  18. # ARGBASH_GO()
  19. # needed because of Argbash --> m4_ignore([
  20. ### START OF CODE GENERATED BY Argbash v2.10.0 one line above ###
  21. # Argbash is a bash code generator used to get arguments parsing right.
  22. # Argbash is FREE SOFTWARE, see https://argbash.dev for more info
  23. die()
  24. {
  25. local _ret="${2:-1}"
  26. test "${_PRINT_HELP:-no}" = yes && print_help >&2
  27. echo "$1" >&2
  28. exit "${_ret}"
  29. }
  30. # validators
  31. spacegroup()
  32. {
  33. local _allowed=("unbiased" "final-target") _seeking="$1"
  34. for element in "${_allowed[@]}"
  35. do
  36. test "$element" = "$_seeking" && echo "$element" && return 0
  37. done
  38. die "Value '$_seeking' (of argument '$2') doesn't match the list of allowed values: 'unbiased' and 'final-target'" 4
  39. }
  40. begins_with_short_option()
  41. {
  42. local first_option all_short_options='h'
  43. first_option="${1:0:1}"
  44. test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0
  45. }
  46. # THE DEFAULTS INITIALIZATION - POSITIONALS
  47. _positionals=()
  48. _arg_inputs=('' )
  49. # THE DEFAULTS INITIALIZATION - OPTIONALS
  50. _arg_output_dir="output"
  51. _arg_float="off"
  52. _arg_mask=
  53. _arg_target_space="unbiased"
  54. _arg_delin_affine_ratio="0.25"
  55. _arg_use_geometric="on"
  56. _arg_jacobian_smooth="4vox"
  57. _arg_walltime="00:15:00"
  58. _arg_block="off"
  59. _arg_debug="off"
  60. _arg_dry_run="off"
  61. _arg_jobname_prefix=
  62. print_help()
  63. {
  64. printf '%s\n' "DBM post-processing for modelbuild.sh from optimized_antsMultivariateTemplateConstruction"
  65. printf 'Usage: %s [-h|--help] [--output-dir <arg>] [--(no-)float] [--mask <arg>] [--target-space <SPACE>] [--delin-affine-ratio <arg>] [--(no-)use-geometric] [--jacobian-smooth <arg>] [--walltime <arg>] [--(no-)block] [--(no-)debug] [--(no-)dry-run] [--jobname-prefix <arg>] <inputs-1> [<inputs-2>] ... [<inputs-n>] ...\n' "$0"
  66. printf '\t%s\n' "<inputs>: Input text files, one line per input, one file per spectra"
  67. printf '\t%s\n' "-h, --help: Prints help"
  68. printf '\t%s\n' "--output-dir: Output directory for modelbuild (default: 'output')"
  69. printf '\t%s\n' "--float, --no-float: Use float instead of double for calculations (reduce memory requirements, reduce precision) (off by default)"
  70. printf '\t%s\n' "--mask: Mask file for average to improve delin estimates (no default)"
  71. printf '\t%s\n' "--target-space: Target space for DBM outputs, requires --final-target be used with modelbuild.sh. Can be one of: 'unbiased' and 'final-target' (default: 'unbiased')"
  72. printf '\t%s\n' "--delin-affine-ratio: Ratio of voxels within mask used to estimate delin affine (default: '0.25')"
  73. printf '\t%s\n' "--use-geometric, --no-use-geometric: Use geometric estimate of Jacobian instead of finite-difference (on by default)"
  74. printf '\t%s\n' "--jacobian-smooth: Comma separated list of smoothing gaussian FWHM, append \"vox\" for voxels, \"mm\" for millimeters (default: '4vox')"
  75. printf '\t%s\n' "--walltime: Walltime for short running stages (averaging, resampling) (default: '00:15:00')"
  76. printf '\t%s\n' "--block, --no-block: For qbatch SGE, PBS and SLURM, blocks execution until jobs are finished. (off by default)"
  77. printf '\t%s\n' "--debug, --no-debug: Debug mode, print all commands to stdout (off by default)"
  78. printf '\t%s\n' "--dry-run, --no-dry-run: Dry run, don't run any commands, implies debug (off by default)"
  79. printf '\t%s\n' "--jobname-prefix: Prefix to add to front of job names, used by twolevel wrapper (no default)"
  80. }
  81. parse_commandline()
  82. {
  83. _positionals_count=0
  84. while test $# -gt 0
  85. do
  86. _key="$1"
  87. case "$_key" in
  88. -h|--help)
  89. print_help
  90. exit 0
  91. ;;
  92. -h*)
  93. print_help
  94. exit 0
  95. ;;
  96. --output-dir)
  97. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  98. _arg_output_dir="$2"
  99. shift
  100. ;;
  101. --output-dir=*)
  102. _arg_output_dir="${_key##--output-dir=}"
  103. ;;
  104. --no-float|--float)
  105. _arg_float="on"
  106. test "${1:0:5}" = "--no-" && _arg_float="off"
  107. ;;
  108. --mask)
  109. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  110. _arg_mask="$2"
  111. shift
  112. ;;
  113. --mask=*)
  114. _arg_mask="${_key##--mask=}"
  115. ;;
  116. --target-space)
  117. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  118. _arg_target_space="$(spacegroup "$2" "target-space")" || exit 1
  119. shift
  120. ;;
  121. --target-space=*)
  122. _arg_target_space="$(spacegroup "${_key##--target-space=}" "target-space")" || exit 1
  123. ;;
  124. --delin-affine-ratio)
  125. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  126. _arg_delin_affine_ratio="$2"
  127. shift
  128. ;;
  129. --delin-affine-ratio=*)
  130. _arg_delin_affine_ratio="${_key##--delin-affine-ratio=}"
  131. ;;
  132. --no-use-geometric|--use-geometric)
  133. _arg_use_geometric="on"
  134. test "${1:0:5}" = "--no-" && _arg_use_geometric="off"
  135. ;;
  136. --jacobian-smooth)
  137. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  138. _arg_jacobian_smooth="$2"
  139. shift
  140. ;;
  141. --jacobian-smooth=*)
  142. _arg_jacobian_smooth="${_key##--jacobian-smooth=}"
  143. ;;
  144. --walltime)
  145. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  146. _arg_walltime="$2"
  147. shift
  148. ;;
  149. --walltime=*)
  150. _arg_walltime="${_key##--walltime=}"
  151. ;;
  152. --no-block|--block)
  153. _arg_block="on"
  154. test "${1:0:5}" = "--no-" && _arg_block="off"
  155. ;;
  156. --no-debug|--debug)
  157. _arg_debug="on"
  158. test "${1:0:5}" = "--no-" && _arg_debug="off"
  159. ;;
  160. --no-dry-run|--dry-run)
  161. _arg_dry_run="on"
  162. test "${1:0:5}" = "--no-" && _arg_dry_run="off"
  163. ;;
  164. --jobname-prefix)
  165. test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
  166. _arg_jobname_prefix="$2"
  167. shift
  168. ;;
  169. --jobname-prefix=*)
  170. _arg_jobname_prefix="${_key##--jobname-prefix=}"
  171. ;;
  172. *)
  173. _last_positional="$1"
  174. _positionals+=("$_last_positional")
  175. _positionals_count=$((_positionals_count + 1))
  176. ;;
  177. esac
  178. shift
  179. done
  180. }
  181. handle_passed_args_count()
  182. {
  183. local _required_args_string="'inputs'"
  184. test "${_positionals_count}" -ge 1 || _PRINT_HELP=yes die "FATAL ERROR: Not enough positional arguments - we require at least 1 (namely: $_required_args_string), but got only ${_positionals_count}." 1
  185. }
  186. assign_positional_args()
  187. {
  188. local _positional_name _shift_for=$1
  189. _positional_names="_arg_inputs "
  190. _our_args=$((${#_positionals[@]} - 1))
  191. for ((ii = 0; ii < _our_args; ii++))
  192. do
  193. _positional_names="$_positional_names _arg_inputs[$((ii + 1))]"
  194. done
  195. shift "$_shift_for"
  196. for _positional_name in ${_positional_names}
  197. do
  198. test $# -gt 0 || break
  199. eval "$_positional_name=\${1}" || die "Error during argument parsing, possibly an Argbash bug." 1
  200. shift
  201. done
  202. }
  203. parse_commandline "$@"
  204. handle_passed_args_count
  205. assign_positional_args 1 "${_positionals[@]}"
  206. # OTHER STUFF GENERATED BY Argbash
  207. # Validation of values
  208. ### END OF CODE GENERATED BY Argbash (sortof) ### ])
  209. # [ <-- needed because of Argbash
  210. set -uo pipefail
  211. set -eE -o functrace
  212. # Load up helper scripts and define helper variables
  213. # shellcheck source=helpers.sh
  214. source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/helpers.sh"
  215. # Set magic variables for current file, directory, os, etc.
  216. __file="${__dir}/$(basename "${BASH_SOURCE[${__b3bp_tmp_source_idx:-0}]}")"
  217. __base="$(basename "${__file}" .sh)"
  218. # shellcheck disable=SC2034,SC2015
  219. __invocation="$(printf %q "${__file}")$( (($#)) && printf ' %q' "$@" || true)"
  220. # Preflight check for required programs
  221. preflight_check
  222. # Setup a directory which contains all commands run
  223. # for this invocation
  224. mkdir -p ${_arg_output_dir}/dbm/jobs/${__datetime}
  225. mkdir -p ${_arg_output_dir}/dbm/logs/${__datetime}
  226. export QBATCH_SCRIPT_FOLDER="${_arg_output_dir}/dbm/qbatch/${__datetime}"
  227. # Store the full command line for each run
  228. echo ${__invocation} >${_arg_output_dir}/dbm/jobs/${__datetime}/invocation
  229. info "Checking input files"
  230. # Load input file into array
  231. if [[ ! -s ${_arg_inputs[0]} ]]; then
  232. failure "Input file ${_arg_inputs[0]} is non-existent or zero size"
  233. else
  234. mapfile -t _arg_inputs <${_arg_inputs[0]}
  235. fi
  236. for file in "${_arg_inputs[@]}"; do
  237. if [[ ! -s ${file} ]]; then
  238. failure "Input file ${file} is non-existent or zero size"
  239. fi
  240. done
  241. # Enable float mode for ants commands
  242. if [[ ${_arg_float} == "on" ]]; then
  243. _arg_float="--float"
  244. else
  245. _arg_float=""
  246. fi
  247. # Enable block for qbatch job submission
  248. if [[ ${_arg_block} == "on" ]]; then
  249. _arg_block="--block"
  250. else
  251. _arg_block=""
  252. fi
  253. # Convert smoothing jacobians to a list
  254. IFS=',' read -r -a _arg_jacobian_smooth <<<${_arg_jacobian_smooth}
  255. # Preflight check for required programs
  256. preflight_check
  257. # Make output directories
  258. mkdir -p ${_arg_output_dir}/dbm/intermediate/delin/{affine,warp,jacobian}
  259. mkdir -p ${_arg_output_dir}/dbm/intermediate/nlin/jacobian
  260. mkdir -p ${_arg_output_dir}/dbm/intermediate/affine/{warp,jacobian}
  261. mkdir -p ${_arg_output_dir}/dbm/jacobian/{final-target,}/{relative,full}//smooth
  262. # Convert geometric option to ANTs option
  263. if [[ ${_arg_use_geometric} == "on" ]]; then
  264. _arg_use_geometric=1
  265. else
  266. _arg_use_geometric=0
  267. fi
  268. _arg_log_jacobian=1
  269. # Generate jacobian from nlin field
  270. # Log, values > 0, voxel expands towards subject (i.e. subject voxel is larger)
  271. # Log, values < 0, voxel contracts towards subject (i.e. subject voxel is smaller)
  272. info "Computing Jacobians from non-linear warp fields"
  273. for file in "${_arg_inputs[@]}"; do
  274. if [[ ! -s ${_arg_output_dir}/final/transforms/$(basename ${file} | extension_strip)_1Warp.nii.gz ]]; then
  275. failure "Expected deformation file ${_arg_output_dir}/final/transforms/$(basename ${file} | extension_strip)_1Warp.nii.gz does not exist"
  276. fi
  277. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/nlin/jacobian/$(basename ${file} | extension_strip).nii.gz ]]; then
  278. echo "CreateJacobianDeterminantImage 3 ${_arg_output_dir}/final/transforms/$(basename ${file} | extension_strip)_1Warp.nii.gz \
  279. ${_arg_output_dir}/dbm/intermediate/nlin/jacobian/$(basename ${file} | extension_strip).nii.gz ${_arg_log_jacobian} ${_arg_use_geometric}"
  280. fi
  281. done >${_arg_output_dir}/dbm/jobs/${__datetime}/nlin_jacobian
  282. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/nlin_jacobian)"
  283. if [[ ${_arg_dry_run} == "off" ]]; then
  284. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  285. --walltime ${_arg_walltime} \
  286. -N ${_arg_jobname_prefix}dbm_${__datetime}_nlin_jacobian \
  287. ${_arg_output_dir}/dbm/jobs/${__datetime}/nlin_jacobian
  288. fi
  289. # Generate warp field from affine transform
  290. info "Computing warp fields from affine transforms"
  291. for file in "${_arg_inputs[@]}"; do
  292. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/affine/warp/$(basename ${file} | extension_strip).nii.gz ]]; then
  293. echo "antsApplyTransforms -d 3 --verbose ${_arg_float} \
  294. -r ${_arg_output_dir}/final/average/template_sharpen_shapeupdate.nii.gz \
  295. -t ${_arg_output_dir}/final/transforms/$(basename ${file} | extension_strip)_0GenericAffine.mat \
  296. -o [ ${_arg_output_dir}/dbm/intermediate/affine/warp/$(basename ${file} | extension_strip).nii.gz,1 ]"
  297. fi
  298. done >${_arg_output_dir}/dbm/jobs/${__datetime}/affine_warp
  299. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/affine_warp)"
  300. if [[ ${_arg_dry_run} == "off" ]]; then
  301. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  302. --walltime ${_arg_walltime} \
  303. -N ${_arg_jobname_prefix}dbm_${__datetime}_affine_warp \
  304. ${_arg_output_dir}/dbm/jobs/${__datetime}/affine_warp
  305. fi
  306. # Generate jacobian from affine warp field
  307. # Log, values > 0, voxel expands towards subject (i.e. subject voxel is larger)
  308. # Log, values < 0, voxel contracts towards subject (i.e. subject voxel is smaller)
  309. info "Computing Jacobians from affine warp fields"
  310. for file in "${_arg_inputs[@]}"; do
  311. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/affine/jacobian/$(basename ${file} | extension_strip).nii.gz ]]; then
  312. echo "CreateJacobianDeterminantImage 3 ${_arg_output_dir}/dbm/intermediate/affine/warp/$(basename ${file} | extension_strip).nii.gz \
  313. ${_arg_output_dir}/dbm/intermediate/affine/jacobian/$(basename ${file} | extension_strip).nii.gz ${_arg_log_jacobian} ${_arg_use_geometric}"
  314. fi
  315. done >${_arg_output_dir}/dbm/jobs/${__datetime}/affine_jacobian
  316. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/affine_jacobian)"
  317. if [[ ${_arg_dry_run} == "off" ]]; then
  318. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  319. --walltime ${_arg_walltime} \
  320. -N ${_arg_jobname_prefix}dbm_${__datetime}_affine_jacobian \
  321. --depend ${_arg_jobname_prefix}dbm_${__datetime}_affine_warp \
  322. ${_arg_output_dir}/dbm/jobs/${__datetime}/affine_jacobian
  323. fi
  324. # Check for mask to use for delin
  325. if [[ -s ${_arg_mask} ]]; then
  326. info "Using supplied file ${_arg_mask} for delin calculation"
  327. elif [[ -s ${_arg_output_dir}/final/average/mask_shapeupdate.nii.gz ]]; then
  328. info "Using modelbuild mask ${_arg_output_dir}/final/average/mask_shapeupdate.nii.gz for delin calculation"
  329. _arg_mask=${_arg_output_dir}/final/average/mask_shapeupdate.nii.gz
  330. else
  331. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/mask.nii.gz ]]; then
  332. info "No average mask available (provide via --mask), estimating mask using thresholding for delin calculation"
  333. # Otsu threshold, erode, get largest component, dilate
  334. echo "ThresholdImage 3 ${_arg_output_dir}/final/average/template_sharpen_shapeupdate.nii.gz \
  335. ${_arg_output_dir}/dbm/intermediate/mask.nii.gz Otsu 1 && \
  336. iMath 3 ${_arg_output_dir}/dbm/intermediate/mask.nii.gz ME ${_arg_output_dir}/dbm/intermediate/mask.nii.gz 1 1 ball 1 && \
  337. ImageMath 3 ${_arg_output_dir}/dbm/intermediate/mask.nii.gz GetLargestComponent ${_arg_output_dir}/dbm/intermediate/mask.nii.gz && \
  338. iMath 3 ${_arg_output_dir}/dbm/intermediate/mask.nii.gz MD ${_arg_output_dir}/dbm/intermediate/mask.nii.gz 1 1 ball 1"
  339. _arg_mask=${_arg_output_dir}/dbm/intermediate/mask.nii.gz
  340. fi
  341. fi >${_arg_output_dir}/dbm/jobs/${__datetime}/delin_mask
  342. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_mask)"
  343. if [[ ${_arg_dry_run} == "off" && -s ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_mask ]]; then
  344. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  345. --walltime ${_arg_walltime} \
  346. -N ${_arg_jobname_prefix}dbm_${__datetime}_delin_mask \
  347. -- bash ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_mask
  348. fi
  349. # Generate delin affine from warp field
  350. info "Estimate delin affine from nlin warp fields"
  351. for file in "${_arg_inputs[@]}"; do
  352. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/delin/affine/$(basename ${file} | extension_strip).mat ]]; then
  353. echo "ANTSUseDeformationFieldToGetAffineTransform ${_arg_output_dir}/final/transforms/$(basename ${file} | extension_strip)_1Warp.nii.gz \
  354. ${_arg_delin_affine_ratio} affine ${_arg_output_dir}/dbm/intermediate/delin/affine/$(basename ${file} | extension_strip).mat \
  355. ${_arg_mask}"
  356. fi
  357. done >${_arg_output_dir}/dbm/jobs/${__datetime}/delin_affine_from_warp
  358. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_affine_from_warp)"
  359. if [[ ${_arg_dry_run} == "off" ]]; then
  360. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  361. --walltime ${_arg_walltime} \
  362. -N ${_arg_jobname_prefix}dbm_${__datetime}_delin_affine_from_warp \
  363. --depend ${_arg_jobname_prefix}dbm_${__datetime}_delin_mask \
  364. ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_affine_from_warp
  365. fi
  366. # Generate warp from delin affine
  367. info "Generate composite warp field from delin affine"
  368. for file in "${_arg_inputs[@]}"; do
  369. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/delin/warp/$(basename ${file} | extension_strip).nii.gz ]]; then
  370. echo "antsApplyTransforms -d 3 --verbose ${_arg_float} \
  371. -r ${_arg_output_dir}/final/average/template_sharpen_shapeupdate.nii.gz \
  372. -t [ ${_arg_output_dir}/dbm/intermediate/delin/affine/$(basename ${file} | extension_strip).mat,1 ] \
  373. -o [ ${_arg_output_dir}/dbm/intermediate/delin/warp/$(basename ${file} | extension_strip).nii.gz,1 ]"
  374. fi
  375. done >${_arg_output_dir}/dbm/jobs/${__datetime}/delin_warp_from_delin_affine
  376. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_warp_from_delin_affine)"
  377. if [[ ${_arg_dry_run} == "off" ]]; then
  378. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  379. --walltime ${_arg_walltime} \
  380. -N ${_arg_jobname_prefix}dbm_${__datetime}_delin_warp_from_delin_affine \
  381. --depend ${_arg_jobname_prefix}dbm_${__datetime}_delin_affine_from_warp \
  382. ${_arg_output_dir}/dbm/jobs/${__datetime}/delin_warp_from_delin_affine
  383. fi
  384. # Generate jacobians from delin warp field
  385. info "Computing Jacobians from delin affine warp fields"
  386. for file in "${_arg_inputs[@]}"; do
  387. if [[ ! -s ${_arg_output_dir}/dbm/intermediate/delin/jacobian/$(basename ${file} | extension_strip).nii.gz ]]; then
  388. echo "CreateJacobianDeterminantImage 3 ${_arg_output_dir}/dbm/intermediate/delin/warp/$(basename ${file} | extension_strip).nii.gz \
  389. ${_arg_output_dir}/dbm/intermediate/delin/jacobian/$(basename ${file} | extension_strip).nii.gz ${_arg_log_jacobian} ${_arg_use_geometric}"
  390. fi
  391. done >${_arg_output_dir}/dbm/jobs/${__datetime}/jacobian_from_delin_warp
  392. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/jacobian_from_delin_warp)"
  393. if [[ ${_arg_dry_run} == "off" ]]; then
  394. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  395. --walltime ${_arg_walltime} \
  396. -N ${_arg_jobname_prefix}dbm_${__datetime}_jacobian_from_delin_warp \
  397. --depend ${_arg_jobname_prefix}dbm_${__datetime}_delin_warp_from_delin_affine \
  398. ${_arg_output_dir}/dbm/jobs/${__datetime}/jacobian_from_delin_warp
  399. fi
  400. # Generate final full jacobians
  401. info "Generating Full Jacobians"
  402. for file in "${_arg_inputs[@]}"; do
  403. if [[ ! -s ${_arg_output_dir}/dbm/jacobian/full/$(basename ${file} | extension_strip).nii.gz ]]; then
  404. echo "ImageMath 3 \
  405. ${_arg_output_dir}/dbm/jacobian/full/$(basename ${file} | extension_strip).nii.gz \
  406. + ${_arg_output_dir}/dbm/intermediate/affine/jacobian/$(basename ${file} | extension_strip).nii.gz \
  407. ${_arg_output_dir}/dbm/intermediate/nlin/jacobian/$(basename ${file} | extension_strip).nii.gz"
  408. fi
  409. done >${_arg_output_dir}/dbm/jobs/${__datetime}/gen_full_jacobian
  410. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_full_jacobian)"
  411. if [[ ${_arg_dry_run} == "off" ]]; then
  412. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  413. --walltime ${_arg_walltime} \
  414. -N ${_arg_jobname_prefix}dbm_${__datetime}_gen_full_jacobian \
  415. --depend ${_arg_jobname_prefix}dbm_${__datetime}_affine_jacobian \
  416. --depend ${_arg_jobname_prefix}dbm_${__datetime}_nlin_jacobian \
  417. ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_full_jacobian
  418. fi
  419. # Generate final relative jacobians
  420. info "Generating Relative Jacobians"
  421. for file in "${_arg_inputs[@]}"; do
  422. if [[ ! -s ${_arg_output_dir}/dbm/jacobian/relative/$(basename ${file} | extension_strip).nii.gz ]]; then
  423. echo "ImageMath 3 \
  424. ${_arg_output_dir}/dbm/jacobian/relative/$(basename ${file} | extension_strip).nii.gz \
  425. + ${_arg_output_dir}/dbm/intermediate/delin/jacobian/$(basename ${file} | extension_strip).nii.gz \
  426. ${_arg_output_dir}/dbm/intermediate/nlin/jacobian/$(basename ${file} | extension_strip).nii.gz"
  427. fi
  428. done >${_arg_output_dir}/dbm/jobs/${__datetime}/gen_rel_jacobian
  429. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_rel_jacobian)"
  430. if [[ ${_arg_dry_run} == "off" ]]; then
  431. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  432. --walltime ${_arg_walltime} \
  433. -N ${_arg_jobname_prefix}dbm_${__datetime}_gen_rel_jacobian \
  434. --depend ${_arg_jobname_prefix}dbm_${__datetime}_nlin_jacobian \
  435. --depend ${_arg_jobname_prefix}dbm_${__datetime}_jacobian_from_delin_warp \
  436. ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_rel_jacobian
  437. fi
  438. # # Generate unlogged relative jacobians
  439. # if [[ ${_arg_unlog_jacobian} == "on" ]]; then
  440. # info "Generating Un-logged Relative Jacobians"
  441. # for file in "${_arg_inputs[@]}"; do
  442. # if [[ ! -s ${_arg_output_dir}/dbm/jacobian/relative/unlog/$(basename ${file} | extension_strip).nii.gz ]]; then
  443. # command=("python" "-c" "'import SimpleITK as sitk; sitk.WriteImage(sitk.Exp(sitk.ReadImage(\"${_arg_output_dir}/dbm/jacobian/relative/$(basename ${file} | extension_strip).nii.gz\")),\"${_arg_output_dir}/dbm/jacobian/relative/unlog/$(basename ${file} | extension_strip).nii.gz\")'" )
  444. # echo "${command[@]}"
  445. # fi
  446. # done >${_arg_output_dir}/dbm/jobs/${__datetime}/gen_unlog_rel_jacobian
  447. # debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_unlog_rel_jacobian)"
  448. # if [[ ${_arg_dry_run} == "off" ]]; then
  449. # qbatch ${_arg_block} --logdir ${_arg_output_dir}/logs/${__datetime} \
  450. # --walltime ${_arg_walltime} \
  451. # -N ${_arg_jobname_prefix}dbm_${__datetime}_gen_unlog_rel_jacobian \
  452. # --depend ${_arg_jobname_prefix}dbm_${__datetime}_gen_frel_jacobian \
  453. # ${_arg_output_dir}/dbm/jobs/${__datetime}/gen_unlog_rel_jacobian
  454. # fi
  455. # fi
  456. # If requested, resample DBM outputs into final-target space
  457. if [[ ${_arg_target_space} == "final-target" ]]; then
  458. mkdir -p ${_arg_output_dir}/dbm/jacobian/{relative,full}/{unlog,}/final-target
  459. info "Resampling DBM"
  460. for file in "${_arg_inputs[@]}"; do
  461. for type in relative full; do
  462. if [[ ! -s ${_arg_output_dir}/dbm/jacobian/final-target/${type}/$(basename ${file} | extension_strip).nii.gz ]]; then
  463. echo antsApplyTransforms -d 3 --verbose -n Linear \
  464. -i ${_arg_output_dir}/dbm/jacobian/${type}/$(basename ${file} | extension_strip).nii.gz \
  465. -o ${_arg_output_dir}/dbm/jacobian/final-target/${type}/$(basename ${file} | extension_strip).nii.gz \
  466. -t ${_arg_output_dir}/final-target/to_target_1Warp.nii.gz \
  467. -t ${_arg_output_dir}/final-target/to_target_0GenericAffine.mat \
  468. -r ${_arg_output_dir}/final-target/final_target.nii.gz
  469. fi
  470. done
  471. # if [[ ${_arg_unlog_jacobian} == "on" ]]; then
  472. # if [[ ! -s ${_arg_output_dir}/dbm/jacobian/relative/unlog/final-target/$(basename ${file} | extension_strip).nii.gz ]]; then
  473. # true
  474. # fi
  475. # if [[ ! -s ${_arg_output_dir}/dbm/jacobian/full/unlog/final-target/$(basename ${file} | extension_strip).nii.gz ]]; then
  476. # true
  477. # fi
  478. # fi
  479. done >${_arg_output_dir}/dbm/jobs/${__datetime}/resample_jacobians_final_target
  480. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/resample_jacobians_final_target)"
  481. if [[ ${_arg_dry_run} == "off" ]]; then
  482. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  483. --walltime ${_arg_walltime} \
  484. -N ${_arg_jobname_prefix}dbm_${__datetime}_resample_jacobians_final_target \
  485. --depend ${_arg_jobname_prefix}dbm_${__datetime}_gen_rel_jacobian \
  486. --depend ${_arg_jobname_prefix}dbm_${__datetime}_gen_full_jacobian \
  487. ${_arg_output_dir}/dbm/jobs/${__datetime}/resample_jacobians_final_target
  488. fi
  489. fi
  490. # Smooth jacobians files
  491. info "Smoothing Jacobians"
  492. for file in "${_arg_inputs[@]}"; do
  493. for fwhm in "${_arg_jacobian_smooth[@]}"; do
  494. sigma_num=$(calc "$(echo ${fwhm} | grep -o -E '^[0-9]+')/(2*sqrt(2*log(2)))")
  495. if [[ ${fwhm} =~ [0-9]+mm$ ]]; then
  496. fwhm_type=1
  497. elif [[ ${fwhm} =~ [0-9]+vox$ ]]; then
  498. fwhm_type=0
  499. else
  500. failure "Parse error for FWHM entry \"${fwhm}\", must end with vox or mm"
  501. fi
  502. for type in relative full; do
  503. if [[ ! -s ${_arg_output_dir}/dbm/jacobian/${type}/smooth/$(basename ${file} | extension_strip)_fwhm_${fwhm}.nii.gz ]]; then
  504. echo SmoothImage 3 \
  505. ${_arg_output_dir}/dbm/jacobian/${type}/$(basename ${file} | extension_strip).nii.gz \
  506. ${sigma_num} \
  507. ${_arg_output_dir}/dbm/jacobian/${type}/smooth/$(basename ${file} | extension_strip)_fwhm_${fwhm}.nii.gz ${fwhm_type} 0
  508. fi
  509. if [[ ${_arg_target_space} == "final-target" ]]; then
  510. if [[ ! -s ${_arg_output_dir}/dbm/jacobian/final-target/${type}/smooth/$(basename ${file} | extension_strip)_fwhm_${fwhm}.nii.gz ]]; then
  511. echo SmoothImage 3 \
  512. ${_arg_output_dir}/dbm/jacobian/final-target/${type}/$(basename ${file} | extension_strip).nii.gz \
  513. ${sigma_num} \
  514. ${_arg_output_dir}/dbm/jacobian/final-target/${type}/smooth/$(basename ${file} | extension_strip)_fwhm_${fwhm}.nii.gz ${fwhm_type} 0
  515. fi
  516. fi
  517. done
  518. done
  519. done >${_arg_output_dir}/dbm/jobs/${__datetime}/smooth_jacobian
  520. debug "$(cat ${_arg_output_dir}/dbm/jobs/${__datetime}/smooth_jacobian)"
  521. if [[ ${_arg_dry_run} == "off" ]]; then
  522. qbatch ${_arg_block} --logdir ${_arg_output_dir}/dbm/logs/${__datetime} \
  523. --walltime ${_arg_walltime} \
  524. -N ${_arg_jobname_prefix}dbm_${__datetime}_smooth_jacobian \
  525. --depend ${_arg_jobname_prefix}dbm_${__datetime}_gen_full_jacobian \
  526. --depend ${_arg_jobname_prefix}dbm_${__datetime}_gen_rel_jacobian \
  527. --depend ${_arg_jobname_prefix}dbm_${__datetime}_resample_jacobians_final_target \
  528. ${_arg_output_dir}/dbm/jobs/${__datetime}/smooth_jacobian
  529. fi
  530. # ] <-- needed because of Argbash

dbm.sh at commit 477735b, under other · at the source

Overview

13 affiliations
  1. Institute of Medical Science, University of Toronto, Toronto, Ontario, Canada
  2. Neurosciences and Mental Health, The Hospital for Sick Children, Toronto, Ontario, Canada
  3. Krembil Brain Institute, University Health Network, Toronto, Ontario, Canada
  4. Division of Neurosurgery, The Hospital for Sick Children, Toronto, Ontario, Canada
  5. Mouse Imaging Centre, The Hospital for Sick Children, Toronto, Ontario, Canada
  6. Bloorview Research Institute, Holland Bloorview Kids Rehabilitation Hospital, Toronto, Ontario, Canada
  7. Department of Medical Biophysics, University of Toronto, Toronto, Ontario, Canada
  8. Oxford Centre for Integrative Neuroimaging, Nuffield Department of Clinical Neuroscience, University of Oxford, Oxford, UK
  9. Translational Medicine, The Hospital for Sick Children, Toronto, Ontario, Canada
  10. Diagnostic and Interventional Radiology, The Hospital for Sick Children, Toronto, Ontario, Canada
  11. Department of Medical Imaging, University of Toronto, Toronto, Ontario, Canada
  12. Department of Psychology, University of Toronto, Toronto, Ontario, Canada
  13. Division of Neurology, The Hospital for Sick Children, Toronto, Ontario, Canada
Journal: Science advances, volume 12, issue 15, article eaeb5842
Dates: received 18 August 2025; accepted 11 March 2026; published online 10 April 2026; in print April 2026
Type: Research article · Language: English
License: CC BY-NC
Identifiers: DOI 10.1126/sciadv.aeb5842 · PMID 41961929 · PMCID PMC13068066 · OpenAlex W7153175071
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), mouse (organism), autism (population), systems (subfield)
Methods: Statistics, Connectivity, fMRI & imaging
MeSH: Autism Spectrum Disorder*, Autistic Disorder*, Cerebral Cortex*, Corpus Striatum*, Deep Brain Stimulation*, Self-Injurious Behavior*, Animals, Child, Disease Models, Animal, Electric Stimulation, Female, Humans, Male, Mice, Nucleus Accumbens (* major topic)
Topic: Transcranial Magnetic Stimulation Studies (Neurology, Neuroscience), according to OpenAlex
Citations: cited by 1 paper (Europe PMC); 146 references in the paper

Abstract

Dysfunction of corticostriatal circuitry is related to the emergence of self-injurious behavior (SIB) in autism spectrum disorder (ASD). Despite mounting interest in circuit-based interventions for severe, refractory SIB, the lack of causal evidence linking modulation of corticostriatal networks to changes in SIB has limited the advancement of effective, targeted therapies. In this study, we demonstrate that electrical stimulation of the nucleus accumbens (NAcc) mitigates SIB and induces structural changes along corticostriatal circuits in a mouse model relevant for ASD and children with severe SIB undergoing NAcc-targeted deep brain stimulation. In BTBR T+ Itpr3tf/J mice, NAcc stimulation selectively reduced injurious self-grooming—a behavioral metric of SIB—and led to morphological changes in corticostriatal networks. In children with severe SIB, electric stimulation at a locus of optimal therapeutic response within the NAcc engaged widespread sensorimotor, limbic, and striatal networks and induced longitudinal structural changes in fronto-limbic-striatal brain regions. These findings highlight the role of the fronto-limbic-striatal network in SIB regulation and support corticostriatal neuromodulation as a mechanistic therapy for these extreme behaviors.

Reproduced under the paper's license (CC BY-NC), from the paper cited above.

Repositories

Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.

lead-dbs.org

License: none: the authors keep all their rights
State: the link answers, verified on 26 September 2026
Evidence: the link answers
Software Heritage: not checked
Found in: “Data, code, and materials availability:”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
  • 26 September 2026: the link answers (HTTP 200)
At the source: lead-dbs.org/

CoBrALab/twolevel_ants_dbm

License: other
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: c51e45ac513106b03bdaac61aca58d60c51bba64, 16 May 2025
Languages: Python (1)
Size: 6 files, 1 script
Software Heritage: not archived
Found in: “Data, code, and materials availability:”
Holds: README, license file, CITATION.cff, environment (requirements.txt)
Not found: tests, continuous integration, documentation
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
3 files

CoBrALab/optimized_antsMultivariateTemplateConstruction

License: other
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 477735b38736f9ba91f7e6372ab8eb77d8629bed, 21 September 2026
Languages: Shell (10), Python (4)
Size: 25 files, 14 scripts
Software Heritage: not archived
Found in: “Data, code, and materials availability:”
Holds: README, license file, CITATION.cff, documentation
Not found: environment file, tests, continuous integration
Tools: SimpleITK (4 files), NumPy (3 files), ANTs (2 files), SciPy (2 files), statsmodels (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
16 files

The paper's code and data availability statement is in the Data section.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 15 scripts, each with its path and the digest of its content;
  • 2 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Data, code, and materials availability

All data and code needed to evaluate and reproduce the results in the paper are present in the paper and/or the Supplementary Materials. Code for electrode localization, modeling of the volume of activated tissue, and imaging connectomics are freely available in Lead-DBS (https://lead-dbs.org/). Structural (https://doi.org/10.1038/s41597-024-03197-0) and functional (https://doi.org/10.7910/DVN/KKTJQC) connectomes are publicly available. The code used for data-processing and human deformation-based morphometry analysis are available at http://dx.doi.org/10.52294/001c.133510, https://github.com/CoBrALab/twolevel_ants_dbm, and https://github.com/CoBrALab/optimized_antsMultivariateTemplateConstruction. This study did not generate new materials.

Reproduced under the paper's license (CC BY-NC), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 29 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 15 authors, 15 MeSH terms, 1 funder, 141 references.

Cite

This paper

Zhang, K., Germann, J., Matin, R., Mithani, K., Ellegood, J., Suresh, H., Wong, S., Lerch, J. P., Nieman, B. J., Taylor, M. J., Breitbart, S., Fasano, A., Gorodetsky, C., Gouveia, F. V., & Ibrahim, G. M. (2026). Regulation of autism-related self-injurious behavior by electrical stimulation of corticostriatal circuits in mice and humans. Science advances, 12(15), eaeb5842. https://doi.org/10.1126/sciadv.aeb5842

BibTeX

@article{zhang2026regulation,
author = {Zhang, Kristina and Germann, Jurgen and Matin, Rafi and Mithani, Karim and Ellegood, Jacob and Suresh, Hrishikesh and Wong, Sammi and Lerch, Jason P and Nieman, Brian J and Taylor, Margot J and Breitbart, Sara and Fasano, Alfonso and Gorodetsky, Carolina and Gouveia, Flavia Venetucci and Ibrahim, George M},
title = {{Regulation of autism-related self-injurious behavior by electrical stimulation of corticostriatal circuits in mice and humans}},
journal = {Science advances},
year = {2026},
month = apr,
volume = {12},
number = {15},
pages = {eaeb5842},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/sciadv.aeb5842},
url = {https://doi.org/10.1126/sciadv.aeb5842},
pmid = {41961929},
pmcid = {PMC13068066}
}

RIS

TY - JOUR
AU - Zhang, Kristina
AU - Germann, Jurgen
AU - Matin, Rafi
AU - Mithani, Karim
AU - Ellegood, Jacob
AU - Suresh, Hrishikesh
AU - Wong, Sammi
AU - Lerch, Jason P
AU - Nieman, Brian J
AU - Taylor, Margot J
AU - Breitbart, Sara
AU - Fasano, Alfonso
AU - Gorodetsky, Carolina
AU - Gouveia, Flavia Venetucci
AU - Ibrahim, George M
TI - Regulation of autism-related self-injurious behavior by electrical stimulation of corticostriatal circuits in mice and humans
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/04/10
VL - 12
IS - 15
SP - eaeb5842
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/sciadv.aeb5842
UR - https://doi.org/10.1126/sciadv.aeb5842
LA - en
ER -

CSL-JSON

{
"id": "10.1126/sciadv.aeb5842",
"type": "article-journal",
"title": "Regulation of autism-related self-injurious behavior by electrical stimulation of corticostriatal circuits in mice and humans",
"container-title": "Science advances",
"author": [
{
"family": "Zhang",
"given": "Kristina"
},
{
"family": "Germann",
"given": "Jurgen"
},
{
"family": "Matin",
"given": "Rafi"
},
{
"family": "Mithani",
"given": "Karim"
},
{
"family": "Ellegood",
"given": "Jacob"
},
{
"family": "Suresh",
"given": "Hrishikesh"
},
{
"family": "Wong",
"given": "Sammi"
},
{
"family": "Lerch",
"given": "Jason P"
},
{
"family": "Nieman",
"given": "Brian J"
},
{
"family": "Taylor",
"given": "Margot J"
},
{
"family": "Breitbart",
"given": "Sara"
},
{
"family": "Fasano",
"given": "Alfonso"
},
{
"family": "Gorodetsky",
"given": "Carolina"
},
{
"family": "Gouveia",
"given": "Flavia Venetucci"
},
{
"family": "Ibrahim",
"given": "George M"
}
],
"container-title-short": "Sci Adv",
"volume": "12",
"issue": "15",
"page": "eaeb5842",
"DOI": "10.1126/sciadv.aeb5842",
"PMID": "41961929",
"PMCID": "PMC13068066",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://doi.org/10.1126/sciadv.aeb5842",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
10
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1038/s41467-026-71555-0 [code]
A deep representation learning model to predict response to vagus nerve stimulation.
Journal: Nature communications
In common: ANTs, SciPy, NumPy, 2 references, 4 authors
[2] doi:10.1038/s41586-026-10515-6 [code]
An X-linked long non-coding RNA, PTCHD1-AS, and the core features of autism.
Journal: Nature
In common: SciPy, NumPy, autism, mouse, 4 references, author Jacob Ellegood
[3] doi:10.1126/sciadv.adq6577 [code]
Autism-like phenotypes and increased NMDAR2D expression in mice with KDM5B histone lysine demethylase deficiency.
Journal: Science advances
In common: SciPy, NumPy, autism, mouse, 3 references, author Jacob Ellegood
[4] doi:10.1038/s41593-026-02228-w [code]
Circuit response to neuromodulation characterized with simultaneous deep brain stimulation and precision neuroimaging in humans.
Journal: Nature neuroscience
In common: ANTs, statsmodels, SciPy, 1 other tool, systems, 4 references
[5] doi:10.3389/fnins.2026.1843319 [code]
Humanized APOE mouse brain volume increases over age irrespective of sex and APOE genotype: implications for translational validity to the human.
Journal: Frontiers in neuroscience
In common: SimpleITK, ANTs, statsmodels, 2 other tools, mouse, 1 reference
[6] doi:10.1038/s41467-026-75706-1 [code]
Dissociable roles of prefrontal plasticity in decision-making strategy and execution of habitual behavior.
Journal: Nature communications
In common: SciPy, NumPy, mouse, 4 references
[7] doi:10.1038/s41467-026-72437-1 [code]
High-speed whole-brain imaging in Drosophila.
Journal: Nature communications
In common: SimpleITK, ANTs, statsmodels, 2 other tools, systems, 1 reference
[8] doi:10.1016/j.isci.2026.117278
Altered striatal long-term potentiation in the eIF4E-TG mouse model of autism spectrum disorder.
Journal: iScience
In common: autism, mouse, 4 references
[9] doi:10.7554/elife.108408 [code]
Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI.
Journal: eLife
In common: ANTs, statsmodels, SciPy, 1 other tool, systems, 2 references
[10] doi:10.1002/ana.78206 [code]
Multimodal Image Guidance in Subthalamic Deep Brain Stimulation for Parkinson's Disease.
Journal: Annals of neurology
In common: ANTs, SciPy, NumPy, 3 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.