a junior question on mne_setup_source_space

Thanks alex for your help with the scripts.
However in both scripts, it was not specified how -trans.fif was
obtained...
I tried the GUI as described in the manual section 12.11, but it did not
work well. Thus I wish to import the transformation matrix obtained from
other software, but errors happened again(please check my previous posts on
this)...

Peng,
Please see the link
https://mail.nmr.mgh.harvard.edu/pipermail//mne_analysis/2012-October/001259.html

Part of the email as :

Kambiz,

What Dan meant is to read the fif file, change the transform, and write
the file back. I'm not very familiar with the matlab toolbox, but in
mne-python you could do it as follows:

presently in the matlab toolbox there is not a single function for reading
a trans.fif file, but you can easily string together a couple of commands
to do this. This should work on your file. I do recommend familiarizing
yourself with the gui (using the sample data) as manually adjusting the
transformation matrix in matlab is a highly risky business:

[fid, tree, dir] = fiff_open('test-trans.fif')
for t = 1:length(dir)
    if dir(t).kind == FIFF.FIFF_COORD_TRANS
        tag = fiff_read_tag(fid,dir(t).pos)
        break
    end
end
trans = tag.data

Your code did not work, because your fid was not a fif fid (as described in
fiff_write_coord_trans).

HTH
D

It should be straightforward to translate the function for writing
-trans.fif files from Python to Matlab. You can find the function here:

https://github.com/mne-tools/mne-python/blob/master/mne/transforms.py

HTH,

Martin

Thanks, junpeng, though I am not familiar with python.
Thanks, dgw, I will try your way, perhaps also with combination of <
fiff_write_coord_trans>.
The reason I don't use the GUI is that it did not work well in my
environment. For example, when I re-set the location of LAP by clicking, I
saw the coordinates changed (e.g. 10 mm), but not in the graphics, the
green label was still in the original location. Then I used the button to
move the fiducials, this time, Nasion, LAP and RAP always moved together,
although I only chose one... If I accepted this unsatisfied alignment,
later automatic alignment only made it worse. I am using the latest MNE
and freesurfer, in MacOS 10.9.2 on a macbook pro. Maybe there are some
dependency problems with the version of libraries...
So I plan to output a transform matrix generated by other software to
-trans.fif format, and then load it to visualize in mne_analyze. Modify it
outside if not appropriate (it is quite possible that different software
define XYZ in a different way.), then visualize in mne_analyze again. It
sound painful, but I don't have better solutions other than that.

Hi Peng,

I think you missed a step or two when trying to do the alignment. First you
select all three positions(LAP, RAP, and Nasion) on the bem surface. Follow
these sentences exactly:

You push LAP then select the point on the surface (matching your digitized
location). Next,
You push Nasion then select the point on the surface (matching your
digitized location). Next,
You push RAP then select the point on the surface (matching your digitized
location). Next,
You push align using fiducials.

You must change all three first then push align using fiducials only then
will you be able to get a good initial fit.

HTH,
D

Hi dgw,

   First thanks you for help in previous discussions, also thanks alex,
martin, junpeng and many others for helps.
   I have played with the commands for a while and now understand more.
However, I am still not sure how this "morph" works. For example, in the
following command,
   mne_setup_source_space --subject fsaverage --ico 2 --morph subj1
--overwrite
   Previously, I thought with this command, it would took some locations in
the template fsaverage, and then projected them into subj1 based on their
anatomical similarity (e.g. shape of white matter). Or in another words, I
expected that if I repeated this command many times by changing the
subjects, I would have all subjects share the same or at least very close
locations (in cortex level) for the same vertex id. This is interesting for
me because it would give much convenience in later group analysis. e.g.
location #100 of subject 1 and location #100 of subject 2 means the same
thing in group level. However, later I applied the labels in freesurfer and
found out that for the same id (e.g. #100) may belong to different brain
areas (as indicated by labels). I am a little confused then. Is this
difference cause by small variations; or I was wrong in the root : This
morph does not grantee a one-to-one mapping between template and each
subject?
   Thanks a lot for the help!

best
Peng

Hi Peng,

I think the basic point here is you have the logic reversed. The idea
behind the morph option is that you would use --subject subj1 and
--morph fsaverage. You would then do this for all of your subjects.
Although with such a tiny number of sources (--ico 2), I wouldn't
expect to get very good results.

HTH,
D

Thanks for the reply, dgw. Do you mean the segmentation is made in
fsaverage and then project to subject by

Hi Peng,

Please see response in text.

Thanks for the reply, dgw. Do you mean the segmentation is made in fsaverage
and then project to subject by

mne_setup_source_space --subject subj1 --ico 2 --morph fsaverage

I tried this way before and it always failed with the error message that
vertex XXX was used multiple times, no matter which resolution I use (ico 2,
3, 4 or 5). It seemed the resolution of fsaverage is not so high (2 mm),
thus I tried icbm152 and colin27 (both 1 mm resolution), and it did not work
either. Do you have any idea on possible reasons?

Well, we would need to get an error report to try and track this down.
There is a useful chart in the morphing and averaging chapter which
describes the pipeline you are trying to use. Essentially, it is a
multistep process. Because MNE tries to provide you the best possible
estimates, you first analyze the data in the individuals space
(vertices don't match). Then you morph that data for each individual
to a shared space (e.g. fsaverage). Each individuals morphed data will
then have a one to one mapping.

I just made ico 2 here as an example. Of course I am also interested to know
what is the minimum number you think appropriate for reasonable mapping?

This depends on your application of the "loose" ness of your
orientation constraint. Something like --ico 5 and --loose .2

Thank you for the reply. I have attached the message on the screen as a txt
file after implementing the line below. Hope it helps.

mne_setup_source_space --subject sub03 --ico 2 --morph fsaverage

I read the chapter and I guess in the above line, it should be FROM sub3 TO
fsaverage in morphing.

If I wish to set all source space points anatomically equivalent,
<--subject fsaverage --morph subxx> shall work better. Because the
locations with same id in different subjects are at exactly same position
in fsaverage, and then morphed to various subjects, being different because
of different morphing matrix. Or I am wrong because in
mne_setup_source_space there are other components not explained in the
chapter?

best

Peng

Hi Peng,

Please see response in text.

> Thanks for the reply, dgw. Do you mean the segmentation is made in
fsaverage
> and then project to subject by
> ====
> mne_setup_source_space --subject subj1 --ico 2 --morph fsaverage
> ====
> I tried this way before and it always failed with the error message that
> vertex XXX was used multiple times, no matter which resolution I use
(ico 2,
> 3, 4 or 5). It seemed the resolution of fsaverage is not so high (2 mm),
> thus I tried icbm152 and colin27 (both 1 mm resolution), and it did not
work
> either. Do you have any idea on possible reasons?

Well, we would need to get an error report to try and track this down.
There is a useful chart in the morphing and averaging chapter which
describes the pipeline you are trying to use. Essentially, it is a
multistep process. Because MNE tries to provide you the best possible
estimates, you first analyze the data in the individuals space
(vertices don't match). Then you morph that data for each individual
to a shared space (e.g. fsaverage). Each individuals morphed data will
then have a one to one mapping.

> I just made ico 2 here as an example. Of course I am also interested to
know
> what is the minimum number you think appropriate for reasonable mapping?

This depends on your application of the "loose" ness of your
orientation constraint. Something like --ico 5 and --loose .2

>
> btw: I hope it is OK when I address you as dgw; that's what I saw as the
> email sender. Please correct me if it is not what you like.
>
> best
> Peng
>
>
>>
>> Hi Peng,
>>
>> I think the basic point here is you have the logic reversed. The idea
>> behind the morph option is that you would use --subject subj1 and
>> --morph fsaverage. You would then do this for all of your subjects.
>> Although with such a tiny number of sources (--ico 2), I wouldn't
>> expect to get very good results.
>>
>> HTH,
>> D
>>
>> > Hi dgw,
>> >
>> > First thanks you for help in previous discussions, also thanks
alex,
>> > martin, junpeng and many others for helps.
>> > I have played with the commands for a while and now understand
more.
>> > However, I am still not sure how this "morph" works. For example, in
the
>> > following command,
>> > mne_setup_source_space --subject fsaverage --ico 2 --morph subj1
>> > --overwrite
>> > Previously, I thought with this command, it would took some
locations
>> > in
>> > the template fsaverage, and then projected them into subj1 based on
>> > their
>> > anatomical similarity (e.g. shape of white matter). Or in another
words,
>> > I
>> > expected that if I repeated this command many times by changing the
>> > subjects, I would have all subjects share the same or at least very
>> > close
>> > locations (in cortex level) for the same vertex id. This is
interesting
>> > for
>> > me because it would give much convenience in later group analysis.
e.g.
>> > location #100 of subject 1 and location #100 of subject 2 means the
same
>> > thing in group level. However, later I applied the labels in
freesurfer
>> > and
>> > found out that for the same id (e.g. #100) may belong to different
brain
>> > areas (as indicated by labels). I am a little confused then. Is this
>> > difference cause by small variations; or I was wrong in the root :
This
>> > morph does not grantee a one-to-one mapping between template and each
>> > subject?
>> > Thanks a lot for the help!
>> >
>> > best
>> > Peng
>> >
>> >
>> >
>> >>
>> >> That certainly is the basic workflow in terms of commands, but I
don't
>> >> think you want to use the "tmp" subject. You also don't morph the
data
>> >> until later in the process.
>> >>
>> >> Can I recommend that you start off by doing the example in the
>> >> "Cookbook" chapter? It does not take very long, and it will help you
>> >> be more familiar with how the process works in one individual. Then
>> >> you can try to take what you learn from that and apply it directly to
>> >> your data.
>> >>
>> >> HTH,
>> >> D
>> >> .
>> >>
>> >> > Dear Alex, Martin and other MNE users,
>> >> >
>> >> > I have my MEG raw data in CTF .ds format and raw MRI image with
dicom
>> >> > format. I wish to use MNE to compute the leadfield (source space
>> >> > based
>> >> > on
>> >> > surface).
>> >> > With your help, I wish to summarise a possible pipeline as a
>> >> > following:
>> >> > 1. recon-all --subject test1 #use in freesurfer to generate the
>> >> > brain
>> >> > surfaces and other needed files.
>> >> > 2. mne_watershed_bem --subject test1 --overwrite --atlas #generate
>> >> > surfaces
>> >> > for bem model
>> >> > 3. mne_ctf2fiff --ds test1.ds --fif test1.fif --infoonly #generate
>> >> > MEG
>> >> > information (sensor locations etc.)
>> >> > 4. #use MNE_analyze with test1.fif and inflated.surf to generate
>> >> > test1-trans.fif which contains the transformation matrix;
>> >> > #or use a previous calculated transformation matrix and convert
>> >> > it
>> >> > to
>> >> > fif format
>> >> > 5. mne_setup_source_space --subject tmp --ico 5 --morph test1 #tmp
is
>> >> > name
>> >> > of a template, could be fsaverage or icbm152...
>> >> > #This is to use locations on the surface of the template cortex
>> >> > (white
>> >> > matter?) as source space.
>> >> > #These locations was morphed to subject <test1> to generate
leadfield
>> >> > for
>> >> > this subject later
>> >> > 6. mne_do_forward_solution --subject test1 \
>> >> > --src test1-fsaverage-ico-5-src.fif \
>> >> > --meas test1.fif \
>> >> > --trans test1-trans.fif \
>> >> > --megonly --overwrite \
>> >> > --fwd test1-oct-5-fwd.fif
>> >> > # I can then find my leadfield (MxNx3 matrix, M=number of
locations,
>> >> > N =
>> >> > number of sensors) by importing test1-oct-5-fwd.fif into matlab.
>> >> >
>> >> > Did I miss something?
>> >> > Thanks a lot for the help.
>> >> >
>> >> >
>> >> >
>> >> >>
>> >> >> Thank you Martin for the help.
>> >> >> 1. I re-run the command "mne_setup_forward_model" and it seemed
>> >> >> working
>> >> >> this time (maybe I did not set the environment correctly). Sorry
for
>> >> >> the
>> >> >> confusion.
>> >> >> 2. I tried with MNE_analyze GUI and it was not easy for me. But I
>> >> >> saved
>> >> >> results from one subject successfully and it could be load by
>> >> >> MNE_analyze.
>> >> >> However I wanted to read it in matlab to check the real contents
>> >> >> (which
>> >> >> I
>> >> >> assume is a structure with the transformation matrix). I failed
with
>> >> >> "x
>> >> >> =
>> >> >> fiff_read_mri(fname, 0). It complained "Could not find MRI
data"...
>> >> >> Would
>> >> >> please let me know the function name to read and write *-src.fif
>> >> >> file
>> >> >> in
>> >> >> matlab?
>> >> >>
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> > Thank you for the answers.
>> >> >>> > 1. Surprisingly I did not find any files were generated/saved
>> >> >>> > after
>> >> >>> > running mne_setup_forward_model.
>> >> >>>
>> >> >>> I assume there was an error, can you post the program output?
>> >> >>>
>> >> >>> > 2. I don't have a -trans.fif file. I tried to do it in GUI of
>> >> >>> > MNE_analyze, it was quite complicated. If I have a
co-registered
>> >> >>> > mri
>> >> >>> > file (generated by CTF software with .mri extension), can it be
>> >> >>> > converted to fif format? If not, I can read the 4x4 head2mri
>> >> >>> > matrix
>> >> >>> > via
>> >> >>> > matlab, can this information be written to fif format with
>> >> >>> > certain
>> >> >>> > tools
>> >> >>> > in MNE?
>> >> >>>
>> >> >>> There is also a coreg GUI in MNE-Python, have a look here
>> >> >>>
>> >> >>> MNE-Python Coregistration | PPT
>> >> >>>
>> >> >>> You could write a .fif file with the transform in Matlab, but it
>> >> >>> seems
>> >> >>> to me that this wouldn't be easier than using the coregistration
>> >> >>> tools
>> >> >>> in mne_analyze or MNE-Python.
>> >> >>>
>> >> >>> HTH,
>> >> >>>
>> >> >>> Martin
>> >> >>>
>> >> >>>
>> >> >>> > Thanks again!
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > hi,
>> >> >>> >
>> >> >>> > > Some additional questions.
>> >> >>> > > 1 After I ran mne_setup_forward_model, I have no feedback
>> >> >>> > from
>> >> >>> > the
>> >> >>> > command
>> >> >>> > > line, is it normal?
>> >> >>> >
>> >> >>> > it should print that it saved a file to disk
>> >> >>> >
>> >> >>> > > 2 I am using CTF data, thus I converted the .ds folder
from
>> >> >>> > CTF
>> >> >>> > to fif
>> >> >>> > > format with mne_ctf2fiff command, with option --infoonly.
>> >> >>> > Here
>> >> >>> > I
>> >> >>> > only want
>> >> >>> > > to get the Leadfield thus I suppose data is not
necessary.
>> >> >>> > However
>> >> >>> > when I
>> >> >>> > > try mne_do_forward_solution, it asked for mri description
>> >> >>> > file,
>> >> >>> > which I
>> >> >>> > > haven't. I have only a series of dicom files or the .mri
>> >> >>> > file
>> >> >>> > generated by
>> >> >>> > > ctf software from them. Can I still move on?
>> >> >>> >
>> >> >>> > you need to do the coregistration and get a -trans.fif
file.
>> >> >>> >
>> >> >>> > A
>> >> >>> > _______________________________________________
>> >> >>> > Mne_analysis mailing list
>> >> >>> > Mne_analysis at nmr.mgh.harvard.edu
>> >> >>> > <mailto:Mne_analysis at nmr.mgh.harvard.edu>
>> >> >>> >
>> >> >>> > Mne_analysis Info Page
>> >> >>> >
>> >> >>> >
>> >> >>> > The information in this e-mail is intended only for the
>> >> >>> > person
>> >> >>> > to
>> >> >>> > whom it is
>> >> >>> > addressed. If you believe this e-mail was sent to you in
>> >> >>> > error
>> >> >>> > and
>> >> >>> > the e-mail
>> >> >>> > contains patient information, please contact the Partners
>> >> >>> > Compliance
>> >> >>> > HelpLine at
>> >> >>> > MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was
>> >> >>> > sent
>> >> >>> > to
>> >> >>> > you in error
>> >> >>> > but does not contain patient information, please contact
the
>> >> >>> > sender
>> >> >>> > and properly
>> >> >>> > dispose of the e-mail.
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > _______________________________________________
>> >> >>> > Mne_analysis mailing list
>> >> >>> > Mne_analysis at nmr.mgh.harvard.edu
>> >> >>> > Mne_analysis Info Page
>> >> >>> >
>> >> >>>
>> >> >>> _______________________________________________
>> >> >>> Mne_analysis mailing list
>> >> >>> Mne_analysis at nmr.mgh.harvard.edu
>> >> >>> Mne_analysis Info Page
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Mne_analysis mailing list
>> >> > Mne_analysis at nmr.mgh.harvard.edu
>> >> > Mne_analysis Info Page
>> >> >
>> >> >
>> >> > The information in this e-mail is intended only for the person to
>> >> > whom
>> >> > it is
>> >> > addressed. If you believe this e-mail was sent to you in error and
>> >> > the
>> >> > e-mail
>> >> > contains patient information, please contact the Partners
Compliance
>> >> > HelpLine at
>> >> > MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to
>> >> > you
>> >> > in
>> >> > error
>> >> > but does not contain patient information, please contact the sender
>> >> > and
>> >> > properly
>> >> > dispose of the e-mail.
>> >> >
>> >> _______________________________________________
>> >> Mne_analysis mailing list
>> >> Mne_analysis at nmr.mgh.harvard.edu
>> >> Mne_analysis Info Page
>> >
>> >
>> >
>> > _______________________________________________
>> > Mne_analysis mailing list
>> > Mne_analysis at nmr.mgh.harvard.edu
>> > Mne_analysis Info Page
>> >
>> >
>> > The information in this e-mail is intended only for the person to whom
>> > it is
>> > addressed. If you believe this e-mail was sent to you in error and the
>> > e-mail
>> > contains patient information, please contact the Partners Compliance
>> > HelpLine at
>> > MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to
you
>> > in
>> > error
>> > but does not contain patient information, please contact the sender
and
>> > properly
>> > dispose of the e-mail.
>> >
>> _______________________________________________
>> Mne_analysis mailing list
>> Mne_analysis at nmr.mgh.harvard.edu
>> Mne_analysis Info Page
>
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> Mne_analysis Info Page
>
>
> The information in this e-mail is intended only for the person to whom
it is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to you
in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
Mne_analysis Info Page

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140501/b5a55fad/attachment.html
-------------- next part --------------
mne_make_source_space version 2.6 compiled at Jun 4 2012 05:32:18

Loading /Users/me/mySubjects/sub03/surf/lh.white...
Triangle file : created by me on Wed Feb 5 21:42:37 2014 nvert = 149329 ntri = 298654
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[895962 distances done]
Doing the icosahedral vertex picking...
Loading geometry from /Users/me/mySubjects/sub03/surf/lh.sphere...
Triangle file : created by me on Wed Feb 5 22:29:10 2014 nvert = 149329 ntri = 298654
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[960 distances done]
Mapping lh sub03 -> ico (2) ...[done]
Setting up the triangulation for the decimated surface...
loaded lh.white 162/149329 selected to source space (ico = 2)
Loading /Users/me/mySubjects/fsaverage/surf/lh.white...
Triangle file : created by nicks on Tue Aug 14 13:43:20 2007 nvert = 163842 ntri = 327680
  Warning : zero size triangle # 3
  Warning : zero size triangle # 4
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[983040 distances done]
loaded lh.white of fsaverage 163842/163842 selected to source space (ico = 2)

Loading /Users/me/mySubjects/sub03/surf/rh.white...
Triangle file : created by me on Thu Feb 6 00:40:08 2014 nvert = 152314 ntri = 304624
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[913872 distances done]
Doing the icosahedral vertex picking...
Loading geometry from /Users/me/mySubjects/sub03/surf/rh.sphere...
Triangle file : created by me on Thu Feb 6 01:39:51 2014 nvert = 152314 ntri = 304624
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[960 distances done]
Mapping rh sub03 -> ico (2) ...[done]
Setting up the triangulation for the decimated surface...
loaded rh.white 162/152314 selected to source space (ico = 2)
Loading /Users/me/mySubjects/fsaverage/surf/rh.white...
Triangle file : created by nicks on Tue Aug 14 14:10:55 2007 nvert = 163842 ntri = 327680
  Warning : zero size triangle # 3
  Warning : zero size triangle # 4
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[983040 distances done]
loaded rh.white of fsaverage 163842/163842 selected to source space (ico = 2)

Loading /Users/me/mySubjects/sub03/surf/lh.sphere.reg...
Triangle file : created by me on Wed Feb 5 22:55:55 2014 nvert = 149329 ntri = 298654
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[895962 distances done]

Loading /Users/me/mySubjects/fsaverage/surf/lh.sphere.reg...
Triangle file : created by greve on Thu Jun 8 19:17:51 2006 nvert = 163842 ntri = 327680
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[983040 distances done]

Loading /Users/me/mySubjects/sub03/surf/rh.sphere.reg...
Triangle file : created by me on Thu Feb 6 02:09:24 2014 nvert = 152314 ntri = 304624
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[913872 distances done]

Loading /Users/me/mySubjects/fsaverage/surf/rh.sphere.reg...
Triangle file : created by greve on Thu Jun 8 19:17:51 2006 nvert = 163842 ntri = 327680
  Triangle and vertex normals and neighboring triangles...[done]
  Vertex neighbors...[done]
  Distances between neighboring vertices...[983040 distances done]

Mapping lh fsaverage -> sub03 (nearest neighbor)...[done]
Mapping rh fsaverage -> sub03 (nearest neighbor)...[done]
Source space vertex moved from 126576 to 126577 because of double occupation.
Source space vertex moved from 126577 to 126575 because of double occupation.
Source space vertex moved from 126577 to 27915 because of double occupation.
Source space vertex moved from 97036 to 61885 because of double occupation.
Source space vertex moved from 61886 to 61887 because of double occupation.
Source space vertex moved from 61885 to 97037 because of double occupation.
Source space vertex moved from 97036 to 43668 because of double occupation.
Source space vertex moved from 27916 to 61888 because of double occupation.
Source space vertex moved from 61887 to 61889 because of double occupation.
Source space vertex moved from 61885 to 5269 because of double occupation.
Source space vertex moved from 97037 to 97038 because of double occupation.
Source space vertex moved from 43670 to 43671 because of double occupation.
Source space vertex moved from 158633 to 97041 because of double occupation.
vertex 61887 would be used multiple times.
Source space creation failed
Temporary files removed.

Unless someone can track down what the problem is you ran into (it may
be related to the extremely low ico number, which I mentioned in my
previous email: feel free to try some others), I would stick to the
following analysis (mostly because I believe this is the more common
workflow, and I am unfamiliar with that option in
mne_setup_source_space):

Do the inverse on all of your subjects without using the --morph
option including setting up the source space.

Next, create the morph maps for each subject to something like
fsaverage (or even an individual from your analysis).

Next, morph the stcs to whichever you created the morph maps to.

Then you can perform whatever steps you originally wanted to on that
morphed data (which will have a one to one correspondence).

HTH,
D

Thank you for the suggestion, dgw.

best
Peng