Hi,
Thanks for your reply, and I get these dims by using nibabel, simply
like this:
*import nibabel as nib*
*print(nib.load(*.nii.gz).get_header())*
then it would return header info about *.nii.gz, and dim info is
included in it. I tried load and get header both from
*fmcpr.up.sm0.self.lh.nii.gz* and*fmcpr.up.sm0.fsaverage.lh.nii.gz*,
and only self data has this negative dim issue and cannot be read by
*nib.get_data()*, fsaverage data has normal dim and can be read.
Besides, I tried your advice and email to nibabel mailing list, they
replied to me just as what Christopher said, that is to encourage
FreeSurfer to move toward writing NIfTI-2.
Best,
Bai Haohao
On Fri, Jul 28, 2017 at 1:11 AM, Douglas N Greve
<[email protected] <mailto:[email protected]>> wrote:
where are you getting those dims?
On 07/27/2017 09:24 AM, Bai Haohao wrote:
> Hi,
>
> Thanks for your reply. I tried mri_surf2surf --reshape or many other
> methods but none of them could help.
>
> Then based on your explanation, I tried *mri_convert *.nii.gz
*.mgz*,
> and I could get data from mgz file, it really helps me, thank you!
>
> Besides, I am interested in the difference of dimension between
> "-surface self"*(dim: -1 1 1)* and "-surface fsaverage"*(dim:
27307 1
> 6)*, why does the dimension of "-surface fsaverage" be set like this
> but "-surface self" do not? Is it possible to set the dimension of
> "-surface self" during preprocessing to make sure every number
is less
> than 32k?
>
> Best,
>
> Bai Haohao
>
>
>
> On Thu, Jul 6, 2017 at 7:07 AM, Douglas Greve
> <[email protected] <mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>> wrote:
>
> When the nifti standard was adopted, they used a short int to
> represent the dimensions. Unfortunately, this only allows for a
> maximum dimension of 32k, which is not big enough for
surfaces. So
> I hacked the FS nifti format to put a -1 as the first dim at
which
> point the FS code will go to another place in the header to get
> the spatial dimensions. It is possible to reshape the spatial
> dimensions as long as the largest prime factor is less than 32k
> (see mri_surf2surf with --reshape option). Other than that, you
> might ask the nibabel people to program the same hack.
>
>
> On 6/25/17 6:48 AM, Bai Haohao wrote:
>> Hello Freesurfer experts,
>>
>> I am running my data with preproc-sess to project my func
data to
>> individual anatomy file, and the command shows as below:
>>
>> preproc-sess -sf ${Sesslist} -fsd "bold" -surface self lhrh
>> -fwhm 0 -per-run -force
>>
>>
>> And the subjectname point to the subject dir that created after
>> recon-all.
>>
>> After the running completed, I try to load data from
>> fmcpr.sm0.self.lh.nii.gz with nibabel, and I get this error
info:
>>
>> >>> f.get_data()
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File
>>
"/usr/lib/pymodules/python2.7/nibabel/spatialimages.py", line
>> 341, in get_data
>> return np.asanyarray(self._data)
>> File
>> "/usr/lib/python2.7/dist-packages/numpy/core/numeric.py",
>> line 512, in asanyarray
>> return array(a, dtype, copy=False, order=order,
subok=True)
>> File
"/usr/lib/pymodules/python2.7/nibabel/arrayproxy.py",
>> line 55, in __array__
>> self._data = self._read_data()
>> File
"/usr/lib/pymodules/python2.7/nibabel/arrayproxy.py",
>> line 60, in _read_data
>> data = self.header.data_from_fileobj(fileobj)
>> File "/usr/lib/pymodules/python2.7/nibabel/analyze.py",
>> line 486, in data_from_fileobj
>> data = self.raw_data_from_fileobj(fileobj)
>> File "/usr/lib/pymodules/python2.7/nibabel/analyze.py",
>> line 458, in raw_data_from_fileobj
>> return array_from_file(shape, dtype, fileobj, offset)
>> File
"/usr/lib/pymodules/python2.7/nibabel/volumeutils.py",
>> line 493, in array_from_file
>> raise IOError(msg)
>> IOError: Expected -1804 bytes, got 264809160 bytes from
file
>> "fmcpr.vol2surf.lh.nii.gz"
>> - could the file be damaged?
>>
>>
>> Then I check the file header by nibabel, and I get this:
>>
>>
>> >>> print(f.get_header())
>> <class 'nibabel.nifti1.Nifti1Header'> object, endian='<'
>> sizeof_hdr : 348
>> data_type :
>> db_name :
>> extents : 0
>> session_error : 0
>> regular :
>> dim_info : 0
>> dim : [ 4 -1 1 1 451 1 1 1]
>> intent_p1 : 0.0
>> intent_p2 : 0.0
>> intent_p3 : 0.0
>> intent_code : none
>> datatype : float32
>> bitpix : 32
>> slice_start : 0
>> pixdim : [-1. 1. 1. 1.
>> 2.00000072 1. 1.
>> 1. ]
>> vox_offset : 352.0
>> scl_slope : 0.0
>> scl_inter : 0.0
>> slice_end : 0
>> slice_code : unknown
>> xyzt_units : 10
>> cal_max : 0.0
>> cal_min : 0.0
>> slice_duration : 0.0
>> toffset : 0.0
>> glmax : 0
>> glmin : 146790
>> descrip : FreeSurfer May 13 2013
>> aux_file :
>> qform_code : scanner
>> sform_code : scanner
>> quatern_b : -0.0115927606821
>> quatern_c : -0.996071338654
>> quatern_d : -0.0864994972944
>> qoffset_x : 73344.5546875
>> qoffset_y : -1492.14978027
>> qoffset_z : -2311.28955078
>> srow_x : [ -9.99280393e-01 2.56918129e-02
2.79041883e-02
>> 7.33445547e+04]
>> srow_y : [ 2.04970520e-02 9.84766901e-01
-1.72667429e-01
>> -1.49214978e+03]
>> srow_z : [ 3.19152586e-02 1.71971247e-01
9.84584868e-01
>> -2.31128955e+03]
>> intent_name :
>> magic : n+1
>>
>>
>>
>>
>> Note that the dim has value -1, but when I use -surface
>> fsaverage, the dim is correct(show as below):
>>
>> dim : [ 4 27307 1 6 451 1 1
>> 1]
>>
>>
>> And I read the source code, the difference between self and
>> fsaverage is appeared when running rawfunc2surf-sess, and log
>> files are attached.
>>
>> I have tried many commands to load data from
>> fmcpr.sm0.self.lh.nii.gz, such as fslview, freeview,
mri_convert,
>> mri_surf2surf, ...
>>
>> and only tksurfer could read this file by -timecourse
>> fmcpr.sm0.self.lh.nii.gz.
>>
>> I want to figure out how could I fix it, and any suggestion
would
>> be helpful.
>>
>> Thanks in advance,
>>
>> Bai Haohao
>>
>>
>> Version info:
>> System: ubuntu-16.04.1-server-amd64
>> Freesurfer:
freesurfer-Linux-centos4_x86_64-stable-pub-v5.3.0-HCP
>> nibabel: python-nibabel 1.2.2-1
>>
>>
>>
>> _______________________________________________
>> Freesurfer mailing list
>> [email protected]
<mailto:[email protected]>
>> <mailto:[email protected]
<mailto:[email protected]>>
>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>
>> <https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>>
>
>
> _______________________________________________
> Freesurfer mailing list
> [email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>
> <https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>>
>
>
> 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
> http://www.partners.org/complianceline
<http://www.partners.org/complianceline>
> <http://www.partners.org/complianceline
<http://www.partners.org/complianceline>> . 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.
>
>
>
>
> _______________________________________________
> Freesurfer mailing list
> [email protected]
<mailto:[email protected]>
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>
--
Douglas N. Greve, Ph.D.
MGH-NMR Center
[email protected] <mailto:[email protected]>
Phone Number: 617-724-2358 <tel:617-724-2358>
Fax: 617-726-7422 <tel:617-726-7422>
Bugs: surfer.nmr.mgh.harvard.edu/fswiki/BugReporting
<http://surfer.nmr.mgh.harvard.edu/fswiki/BugReporting>
FileDrop: https://gate.nmr.mgh.harvard.edu/filedrop2
<https://gate.nmr.mgh.harvard.edu/filedrop2>
www.nmr.mgh.harvard.edu/facility/filedrop/index.html
<http://www.nmr.mgh.harvard.edu/facility/filedrop/index.html>
Outgoing:
ftp://surfer.nmr.mgh.harvard.edu/transfer/outgoing/flat/greve/
<ftp://surfer.nmr.mgh.harvard.edu/transfer/outgoing/flat/greve/>
_______________________________________________
Freesurfer mailing list
[email protected] <mailto:[email protected]>
https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
<https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer>
_______________________________________________
Freesurfer mailing list
[email protected]
https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer