def createDataset(svmName='',roiName='',labFiles=[],niiFiles=[],lab1='',lab2=''):
	"""
	Workhorse...
	"""
	if os.path.exists(svmName):
		print('Overwriting {0}.'.format(svmName))
		os.remove(svmName)

	for labF, niiF in zip(labFiles, niiFiles):
		print(niiF,labF)
	 
		## Get the needed data
		vtc = nf.NiftiImage(niiF)
		roi = nf.NiftiImage(roiName)
		vols, labels = pre.readLabList(labF)

		## Preprocess the data
		reducedRoi = pre.roiReduce(roi,vtc)
		maskedVtc  = pre.maskVtc(vtc,reducedRoi)
		reference  = pre.createRefVtc(maskedVtc)

		## Filter labels and vols by trainLab1, trainLab2
		## then change recode the labels as 1 and 2
		l1mask   = labels == lab1
		l2mask   = labels == lab2
		l1l2mask = l1mask != l2mask
		labels[l1mask] = 1
		labels[l2mask] = 2
		vols     = vols[l1l2mask]
		labels   = labels[l1l2mask]

		pre.writeSVM(maskedVtc,reference,labels,vols,svmName)
	else:
		print('Z-normalizing the data.')
		pre.zSparse(svmName)
	#svmName = 'train_'+ trainLab1 + 'x' + trainLab2 + '_' + svmBaseName

	#pre.writeSVM(maskedVtc,reference,labels,vols,svmName)
	

print('Creating testing data:')
for labF, niiF in zip(testLabsFiles, testNiiFiles):
	print(niiF,labF)
	
	## Get the needed data
	vtc = nf.NiftiImage(niiF)
	roi = nf.NiftiImage(roiVmr)
	vols, labels = pre.readLabList(labF)

	## Preprocess the data
	reducedRoi = pre.roiReduce(roi,vtc)
	maskedVtc  = pre.maskVtc(vtc,reducedRoi)
	reference  = pre.createRefVtc(maskedVtc)

	## Filter labels and vols by trainLab1, trainLab2
	## then change recode the labels as 1 and 2
	l1mask   = labels == testLab1
	l2mask   = labels == testLab2
	l1l2mask = l1mask != l2mask
	labels[l1mask] = 1
	labels[l2mask] = 2
	vols     = vols[l1l2mask]
	labels   = labels[l1l2mask]

	svmName = 'test_'+ testLab1 + 'x' + testLab2 + '_' + svmBaseName
from time import localtime, strftime
svmBaseName = strftime("%a%d%b%Y_%H-%M-%S", localtime()) + svmBaseName  
	# Add a timestamp to the SVM file name, preventing accidental
	# overwriting or modification.

print('Creating training data:')
for labF, niiF in zip(trainLabsFiles, trainNiiFiles):
	print(niiF,labF)

	## Get the needed datword_a
	vtc = nf.NiftiImage(niiF)
	roi = nf.NiftiImage(roiVmr)
	vols, labels = pre.readLabList(labF)

	## Preprocess the data
	reducedRoi = pre.roiReduce(roi,vtc)
	maskedVtc  = pre.maskVtc(vtc,reducedRoi)
	reference  = pre.createRefVtc(maskedVtc)

	## Filter labels and vols by trainLab1, trainLab2
	## then change recode the labels as 1 and 2
	l1mask   = labels == trainLab1
	l2mask   = labels == trainLab2
	l1l2mask = l1mask != l2mask
	labels[l1mask] = 1
	labels[l2mask] = 2
	vols     = vols[l1l2mask]
	labels   = labels[l1l2mask]

	svmName = 'train_scene_'+ trainLab1 + 'x' + trainLab2 + '_' + svmBaseName