In [1]:
## Boiler plate code common to many notebooks. See the TestFilesCommonCode.ipynb for details
from __future__ import print_function
%run TestFilesCommonCode.ipynb
In [2]:
dwiScan='/Shared/johnsonhj/TrackOn/Experiments/20140203_DWIProcessing/VISUALLY_INSPECTED/HDNI_001/249903245/249903245_20110719_30/249903245_249903245_20110719_30_DWI_CONCAT_QCed_INSPECTED.nrrd'
t2Scan='/Shared/sinapse/CACHE/20141124_TrackOn_base_Results/HDNI_001/249903245/249903245_20110719_30/TissueClassify/t2_average_BRAINSABC.nii.gz'
labelImage='/Shared/sinapse/CACHE/20141124_TrackOn_base_Results/HDNI_001/249903245/249903245_20110719_30/TissueClassify/complete_brainlabels_seg.nii.gz'
DWI = sitk.ReadImage(dwiScan)
T2 = sitk.ReadImage(t2Scan)
labelsMap = sitk.ReadImage(labelImage)
In [3]:
#myshow(DWI_img)
myshow(T2)
myshow(sitk.LabelToRGB(labelsMap))
In [4]:
label_mask = labelsMap>0
myshow(label_mask)
# T2 with skull
T2_brain = sitk.Cast(T2,sitk.sitkFloat32) * sitk.Cast(label_mask,sitk.sitkFloat32)
myshow(T2_brain)
In [5]:
import os
import glob
import sys
#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
#####################################################################################
# Prepend the shell environment search paths
PROGRAM_PATHS = '/scratch/BS/release/bin'
PROGRAM_PATHS = PROGRAM_PATHS.split(':')
PROGRAM_PATHS.extend(os.environ['PATH'].split(':'))
os.environ['PATH'] = ':'.join(PROGRAM_PATHS)
CUSTOM_ENVIRONMENT=dict()
# Platform specific information
# Prepend the python search paths
PYTHON_AUX_PATHS = '/scratch/BS/BRAINSTools/AutoWorkup'
PYTHON_AUX_PATHS = PYTHON_AUX_PATHS.split(':')
PYTHON_AUX_PATHS.extend(sys.path)
sys.path = PYTHON_AUX_PATHS
import SimpleITK as sitk
import nipype
from nipype.interfaces.base import CommandLine, CommandLineInputSpec, TraitedSpec, File, Directory
from nipype.interfaces.base import traits, isdefined, BaseInterface
from nipype.interfaces.utility import Merge, Split, Function, Rename, IdentityInterface
import nipype.interfaces.io as nio # Data i/oS
import nipype.pipeline.engine as pe # pypeline engine
from nipype.interfaces.freesurfer import ReconAll
from SEMTools import *
In [6]:
myExtracter = extractNrrdVectorIndex()
myExtracter.inputs.inputVolume = dwiScan
myExtracter.inputs.vectorIndex = 0
myExtracter.inputs.outputVolume = 'B0_Image.nrrd'
print(myExtracter.cmdline)
myExtracter.run()
Out[6]:
In [7]:
b0Image=sitk.ReadImage(myExtracter.inputs.outputVolume)
print(b0Image.GetDirection())
myshow(b0Image)
In [8]:
b0Image_2 = b0Image
print(b0Image_2.GetDirection())
b0Image_2.SetDirection([-1.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,-1.0])
print(b0Image_2.GetDirection())
In [9]:
#Tx = sitk.AffineTransform(3)
#Tx.SetMatrix(b0Image.GetDirection())
#print(Tx.GetMatrix())
#print(Tx.GetTranslation())
#sitk.WriteTransform(Tx,'rigidTransform.h5')
In [10]:
#from numpy import matrix
#Tx = sitk.VersorRigid3DTransform()
#paras=b0Image.GetDirection()
#m = matrix(paras)
#print(m)
#print(m.I)
#paras += (0.0,0.0,0.0)
#print(paras)
#Tx.SetParameters(paras)
#print(Tx.GetMatrix())
In [11]:
#b0Image.SetDirection([1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0])
#print(b0Image.GetDirection())
In [12]:
tx = sitk.CenteredVersorTransformInitializer(b0Image, b0Image_2, sitk.VersorRigid3DTransform(),computeRotation=True)
In [13]:
print(tx)
In [14]:
def ForceDCtoID(inputVolume):
inImage = sitk.ReadImage(inputVolume)
inImage.SetDirection((1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
IDDCVolume = os.path.realpath('IDDC_'+ os.path.basename(inputVolume))
return IDDCVolume
In [15]:
print(ForceDCtoID(t2Scan))
In [18]:
bfitRigidTx = sitk.ReadTransform('/scratch/TESTS/IpythonNotebook/1_DWI_Nipype_workflow/DWIPrototype_only1Subject/BFit_T2toB0/T2ToB0_RigidTransform.mat')
print(bfitRigidTx)
vrigid = sitk.VersorRigid3DTransform()
vrigid.SetFixedParameters(bfitRigidTx.GetFixedParameters())
vrigid.SetParameters(bfitRigidTx.GetParameters())
print(vrigid)
In [ ]:
def GetTransfromInverse(inputTransform):
import SimpleITK as sitk
inverseTransform = sitk.Transform(inputTransform)
inverseTransform.SetInverse()
#inverseTransform = inputTransform.GetInverse()
return inverseTransform
In [17]:
invTx = GetTransfromInverse(vrigid)
print(invTx)
InvVersorRigid = sitk.VersorRigid3DTransform()
InvVersorRigid.SetFixedParameters(invTx.GetFixedParameters())
InvVersorRigid.SetParameters(invTx.GetParameters())
print(InvVersorRigid)
In [50]:
dwiScan1='/Shared/johnsonhj/TrackOn/Experiments/20140203_DWIProcessing/VISUALLY_INSPECTED/HDNI_001/249903245/249903245_20110719_30/249903245_249903245_20110719_30_DWI_CONCAT_QCed_INSPECTED.nrrd'
dwiScan2='/Shared/johnsonhj/TrackOn/Experiments/20140203_DWIProcessing/VISUALLY_INSPECTED/HDNI_004/866458223/866458223_20120920_30/866458223_866458223_20120920_30_DWI_CONCAT_QCed_INSPECTED.nrrd'
dwiScan3='/Shared/johnsonhj/TrackOn/Experiments/20140203_DWIProcessing/VISUALLY_INSPECTED/HDNI_003/823955340/823955340_20080609_30/823955340_823955340_20080609_30_DWI_CONCAT_QCed_INSPECTED.nrrd'
DWI1 = sitk.ReadImage(dwiScan1)
DWI2 = sitk.ReadImage(dwiScan2)
DWI3 = sitk.ReadImage(dwiScan3)
print(DWI1.GetDirection())
print(DWI2.GetDirection())
print(DWI3.GetDirection())
In [49]:
print(DWI2)
In [2]:
DWIVolume = '/Shared/johnsonhj/TrackOn/Experiments/20140203_DWIProcessing/VISUALLY_INSPECTED/HDNI_003/823955340/823955340_20080609_30/823955340_823955340_20080609_30_DWI_CONCAT_QCed_INSPECTED.nrrd'
In [3]:
print(os.path.basename(DWIVolume))
In [4]:
print(os.path.dirname(DWIVolume))
In [5]:
sessionID=os.path.basename(os.path.dirname(DWIVolume))
print(sessionID)
In [6]:
subjectID=os.path.basename(os.path.dirname(os.path.dirname(DWIVolume)))
print(subjectID)
In [7]:
siteID=os.path.basename(os.path.dirname(os.path.dirname(os.path.dirname(DWIVolume))))
print(siteID)
In [8]:
scalarsDIR = os.path.join('/Shared/sinapse/CACHE/20141124_TrackOn_base_Results/',
siteID,
subjectID,
sessionID,
'TissueClassify')
print(scalarsDIR)
In [9]:
T2_scan = os.path.join(scalarsDIR,'t2_average_BRAINSABC.nii.gz')
labelMap_image = os.path.join(scalarsDIR,'complete_brainlabels_seg.nii.gz')
In [10]:
print(T2_scan)
In [11]:
print(labelMap_image)
In [14]:
WFname = 'DWIWorkflow_' + sessionID
In [15]:
print(WFname)
In [ ]: