Frequently Asked Question for PLS Applications

Q:	Why the figures in UserGuide.htm cannot be displayed?

A:	Those figures are stored in our website, you need to connect
	to internet in order to view them. If you still have problem
	to view the figures, please check the webpage address of the
	User Guide for PLS Applications. Make sure it is:

Q:	Besides GUI interface, how can I get meaningful information 
	directly from PLS result file (i.e. *result.mat)?

A:	In "result" structure variable, there is a field called
	"field_descrip", which is a mapping list between all the
	field names in result variable and their meaningful names.

Q:	Can I enter decimal number in "Onsets" field for MRI study?

A:	Yes, you can. However, since the smallest unit is a scan (i.e.
	1 TR), the PLS application will round your decimal number to 

	If you selected "Use HRF instead of Block length", we adopted
	some feature from SPM. Instead of only using 1 time bin, SPM 
	increases the Microtime resolution 16 times. This may bring 
	some benefit if you input decimal onset time directly, though
	eventually the length of convolved onsets is still the number 
	of scans (i.e. one scan is still the smallest unit). If you 
	input decimal onset time directly, please make sure that your 
	slices must be in sequential order rather than interleaved 
	order. Also, please make sure that your slices must be in 
	ascending order (i.e. 1st slice is at bottom) instead of 
	descending order or rounding order. Otherwise, you must enter 
	integer for the onset time.

	For all other fMRI PLS, since they are either based on 
	temporal window or block length, there is no chance to take 
	decimal onset time. If you do input decimal onsets, they will
	be rounded to the bottom slice using "round" function (before
	Feb 24, 2011, they were rounded using "floor" function).

Q:	How many LVs do I have?

A:	The number of LVs that generated by our PLS applications is 
	determined by which option that you choose to run PLS:

	For Mean-Centering PLS:  nLVs = nConditions x nGroups;
	For Non-Rotated Task PLS:  nLVs = nContrasts;
	For Regular Behavior PLS:  nLVs = nConditions x nGroups 
					  x nBehaviorMeasure;
	For Multiblock PLS:  nLVs = nConditions x nGroups + nConditions
				    x nGroups x nBehaviorMeasure;
	For Non-Rotated Behavior PLS:  nLVs = nContrasts;
	For Non-Rotated Multiblock PLS:  nLVs = nContrasts;

	There are also several restrictions:

	1. Since nConditions only provide nConditions-1 degrees of 
	   freedom, the maximum number of contrasts is limited by 
	2. In order to run Behavior PLS, you need to have at least 3 
	3. In order to run Mean-Centering PLS, you need to have at 
	   least 2 conditions. However, if you have only 1 condition 
	   and you have more than 1 groups, our PLS will reconstruct 
	   datamat so that it will become single group with multiple 

Q:	Which side is the left side of my image?

A:	If your raw image is in NIfTI format, PLS will interpret the 
	header and display it in RAS orientation. i.e. from Left to 
	Right on X axes, from Posterior to Anterior on Y axes, and 
	from Inferior to Superior on Z axes. Therefore, left side is 
	the left side of your image.

	If your raw image is in ANALYZE format, PLS will display 
	whatever orientation in raw image, since there is no affine 
	matrix in its header. However, you can change orientation 
	when you create the datamat.

Q:	Can I use ANALYZE image with different orientation?

A:	Yes. A new feature has been added to the version of Oct. 29
	in 2004. This allows people to use ANALYZE images in any 
	orientation for PET, Structural, E.R.fMRI and Blocked fMRI. 
	In "Create Datamat" window, a new button named "Check image 
	orientation" is added beside the "Create" button. Once you 
	click this button, the 3 Cardinal Plane View of one of the 
	subject images will be displayed in the "Change Image 
	Orientation" window, and you can re-orient it by click the 
	"Re-orient" button. Once you click the "Re-orient" button, 
	it will ask you to input the orientation of the CURRENT 
	DISPLAYED image. After done, the PLS will display the image 
	in RAS orientation. i.e. from Left to Right on X axes, from 
	posterior to Anterior on Y axes, and from Inferior to 
	Superior on Z axes.

Q:	Can I use a 4D NIfTI or ANALYZE image?

A:	Yes. For E.R.fMRI or Blocked fMRI modules, you can use a 4D 
	image directly. For other modules, all you have to do is to 
	run a small program called "expand_nii_scan.m" under command 
	promot, and expand all the 3D scans in that 4D image into a 

Q:	Does PLS support ANT average binary data?

A:	Yes. The "load_ant.m" program in PLS is based on openlib
	library "" and other information in "avr.txt" 
	file that are released by ANT technical support. 

	Since January 2004, ANT's average data file has been changed,
	and the history section is included in its header. This info
	is not included in the ""; however, it is in the
	"avr.txt" file released by ANT's support people.

	Some people used "avr2asc" provided by ANT's EEProbe_3.3.120 
	to convert ANT's average data to plain text file. However, the
	disadvantage is that the "avr2asc" only supports new version
	of ANT's average data on Linux and Mac platforms, and does not
	work under MATLAB.

	Other programs relied on their "" (e.g. Robert
	Oostenveld's "read_eep_avr" that is used by EEGLAB) can only
	support old version, and they are compiled in mex or dll file.
	You must first use "avrstrip" in EEProbe_3.3.120 to convert 
	your new version of ANT's average data to old version before
	you can use "read_eep_avr" to load them.

	My "load_ant.m" is the only explicit .m program so far (April
	2007) that supports both old & new versions of ANT's average
	data file on any platform.

Q:	In my MEG data, the number of channels and their corresponding
	names do not match up with any of the pre-specified system. 
	How can I read in my data when channel configuration and names
	do not match?

A:	Up to this version (5.0704231) We only have 4 scalp electrode
	location systems in PLS. They are the ones that we are using
	most frequently. There is a way to add any system by yourself,
	as long as you know the channel names with their corresponding
	x and y locations. Because PLS will normalize the locations to
	Xmin/Xmax and Ymin/Ymax, you don't need to worry about the 
	exact locations.

	Here is the details of how to add a Standard 10-20 EEG System
	with 19 cap electrodes:

	1. First step:	Put all electrode names on a piece of grid 
		paper, and make sure that they are spatially located 

	2. Second step:	Select an origin for XY coordinates. You can 
		pick any point (on or off any electrode) as your 
		origin. For example, Cz is a good selection, the most 
		lower left grid also serves a good selection.

	3. Third step:	Use a ruler (or count the grid) to measure the 
		x and y locations from the origin.

	4. Forth step:	Pick any of the 4 PLS electrode systems for
		your system. In PLS, each system is determined by a
		"erp_loc*.mat" MATLAB file. We have:
			erp_loc_besa148.mat (default)
		Since "erp_loc_besa148.mat" is the default system for 
		"Edit Channel Order" window, it will be convenient for
		you if you also pick this one.

	The whole idea is to write one of the four files above in your
	own PLS working directory. So PLS will pick the one in your own
	directory (the same directory for sessiondata file and result 
	file), rather than the PLS applications directory.

	All four electrode system files in PLS contain two variables:

	1. chan_nam (char array) - the number of rows is the number of
		channels; the number of columns is the longest length 
		of the electrode names.
	2. chan_loc (double array) - the number of rows is the number 
		of channels; column one is for x values, and column 
		two is for y values.

	For example:

			'F7 '
			'F3 '
			'Fz '
			'F4 '
			'F8 '
			'T7 '
			'C3 '
			'Cz '
			'C4 '
			'T8 '
			'P7 '
			'P3 '
			'Pz '
			'P4 '
			'P8 '
			'O1 '
			'O2 ']

			-3  10
			3   10
			-8  6
			-5  7
			0   8
			5   7
			8   6
			-10 0
			-7  0
			0   0
			7   0
			10  0
			-8  -6
			-5  -7
			0   -8
			5   -7
			8   -6
			-3  -10
			3   -10]

		save erp_loc_besa148 chan_loc chan_nam

	Now you will use your own electrode system in "Edit Channel 
	Order" window if you select "ERP/BESAThetaPhi" system.

Q:	I wrote a batch file to create fMRI datamat. I have five 
	conditions and two runs. Since I set "across_run" keyword to 
	"0" (merging data within each run), I will have ten conditions.
	I listed all 10 after 10 "cond_name" keywords. When I run the 
	batch, I got error message saying "Index exceeds matrix 

A:	You can only list your five conditions after five "cond_name" 
	keywords. This is because PLS applications will expand your 5 
	conditions in your 2 runs to something like Run1Cond1, ..., 
	Run2Cond4, Run2Cond5, etc.

Q:	What should be the content of input file for "multiple voxel 
	extraction"? I created a text file with 1 XYZ coordinate per 
	row. However, I keep getting an error message.

A:	That's the correct content. However, please make sure that the
	XYZ coordinates should be in unit of millimeter (Note: we did 
	use absolute voxel location before 15-SEP-2006). You can use 
	script "xyz2xyzmm.m" to easily convert locations in voxel to
	locations in millimeter.

Q:	When I use the multiple voxel extraction, does it output the
	baseline-adjusted values or the raw image values?

A:	It outputs the baseline-adjusted value (from sessiondata.mat),
	and there is no raw image values kept. If you need raw image 
	values, you have to load images by yourself, and extract only 
	the voxels indexed by the XYZmm file you provided.

Q:	I would like to get intensity values at particular coordinates
	from the raw image. How do I load image and extract the voxel
	intensity from XYZmm file?

A:	Let's say your raw image is:

		filename = 'SCAN.img';
		or filename = 'SCAN.nii';

	and you would like to get the intensity values at particular
	coordinates from it.

	First, you need to load the image by yourself:

		A = load_nii(filename);

	Then, display the image:


	Since you have already prepared XYZ(mm) in voxel file, you 
	need to switch the selection of "Axes Unit" from "Voxel" to
	"Millimeter", and then enter each XYZmm value in "[X Y Z] 
	at crosshair" field and click TAB key.

	The value displayed in "Value at crosshair" is the intensity
	value at the particular coordinate you entered.

	If you have many coordinates, you can use the simple script
	below to automatically extract intensity values list from
	locations list in your XYZmm file:

		I = []; xyz = xyzmm2xyz(xyzmm, result_file);

		for i = 1:size(xyz, 1)
		   I = [I; A.img(xyz(i,1), xyz(i,2), xyz(i,3)];

Q:	In E.R.fMRI and Blocked fMRI datamat create window, what
	does the "Normalize data with ref.scans" check box mean?

A:	This check box is checked by default to remove the low 
	frequency noises and scale the data. The formula for this 
	check box is very simple:

		data = (data - ref_data) * 100 ./ ref_data

	This way, activity for each event is expressed as a percentage
	change from the reference scan (i.e. baseline) similar to what
	is done for ERP, where activity is expressed as a change from 
	prestimulus baseline.

	Please keep this check box checked unless you have a good 
	reason not to do so.

Q:	I have completed a group analysis with 7 subjects under 3
	conditions (positive, negtive and neutral) using Non-Rotated
	Task PLS. When showing the result, how could I find the the
	values of latent vectors for design contrast?

A:	Click "Design Scores and LVs Plot" in the "Windows" menu of 
	the result display window. The Design Scores for each latent
	variable reflect the impact of your contrast data.

Q:	In my result the "Brain LV" view is very different from the 
	"Bootstrap Ratio" view with default threshold, and which view
	do I prefer to support my experiment result?

A:	The Bootstrap Ratio view gives you a "stability map", so you
	can focus on the high positve (or high negative) voxels in the
	Bootstrap Ratio view. "Brain LV" gives you a "activation map",
	so it is the one to support your experiment result. The 
	positive (negative) values in "Brain LV" should be consistent 
	with the one in Design Scores plot.

Q:	I have more than one runs in my MRI study. However, for some
	runs, I do not have all the conditions. How should I fill out
	the onset field?

A:	If you want to exclude certain conditions for certain runs, 
	you can simply put a -1 for the onset field, (and put a 1 for 
	the length of Blocked fMRI). Then in "Merge data" under session
	window, choose "Across All Runs" to create a datamat. Please 
	ignore the command line message saying "Scans -01 not included 
	due to out of bound". You cannot choose "Within each run only",
	since you do not have all the conditions filled for every 
	runs. In additon, for each condition, you must have at least 
	one valid onset (not -1) in one of your runs.

Q:	Why the results I obtained using Matlab 7 cannot be loaded
	under earlier version of Matlabs?

A:	In order to load results generated using Matlab 7 on earlier
	versions of Matlab, a special Matlab 7 switch must be included
	during the saving process. Since such a switch is not coded in
	the package, a small program called 'matlab7to5.m' is included
	to covert the .mat files generated from Matlab 7 to be loaded
	on earlier versions of Matlab that are above Matlab 5.

Q:	I got "divide by zero" error when I tried to run Behavior PLS
	analysis, while there is no error when I ran task PLS.

A:	There are two reasons that could bring you into this trouble:

	1. You must have at least 3 subjects to do the behavior PLS.

	2. Values should not be all the same for behavior data. Even
	   if they are really all the same, you must add (or minus) an
	   insignificant value to make it work.

Q:	Is there any restriction on file name?

A:	Yes, but not many. There are 2 kinds of major files that will 
	be used in PLS applications. They are sessiondata file, and 
	result file.

	The 2 major files must be in the forms of:


	You can replace MODULE with any of PET, ERP, fMRI, BfMRI, or 
	STRUCT depending which PLS method are you working on, and the 
	dialogbox will always prompt you with the correct MODULE.

	You cannot insert your own string into the above forms and
	break it. However, you can always use your own string before 
	"_MODULE", which is called "prefix" in PLS applications. I do 
	not recommend you to use any blank space or symbol characters 
	like "+ - * / % ^ $ ' ..." etc. inside the string.

	In addition, you should not rename the filename manually by 
	yourself, since this will break the filename linkage stored
	inside the above major files.

Q:	When I opened the result file, it crashed and told me that the
	datamat file was unable to open. But I checked and the datamat
	files are there in my datamat directory.

A:	In the early version of PLS applications, we placed the datamat 
	files location in the 'pls_data_path' variable. However, this 
	also caused troubles when people tried to copy those datamat
	files from directory to directory, and even from one computer
	to the other.

	So we decided to use the "current directory" rather than the 
	stored 'pls_data_path' variable for "Run PLS" window and "PLS 
	result" window.

Q:	When I add or edit subject directory for ERP and PET, I saw
	an edit box called "Number of character for subject initial".
	What should I enter?

A:	For ERP and PET data, each subject has its own directory.
	Each raw data inside the subject directory stand for one
	conditions in this subject. The name of these files can be 
	arbitrary; however, if you give "consistent naming across 
	subjects", it will be convenience for you to match those

	Here is what the "consistent naming across subjects" means:

	1. All subject files consist 2 parts, subject initial part
	   and condition name part. e.g. SubjInit1_CondName1
	2. Across all subject directories, the condition name part
	   should be the same for the same condition.
	3. Within each subject directory, the subject initial part
	   should be the same for all conditions within this subject.

	Here is how to make this feature work for you:

	1. Enter the length of the subject initials in the "Number of
	   Characters for subject initial" box. (You can disable this
	   feature by leaving this value as default -1)
	2. Click Add or Edit button in the same window (Edit Subject
	   Directory window), and a window called Subject Directory
	   Detail will open.
	3. Select one of subjects that will be used in this datamat
	   group (Note: Remember to only select 1 subject this time).
	4. If you have "consistent naming across subjects", you will
	   notice that "File names are the same across subjects" check
	   box is checked. Uncheck it to disable this feature.
	5. Go to right hand side, select correct subject files that 
	   match the inputted conditions at their left side. Make sure
	   that no subject file can be duplicated.
	6. If you have multiple subjects in this group, you can now
	   select the rest of subjects by holding Shift or Ctrl key
	   combination while selecting (Note: You cannot do so before
	   this step).
	7. Click Done button when you finish, and return to "Session
	   Information" window.

Q:	I received a "Subject file name convention is not consistent"
	message when I try to edit a subject. However, all my subject
	file name convention are consistent. Is this a bug?

A:	No, it is not a bug. When you edit a subject with "File name
	are the same across subjects" checkbox selected, the program
	expects that you are trying to use a different subject. You 
	can manually do the mapping between subject files and input
	conditions by yourself. If the mapping you selected does not 
	follow the other subjects you selected, the program will show
	such an error message. If you definitely need such a mapping, 
	then the "consistent naming across subjects" rule cannot be 
	kept, and you will have to uncheck the "File name are the same
	across subjects" checkbox.

Q:	All my subject files have consistent naming convention, and I
	also input the correct length in the "Number of Characters for
	subject initial" box. Why the "File names are the same across
	subjects" checkbox is grayed?

A:	Please check the following 2 possibilities:

	1. All files under any subject directory should follow the 
	   "consistent naming across subjects" rule. If one of them 
	   does not follow this rule (e.g. WS_FTP.LOG), checkbox
	   "File names are the same across subjects" will be grayed.
	2. Don't let external program affects your subject initial. 
	   For example, there is a subject file with subject initial
	   "S1" with length of 2 characters. When you normalize this
	   file, it may become nS1 with length of 3 characters. You 
	   will have to rename the file name if this happened.

Q:	Does the letter case of the data file name matter?

A:	No. It is particularly designed for case insensitive. So you
	can call the first data file name "ERP_data1", and the second
	data file "erp_Data2".

Q:	I made some changes, but it disappeared. Why?

A:	Any changes you made on the edit box need to be recorded. This
	can be done by clicking ENTER key on your keyboard, or simply
	click anywhere else on the window to let the focus switch off
	from this edit box. If you did not let the focus switch off 
	from this edit box, the change will not be recorded.

Q:	After deselect the conditions, why the behavior data I loaded 
	before running analysis get lost?

A:	This is because rows of behavior data are determined by the
	conditions you selected. So, you need to load behavior data 
	again after you deselect the conditions.

Q:	When I generate fMRI datamat, I got something like this: Scans
	147 for the condition 3 of run1 are not included due to out of
	bound. Do you have any idea what this means?

A:	When you enter onset data, make sure they are in the range. 
	In most case, you encounter this problem because the onset 
	data you input exceeds the maximum range. The minmum value
	is started from 0. However, The maximum value you can enter 
	is: Number_of_Scans - Temporal_Window_Size_if_fMRI - 1. e.g.:
	If you have 180 files, and window size is 8, the maximum value
	in onset data is 171.

Q:	What is the lag number? Is there anywhere I can enter lag 

A:	In E.R.fMRI, lag number is the index of the temporal window,
	and it starts from 0. You decide the temporal window size in
	Generate ST Datamat window. The unit of temporal window size
	is scan, and its default value is 8. In "LagXYZ" field of 
	result window, you can enter lag value, as well as XYZ 
	coordinates in voxel.

Q:	I literarily counted those active voxels, why are they not 
	listed in PLS cluster report? The two clusters in the cluster
	report are within the same cluster, why PLS separate them into
	two different clusters? The result of cluster report on one 
	computer is totally different from the cluster report from the
	other one, but I have the same result file, and the same 
	threshold. Why do I get the different results?

A:	In order to answer the questions, I have to describe the 
	techniques used to generate cluster report. The author of the
	cluster report program uses a 3D 6-connected operator to 
	recursively flood and fill the active voxels of the cluster. 
	The MATLAB on each computer has different recursion limit,
	that's the reason you may expect different cluster report on
	different computers. Also because of the recursion limit, the
	flood and fill process may not complete, i.e. there are still
	active voxels in the cluster that have not been identified. 
	That is the reason that some active voxels may not be listed 
	in PLS cluster report. When cluster report program start the 
	flood and fill from a different location, the new cluster may
	join one or more of the old clusters. In that case, all those
	clusters have to be combined together. However, if the new 
	cluster cannot join the old cluster(s), it will look like an 
	individual cluster, although it could be part of the other 
	cluster. That is the reason that PLS may separate active 
	voxels in the same cluster into different clusters.

  • Keep in touch

Enter your email above to receive electronic messages from Baycrest, including invitations to programs and events, newsletters, updates and other communications.
You can unsubscribe at any time.
Please refer to our Privacy Policy or contact us for more details.

  • Follow us on social
  • Facebook
  • Instagram
  • Linkedin
  • Pinterest
  • Twitter
  • YouTube

Contact Us:

3560 Bathurst Street
Toronto, Ontario
Canada M6A 2E1
Phone: (416) 785-2500

Baycrest is an academic health sciences centre fully affiliated with the University of Toronto