[pymvpa] RSA - PDistTargetSimilarity
Charlotte Murphy
cem552 at york.ac.uk
Tue May 26 09:48:40 UTC 2015
Dear PyMVPA experts,
I am trying to run RSA in a searchlight, where I want to use
PDistTargetSimilarity() to see where in the brain dissimilarity structures
are similar to a predefined model. However, I am having difficulty creating
a model dissimilarity structure that is the correct size to call into this
function.
I have six experimental conditions. The 6x6 dissimilarity model I want to
feed into this analysis looks like this:
from mvpa2.tutorial_suite import *
input_model =
dataset_wizard([[0,0,0,1,1,1],[0,0,0,1,1,1],[0,0,0,1,1,1],[1,1,1,0,0,0],
[1,1,1,0,0,0],[1,1,1,0,0,0]])
labels = ['SA', 'SV', 'SN', 'WA', 'WV', 'WN']
input_model.shape
def plot_mtx(mtx, label, title):
pl.figure()
pl.imshow(mtx, interpolation='nearest')
pl.xticks(range((len(mtx))),label, rotation=-45)
pl.yticks(range(len(mtx)), label)
pl.title(title)
pl.clim((0,1))
pl.colorbar()
plot_mtx(input_model, labels, 'Input modality model')
#### Relevant code ######
# Load in dataset
ds = fmri_dataset(samples = samples, mask = mask, chunks = sa['chunks'],
targets = sa['targets'])
ds = remove_invariant_features(ds)
# mean condition samples
from mvpa2.mappers.fx import mean_group_sample
mtgs = mean_group_sample(['targets'])
mtds = mtgs(ds)
# dissimilarity matrix done in searchlight form
from mvpa2.measures.searchlight import sphere_searchlight
dsm = rsa.PDist(square=False)
sl = sphere_searchlight(dsm,3)
slres = sl(mtds)
# Use PDistTargetSimilarity to see where in the brain we find dissimilarity
structures similar to the predefined model
tdsm = rsa.PDistTargetSimilarity(input_model)
#using a searchlight
from mvpa2.base.learner import ChainLearner
from mvpa2.mappers.shape import TransposeMapper
sl_tdsm = sphere_searchlight(ChainLearner([tdsm, TransposeMapper()]),2)
slres_tdsm = sl_tdsm(mtds)
###### Error message ######
ValueError: operands could not be broadcast together with shapes (15) (6,6)
I realise this is because I have a vector vs. 6x6 matrix. I assume I need
to create a vector that reflects the off diagonal dissimilarity structure
for my input_model? If so, is there a simple way to do this? If this is not
the correct answer, how do I create a compatible model?
Thanks in advance,
Charlotte
Charlotte Murphy
PhD Student
Department of Psychology
University of York,
Heslington, York, YO10 5DD, UK
Email: cem552 at york.ac.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/attachments/20150526/60f38a07/attachment.html>
More information about the Pkg-ExpPsy-PyMVPA
mailing list