Changeset 174


Ignore:
Timestamp:
Sep 1, 2011, 1:16:50 PM (6 years ago)
Author:
tjniskan
Message:
  • Added first alpha version for Bruker data support.

NOTE: Only reconstructed 2dseq files work at this time. This is the first alpha version so caution is adviced...

M aedes_getfilefilter.m
A aedes_readbruker.m
M aedes_data_read.m
M aedes_revision.m
M aedes_getdataformat.m

Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • aedes_data_read.m

    r147 r174  
    420420    DATA=[];
    421421    error(lasterr)
    422   end
    423  
    424  
     422        end
     423 
     424        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     425  % Read Bruker file formats
     426  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     427        case {'bruker_raw','bruker_reco'}
     428
     429                % Read Bruker data file
     430                DATA = aedes_readbruker(filename);
     431               
     432               
    425433  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    426434  % Read DICOM image files (DCM)
  • aedes_getdataformat.m

    r151 r174  
    33%
    44%
    5 % Synopsis: 
     5% Synopsis:
    66%       dataformat=aedes_getdataformat(filename);
    77%
     
    1313%       The possible identifier strings are:
    1414%
    15 %       'vnmr'      <-> Varian FID-file
    16 %       'nifti'     <-> NIfTI or Analyze 7.5 format file
    17 %       'sur'       <-> S.M.I.S. SUR-File
    18 %       'dcm'       <-> DICOM File
    19 %       'spect/ct'  <-> Gamma Medica SPECT/CT File
    20 %       'mat'       <-> Matlab MAT-File
    21 %       'roi'       <-> Aedes ROI-File
    22 %       'fdf'       <-> Varian FDF-File
     15%       'vnmr'        <-> Varian FID-file
     16%       'bruker_raw'  <-> Bruker FID-file
     17%       'bruker_reco' <-> Bruker reconstructed 2dseq file
     18%       'nifti'       <-> NIfTI or Analyze 7.5 format file
     19%       'sur'         <-> S.M.I.S. SUR-File
     20%       'dcm'         <-> DICOM File
     21%       'spect/ct'    <-> Gamma Medica SPECT/CT File
     22%       'mat'         <-> Matlab MAT-File
     23%       'roi'         <-> Aedes ROI-File
     24%       'fdf'         <-> Varian FDF-File
    2325%
    2426% Examples:
     
    2729%       AEDES, AEDES_DATA_READ
    2830
    29 % This function is a part of Aedes - A graphical tool for analyzing 
     31% This function is a part of Aedes - A graphical tool for analyzing
    3032% medical images
    3133%
    3234% Copyright (C) 2006 Juha-Pekka Niskanen <Juha-Pekka.Niskanen@uku.fi>
    33 % 
     35%
    3436% Department of Physics, Department of Neurobiology
    3537% University of Kuopio, FINLAND
     
    4547% Check number of arguments
    4648if nargin==0
    47   error('Too few input arguments')
     49        error('Too few input arguments')
    4850elseif nargin>1
    49   error('Too many input arguments')
     51        error('Too many input arguments')
    5052end
    5153
     
    5456[f_path,f_name,f_ext] = fileparts(filename);
    5557if isempty(f_path)
    56   f_path = [pwd,filesep];
     58        f_path = [pwd,filesep];
    5759else
    58   f_path=[f_path,filesep];
     60        f_path=[f_path,filesep];
    5961end
    6062
    6163% Check if is gzipped NIfTI
    6264if strcmpi(f_ext,'.gz') && length(f_name)>3 && ...
    63         strcmpi(f_name(end-3:end),'.nii')
    64   f_name = f_name(1:length(f_name)-4);
    65   f_ext = '.nii.gz';
     65                strcmpi(f_name(end-3:end),'.nii')
     66        f_name = f_name(1:length(f_name)-4);
     67        f_ext = '.nii.gz';
    6668end
    6769
    6870if isempty(f_ext)
    69   if strcmpi(f_name,'fid')
    70         dataformat = 'vnmr';
    71         return
    72   else
    73         % Check if the file is a DICOM file which can many times be without
    74         % file extension
    75         fid = fopen(filename,'r');
    76         if fid < 0
    77           return
    78         end
    79        
    80         % Seek over the possible DICOM preamble
    81         status = fseek(fid,128,-1);
    82         if status == -1
    83           % Unknown data format
    84           fclose(fid);
    85           return
    86         end
    87        
    88         % Try to read the 4 byte DICOM prefix
    89         [str,count] = fread(fid,4,'char');
    90         if count~=4
    91           fclose(fid);
    92           return
    93         end
    94         str = char(str.');
    95         if strcmp(str,'DICM')
    96           dataformat = 'dcm';
    97         end
    98         fclose(fid);
    99         return
    100   end
    101 elseif strcmpi(f_ext,'.fid')
    102   dataformat = 'vnmr';
    103 else
    104   if strcmpi(f_ext,'.xxm')
    105         dataformat='spect/ct';
    106   elseif any(strcmpi(f_ext,{'.nii','.nii.gz','.hdr','.img'}))
    107         dataformat = 'nifti';
    108         if strcmpi(f_ext,'.hdr')
    109           % Check if data is in Analyze/NIfTI or SPECT/CT format
    110          
    111           % Try to open the file for reading
    112           fid = fopen(filename,'r');
    113           if fid<0
     71        if strcmpi(f_name,'fid')
     72                % Check if the file is a Bruker or Varian FID file
     73                if exist([f_path,'procpar'],'file') == 2
     74                        dataformat = 'vnmr';
     75                else
     76                        dataformat = 'bruker_raw';
     77                end
    11478                return
    115           end
    116 
    117           % Read 10 characters from the start
    118           [ident_str,count] = fread(fid,10,'char');
    119           if count~=10
    120                 dataformat = '';
     79        elseif strcmpi(f_name,'2dseq')
     80                dataformat = 'bruker_reco';
     81                return
     82        else
     83                % Check if the file is a DICOM file which can many times be without
     84                % file extension
     85                fid = fopen(filename,'r');
     86                if fid < 0
     87                        return
     88                end
     89               
     90                % Seek over the possible DICOM preamble
     91                status = fseek(fid,128,-1);
     92                if status == -1
     93                        % Unknown data format
     94                        fclose(fid);
     95                        return
     96                end
     97               
     98                % Try to read the 4 byte DICOM prefix
     99                [str,count] = fread(fid,4,'char');
     100                if count~=4
     101                        fclose(fid);
     102                        return
     103                end
     104                str = char(str.');
     105                if strcmp(str,'DICM')
     106                        dataformat = 'dcm';
     107                end
    121108                fclose(fid);
    122109                return
    123           end
    124          
    125           if strcmp(char(ident_str).','!INTERFILE')
    126                 dataformat = 'spect/ct';
    127           else
     110        end
     111elseif strcmpi(f_ext,'.fid')
     112        dataformat = 'vnmr';
     113else
     114        if strcmpi(f_ext,'.xxm')
     115                dataformat='spect/ct';
     116        elseif any(strcmpi(f_ext,{'.nii','.nii.gz','.hdr','.img'}))
    128117                dataformat = 'nifti';
    129           end
    130         end
    131   elseif any(strcmpi(f_ext(2:end),...
    132           {'t1r','s1r','t2r','s2r','t1','t2','s1','s2','df','sf','r2','b1'}))
    133         % This file is probably Matlab MAT-file but could also be in the old
    134         % S.M.I.S. SUR-Format...
    135         fid = fopen(filename,'r');
    136         if fid < 0
    137           return
    138         end
    139        
    140         % The first 6 characters in MAT-File should be MATLAB
    141         [str,count]=fread(fid,6,'char');
    142         if count~=6
    143           fclose(fid);
    144           return
    145         end
    146         str = char(str).';
    147         if strcmpi(str,'MATLAB')
    148           dataformat = 'mat';
    149         else
    150           dataformat = 'sur';
    151         end
    152   elseif strcmpi(f_ext,'.sgl')
    153     dataformat = 'swift_sgl';
     118                if strcmpi(f_ext,'.hdr')
     119                        % Check if data is in Analyze/NIfTI or SPECT/CT format
     120                       
     121                        % Try to open the file for reading
     122                        fid = fopen(filename,'r');
     123                        if fid<0
     124                                return
     125                        end
     126                       
     127                        % Read 10 characters from the start
     128                        [ident_str,count] = fread(fid,10,'char');
     129                        if count~=10
     130                                dataformat = '';
     131                                fclose(fid);
     132                                return
     133                        end
     134                       
     135                        if strcmp(char(ident_str).','!INTERFILE')
     136                                dataformat = 'spect/ct';
     137                        else
     138                                dataformat = 'nifti';
     139                        end
     140                end
     141        elseif any(strcmpi(f_ext(2:end),...
     142                        {'t1r','s1r','t2r','s2r','t1','t2','s1','s2','df','sf','r2','b1'}))
     143                % This file is probably Matlab MAT-file but could also be in the old
     144                % S.M.I.S. SUR-Format...
     145                fid = fopen(filename,'r');
     146                if fid < 0
     147                        return
     148                end
     149               
     150                % The first 6 characters in MAT-File should be MATLAB
     151                [str,count]=fread(fid,6,'char');
     152                if count~=6
     153                        fclose(fid);
     154                        return
     155                end
     156                str = char(str).';
     157                if strcmpi(str,'MATLAB')
     158                        dataformat = 'mat';
     159                else
     160                        dataformat = 'sur';
     161                end
     162        elseif strcmpi(f_ext,'.sgl')
     163                dataformat = 'swift_sgl';
    154164        else
    155165                dataformat = lower(f_ext(2:end)); % Remove the dot
     
    180190                end
    181191               
    182   end
    183  
    184  
     192        end
     193       
     194       
    185195end
    186196
  • aedes_getfilefilter.m

    r132 r174  
    3131
    3232
    33 filefilt = {['fid;*.hdr;*.nii;*.nii.gz;*.sur;',...
     33filefilt = {['fid;2dseq;*.hdr;*.nii;*.nii.gz;*.sur;',...
    3434  '*.mri;*.dcm;',...
    3535  '*.xxm;*.mat;*.t1r;*.s1r;*.fdf;*.sgl;',...
    3636  '*.t2r;*.s2r;*.t1;*.t2;*.s1;*.s2;*.df;',...
    3737  '*.sf;*.r2;*.b1;*.roi'],'All Supported Files';...
    38   'fid','Varian FID-files (fid)';...
     38  'fid','Varian or Bruker FID-files (fid)';...
     39        '2dseq','Bruker reconstructed files (2dseq)';...
    3940  '*.hdr;*.nii;*.nii.gz','NIfTI and Analyze 7.5 files (*.nii,*.nii.gz,*.hdr)';...
    4041  '*.sur','S.M.I.S. Image files (*.sur)';...
  • aedes_revision.m

    r173 r174  
    9393% bash-script every time it is called so that this file "aedes_revision.m" is
    9494% always in the list of committed files. DO NOT EDIT THE NEXT LINE!!!
    95 % - SVN Hook -
     95% - Svn Hook -
Note: See TracChangeset for help on using the changeset viewer.

Powered by Trac 1.0.9.Copyright © Juha-Pekka Niskanen 2008