vol2shenroi_ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/python
  2. import sys
  3. import os
  4. args = dict(
  5. sub=sys.argv[1],
  6. run=sys.argv[2])
  7. atlas_filename = "sub-{sub}/atlases/bold3Tp2/shen_fconn_atlas_150.nii.gz".format(**args)
  8. fmri_filename = "src/aligned/sub-{sub}/in_bold3Tp2/sub-{sub}_task-avmovie_run-{run}_bold.nii.gz".format(**args)
  9. confounds = "src/aligned/sub-{sub}/in_bold3Tp2/sub-{sub}_task-avmovie_run-{run}_bold_mcparams.txt".format(**args)
  10. csv_filename = os.path.join("sub-{sub}".format(**args), 'shen_fconn', os.path.basename(fmri_filename)[:-6] + "csv")
  11. ##############################################################################
  12. # Extract signals on a parcellation defined by labels using the
  13. # NiftiLabelsMasker
  14. from nilearn.input_data import NiftiLabelsMasker
  15. masker = NiftiLabelsMasker(
  16. labels_img=atlas_filename,
  17. background_label=0,
  18. smoothing_fwhm=4.0,
  19. t_r=2.0,
  20. standardize=True,
  21. detrend=True,
  22. memory='nilearn_cache',
  23. verbose=5)
  24. # Here we go from nifti files to the signal time series in a numpy
  25. # array. Note how we give confounds to be regressed out during signal
  26. # extraction
  27. time_series = masker.fit_transform(
  28. fmri_filename,
  29. confounds=confounds)
  30. labels = [int(l) for l in masker.labels_]
  31. ##############################################################################
  32. # Store as CSV
  33. import numpy as np
  34. np.savetxt(
  35. csv_filename,
  36. time_series,
  37. delimiter=',',
  38. header=','.join([str(l) for l in labels]),
  39. comments='',
  40. fmt="%.10f")