Wiki

Clone wiki

UFF / other_formats / The Duke format

Duke-icon.jpg

ooMaT is an object-oriented MATLAB for N-Dimensional data processing. The tool is created around a datacontainer class that contains the dataset and maintains a structure describing the dataset. The tool can be obtained from https://gitlab.oit.duke.edu/ultrasound/ooMat

Data container class

The data container contains the data and the structure describing the dataset. Additionally, it keep a log of all the operations carried on the dataset.

Properties

#!Matlab

        data = [];
        units = '';
        info = '';
        dims = struct();
        params = struct();
        log = '';

Constructor call

#!Matlab

 %DATACONTAINER Construct new datacontainer
        %obj = DATACONTAINER(data,dims,varargin)
        %obj = DATACONTAINER(datastruct)
        %
        %DATACONTAINER creates a datacontainer from a dataset, dimensions,
        %and parameters. When called on a single argument, the argument
        %must be a complete datacontainer object, or else a structure with 
        %the equivalent fields for dimensions and parameters.
        %
        %INPUTS
        %   data: N-D numeric data
        %   dims: structure containing dimension information. Can be
        %         created from <a href="matlab:helpPopup('datacontainer/datadims')">datacontainer/datadims</a>, or directly,
        %         as a structure with the following fields:
        %           names: 1 x N cell array of the names of the dimensions
        %           units: 1 x N cell array of the units for the dimensions
        %      (names{i}): one field for each dimension, containing the
        %         values of that dimension as a column
        %           additional fields can be provided, such as 'apex' or
        %           'geometry', that may be used for certain specialized
        %           functions.
        %
        %       Additional parameters will be included as property-value
        %       pairs in iqobj.params.
        %
        %See Also: datacontainer/datadims

The data container operating functions

#!matlab

 methods
        %Data Referencing
        self = slice(self,dim,index,varargin)
        self = slicex(self,dim,range,varargin);
        self = permute(self,varargin)
        self = concatenate(self,dim,varargin)
        s = struct(self)
        save(self,filename,overwrite)

        %Data Dimensions
        [dimidx, dimname, dimunit] = getdim(self,dim_name_or_index);
        [self] = setdim(self,dim,dimval,dimname,dimunit)
        self = setunit(self,unit)
        sz = datasize(self,dim)
        isadim = isdim(self,dimname)
        n = ndims(self)
        self = rescale(self,dim,tgtunit,varargin)
        self = rmdim(self,dim)
        self = sortdim(self,dim,mode)
        self = sort(self,dim,mode)
        self = unique(self,dim)
        self = splitdim(self,innerdim,odimname,outer_n,outer_x0);
        self = splicedim(self,innerdim,outerdim)
        grid = ndgrid(self)
        x = dimval(self,dim)
        self = setparam(self,paramname,value,dim)
        [A,B] = broadcast(A,B)

        %Data Display
        h = plot(self,varargin)
        h = plotv(self,varargin)
        str = genlabel(self,dim,index)
        [h, cb] = imagesc(self,varargin)
        M = animate(self,dim,varargin);
        [h, sublabel] = imagetile(self,dim,tilingspec,varargin);
        h = quiver(self,varargin)
        H = xsurf(self,dims,cutidx,varargin)
        h = surfc(self,varargin)
        [imH, imSld] = imageslider(self,dim,varargin);
        [imH, imSld] = imagesliders(self,dim,varargin);
        h = boxplot(self,dim,varargin);
        varargout = imagecolor(self,map,varargin)

        %Scan-Conversion
        self = scanconvert(self,varargin)
        self = cart2pol(self,xdim,ydim,th_rad,r,x0,y0)
        self = pol2cart(self,thdim,rdim,x,y,x0,y0)
        self = plaid2plaid(self,dim1,dim2,xformhandle,y1,y2,varargin)
        self = radon_sum(self,xdim,ydim,x0,dydx)
        self = shear(self,xdim,ydim,dydx,szflag)

        %Data Processing
        self = interp(self,dim,x,method,extrap)
        self = resample(self,dim,k,method,extrap)
        [self, locobj] = subsamplepeak(self,dim)
        self = differentiate(self,dim,spacing)
        self = partial(self,dim,order)
        self = modulate(self,dim,f,phi)
        self = filter(self,dim,cutoff,order,type)
        self = conv(self,g,dim,shape)
        [self, selfminus] = directionalfilter(self,dim1,dim2)
        varargout = gradient(self,dim,k)
        self = fft(self,dim,N)
        self = ifft(self,dim,N)
        self = normalize(self,range)
        self = hamming(self,dim)
        self = tukeywin(self,dim,R)
        self = logcompress(self)
        [shiftobj,ccobj] = normxcorr(self1,dim,self2,ksz_samp,srch_samp,decimationfactor);
        [polyobj, r2obj] = polyfit(self,dim,order)
        self = polyval(polyobj,x)
        stats = anova(self,dim);
        self = stdfilt(self,dim,k)
        self = shift(self,dim,dx)

        %Basic Functions
        self = sum(self,dim)
        [self, locobj] = min(self,dim)
        [self, locobj] = max(self,dim)
        self = mean(self,dim)
        self = median(self,dim)
        self = std(self,dim,n)
        iqrobj = iqr(self,dim);
        self = plus(self,B)
        self = minus(self,B)
        self = times(self,B)
        self = rdivide(self,B)
        self = ldivide(self,B)
        self = sqrt(self)
        self = power(self,B)
        self = abs(self)
        self = angle(self)
        self = real(self)
        self = imag(self)
        self = conj(self)
        self = samplewise(self,fun,varargin)
        iseq = eq(self1,self2)
        noteq = ne(self1,self2)
        is_empty = isempty(self)

Updated