BioMAP Library Help

Last modified: Tue Sep 28 14:25:54 2004.


List of Routines


Routine Descriptions

FMDIO_BLOCKVOLUMES

[Next Routine] [List of Routines]

  NAME:
	fMDIO_BlockVolumes

  PURPOSE:
       Multiple acquisitions of a MDI-Object are blocked to form a "shorter"
	series 

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fMDIO_BlockVolumes(MDIO, BlockingFactor, Status = Status)

  INPUTS:
	MDIO		: A structure containing the image data. It must be created
			  by the function fBMT_CreateMDIObject().
	BlockingFactor	: The number if volumes, which should be grouped (blocked)

 OPTIONAL INPUT PARAMETERS:
	None

  KEYWORD PARAMETERS:
       Status		: on exit, -1 is returned if an error has occurred, 1 on success

  OUTPUTS:
	MDI-Object containing the blocked data


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 PROCEDURE:
       The data of volumes from 0,..,BlockingFactor-1; BlockingFactor,..., 
	2*BlockingFactor-1 is averaged. 

 MODIFICATION HISTORY:
       09.01.2001	Function created and tested

 REQUIREMENTS & BUGS
      

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_blockvolumes.pro)


FMDIO_COMBINEINTERLEAVED

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_CombineInterleaved

  PURPOSE:
       Combine two scans, which were acquired with an interleaved
       geometry.

       Scan 1 Slice n -------------------
       Scan 2 Slice n -------------------
                     |       |      |
       Scan 1 Slice 1 -------------------
       Scan 2 Slice 1 -------------------
       
       Which scan is assigned to MDIO1 and MDIO2 is irrelevant. The
       slices are sorted according to the geomtery parameters.        

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_CombineInterleaved(MDIO1, MDIO2)

  INPUTS:
	MDIO1/2: Two scans containing the same number of slices.

  OUTPUTS:
	MDIO, containing twice the number of slices as MDIO1 or MDIO2

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_combineinterleaved.pro)


FMDIO_CREATE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Create

  PURPOSE:
       Create a Multi-Dimensional-Image-Object, which is refered as a
       scan in the BioMAP philosophy. 
        This function replaces fBMT_CreateMDIO!!! 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Create()

  KEYWORD PARAMETERS:
       Vox:       Voxelsize in mm
       N:         Number of MDIOs to be created.
       Skeleton:  MDIO, from which parameters of the header are taken.
       Dimension: Dimension of the scan. If Dimension is provided,
                  the array to hold the image data will be created.
       Type:      Type (according the the ANALYZE definition). In the
                  current version, type can only be 4 or
                  16. Otherwise, the array must be initialized manually.

  OUTPUTS:
	The MDIO-structure.

 MODIFICATION HISTORY:
       Last modification: 18.10.2002
       2000/02/14	The Affine transformation matrix is now
                       initialized to the identity-matrix. 
       2003/01/22      Parameter1 is initialized as ramp.

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_create.pro)


FMDIO_DETREND

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Detrend

  PURPOSE:
       Remove the linear drift of individual voxels. The slope of the
       drift is calculated from a series of baseline images either
       for each voxel individually or from the global mean. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y =fMDIO_Detrend(MDIO, BaslineRange,Threshold)

  INPUTS:
	MDIO:         MDI-object
       BeslineRange: Array of two elements, which contains the index
                     of the first and last baseline image.
       Threshold:    Voxels with values below Threshold, will be
                     removed from analysis.

  KEYWORD PARAMETERS:
       Overwrite:    Overwrite the MDIO, which was passed as the first
                     argument. This keyword can be used if this MDIO is
                     not used anymore. 
       Global:       Derive the drift from the global mean of the intensity of
                     the scan.
       Display:      Display the global mean of the scan together
                     with the regression line.

  OUTPUTS:
	MDIO containing the result of the operation.



(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_detrend.pro)


FMDIO_DIVIDE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Divide

  PURPOSE:
       Divide one scan by another: Result = MDIO1 / MDIO2.
       MDIO1 can contain any number of volumes. MDIO2 is allowed to
       contain one volume or the same number as MDIO1. The
       calculations are carried out according to the array handling
       rules of IDL.

  CATEGORY:
       MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Divide(MDIO1, MDIO2)

  INPUTS:
	MDIO1/2: Scans to be used.

  KEYWORD PARAMETERS:
       Min1: Minimum of the numerator. Values below Min1 will be
       disregarded.

       Min2: Minimum of the denominator. Values below Min2 will be
       disregarded.
     
       Log:  Calculate the natural logarithm of the result. This
       option can be used if an attanuation value should be calculated. 

  OUTPUTS:
	A MDIO containing the result of the calculation.

 MODIFICATION HISTORY:
      	2003/01/10: Keyword min1 implemented 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_divide.pro)


FMDIO_EDITHEADER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_EditHeader

  PURPOSE:
       Edit or view the parameters, which are contained in the header
       of a MDIO. This procedure can also write the modiefied header
       to disk, if the scan was already stored in the database.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_EditHeader(MDIO)

  INPUTS:
	MDIO to be edited.

  OUTPUTS:
	If the function will be exited by "Done" and not by "Cancel",
	the modified header will be returned. Otherwise the header
	will remain unchanged.


 MODIFICATION HISTORY:
      	Last Modification: 17.10.2002

 REQUIREMENTS & BUGS
       SRK Remove common blocks and rewrite to a procedure.
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_editheader.pro)


FMDIO_EXTRACTCLUSTERS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_ExtractClusters

  PURPOSE:
       Extract clusters of pixels, which exceed a minimum value and a
       minimum size. First, a threshold is applied to the data and
       all remaining voxels are labeled and grouped to
       clusters. Secondly, a spatial threshold is applied.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y  = fMDIO_ExtractClusters(MDIO, MinValue, MinSize)

  INPUTS:
	MDIO:     The scan to be processes.
       MinValue: Threshold for voxel values.
       MinSize:  Threshold for cluster size.

  KEYWORD PARAMETERS:
       TwoSided: Extract all regions, for which the absolute value
       exceeds the given threshold.

  OUTPUTS:
       Array containing two MDIOs
	MDIO, where values of all voxels, which do not belong to the
	desired class are set to zero.
       ClusterIndex: MDIO with the same dimension as Y,
       which contains the index of each cluster, will be returned.
       It can be used as a ROI-object.

 MODIFICATION HISTORY:
      	Last Modification: 
       2003/01/21 Keyword ClusterIndex implemented

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_extractclusters.pro)


FMDIO_EXTRACTVOLUMES

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_ExtractVolumes

  PURPOSE:
       Extract a subset of volumes from a scan

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_ExtractVolumes(MDIO)

  INPUTS:
	MDIO: A scan, which the operations should be carried out.

  KEYWORD PARAMETERS:
       Min:     First volume to be used. If not specified, all volumes
                before max will be returned.

       Max:     Last volume to be used. If not specified, all volumes
                larger than min will be returned.

       Odd:     Take only volumes with an odd index (0, 2, 4, ...)
                representing the first, third, .... volumes.
      
       Even:    Take only volumes with an even index (1, 3, 5, ...)
                representing the second, fourth, .... volumes.

       Index:   Extract volumes according to the index list.

       Verbose: Print information on the operations.

  OUTPUTS:
	MDIO, which contains the result of the operation.


(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_extractvolumes.pro)


FMDIO_GLOBALMEAN

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_GlobalMean

  PURPOSE:
       Calculate the global mean of a data set. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_GlobalMean(MDIO)

  INPUTS:
	MDIO: MDI-Object
       kspace : Calculation is based on calculating the power in the
       center of the Fourier space. This approach avoids using a
       threshold to eliminate pixels outside of the organ. 
       Width: Diameter around the center of Fourier space, from
       which the mean should be calculated.

  OUTPUTS:
	Array, which contains the global mean of the MDIO 



(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_globalmean.pro)


FMDIO_HIGHPASS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_HighPass

  PURPOSE:
       Remove global intensity differences by subtracting the
       strongly smoothed version from the data. 

  CATEGORY:
       MDIO

  CALLING SEQUENCE:
	Y = fMDIO_HighPass(MDIO1,S)

  INPUTS:
	MDIO: Scans to be used.

  KEYWORD PARAMETERS:
       Sf: Smoothing factor (i.e the width of the boxcar filter)
       Global: On exit, the result will contain the smoothed
       scan instead of the filtered scan. 

  OUTPUTS:
	A MDIO containing the result of the operation.

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_highpass.pro)


FMDIO_INTEGRATE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Integrate

  PURPOSE:
       Numerical integration of a 4-dimensional data set.

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fBMT_Integrate(MDIO)

  INPUTS:
	MDIO:	Scan data

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
	X:	      N-element vector containing the values of the x-axis, e.g. time.
       Range:	      2-element array containing the boundaries for integration
	BlCorr:       Structure containing the parameters for baseline
       	      correction.
       RemoveOffset: Subtract the area defined by the interval of
                     integration and the values at the boundaries
                     from the result. 
	Status:	      Exit status of the function

  OUTPUTS:
	MDIO containing the result of integration


 PROCEDURE:
       Numerical integration over the fourth dimension of a MDIO. The boundaried should
	be provided by the range - keyword. If no boundaries are given all data is
	considered

 MODIFICATION HISTORY:
       2000/01/16	Input checks added.
       2002/10/24      Keyword RemoveOffset implemented.

 REQUIREMENTS & BUGS
   

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_integrate.pro)


FMDIO_MEAN

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Mean

  PURPOSE:
       Average data from a slice, a volume or from multiple volumes

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fBMT_Mean(MDIO, [N1, N2], Status=Status)

  INPUTS:
	MDIO		: Data to be averaged.
	

 OPTIONAL INPUT PARAMETERS:
	N1		: The first volume considered for volume averaging
	N2		: The last volume considered for multiple volume averaging

  KEYWORD PARAMETERS:
       RemoveOffset    : Subtract the area defined by the interval of
                         integration and the values at the boundaries
                         from the result. 
	Status:	          Exit status of the function

  OUTPUTS:
	Averaged data

 PROCEDURE:
       Data from the first argument is averaged, according to the other parameters and
	keywords passed to the function. Three modes of operation are implemented:

	Y = fBMT_Mean(X, n1, n2)
	Average the volumes contained in X starting at n1 and ending at n2. Hence, the function
	will return a volume with the same spatial resolution as the input data but with the 4th
	dimension set to one.


 MODIFICATION HISTORY:
       2002/01/09	Error handling implemented
       2002/10/25      Keyword RemoveOffset implemented    

 REQUIREMENTS & BUGS
      

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_mean.pro)


FMDIO_MULTIPLY

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Multiply

  PURPOSE:
       Multiply voxel values of two scans or multiply the voxel
       values of the first scan with a scalar provided in the second argument.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Multiply(MDIO1, MDIO2)

  INPUTS:
	MDIO1: Two scans of the same matrix size.
       MDIO2: Secons scan of the same size or scalar or array of same
       dimension as number of volumes contained in the first scan.

  OUTPUTS:
	MDIO, containing the resilt of the operation

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_multiply.pro)


FMDIO_REALIGN

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Realign

  PURPOSE:
       Realign volumes of a scan. This function uses AIR-functions for
       realignment. Temporary data will be stored in the /tmp
       directory.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Realign(MDIO)

  INPUTS:
	MDIO: Scan to be realigned

  KEYWORD PARAMETERS:
       Mode:     Index of the model to be used for realignment. 
                   3-D models:
                         6. rigid body 6 parameter model
                         7. global rescale 7 parameter model
                         9. traditional 9 parameter model (std must be on AC-PC line)
                        12. affine 12 parameter model
                        15. perspective 15 parameter model

                   2-D models (constrained to in-plane, no interpolation):
                        23. 2-D rigid body 3 parameter model
                        24. 2-D global rescale 4 parameter model
                        25. 2-D affine/fixed determinant 5 parameter model
                        26. 2-D affine 6 parameter model
                        28. 2-D perspective 8 parameter model

                 Model 6 will be used as default.
       CostFunction: Cost function. Can be 1, 2 or 3. See AIR
                     documentation for details.
       Target:    A MDIO, which contains one volume to be used as
                  target. If this keyword is not supplied, the first
                  volume of the scan will be used as reference.
       
       Threshold: Voxels haven a value below threshold will be
                  disregared during realign.
 
  OUTPUTS:
	MDIO containing the result of the operation.


 RESTRICTIONS:
	BioMAP must have been started before using this function.

 MODIFICATION HISTORY:
       __________________________________


(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_realign.pro)


FMDIO_RECIPROCE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Reciproce

  PURPOSE:
       Calculate 1/VoxelValue of a scan.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Reciproce(MDIO1)

  KEYWORD PARAMETERS:
	Min: Minimum value to be considered.
	Max: Minimum value to be considered.

  INPUTS:
	MDIO1/2: Two scans of the same matrix size.

  OUTPUTS:
	MDIO, containing the resilt of the operation

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_reciproce.pro)


FMDIO_REGRID

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Regrid

  PURPOSE:
       Compose the data matrix of a scan at a different spatial
       resolution. The geometry parameters of the header will be
       changed accordingly.

  CATEGORY:
       MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Regrid(MDIO, Resolution)

  INPUTS:
	MDIO:       Scan to be processed.
       Resolution: Array containing three elements defining the new matrix
                   size.

  KEYWORD PARAMETERS:
       Interp: Interpolate between voxels. 

  OUTPUTS:
	Regridded MDIO



 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       SRK1 Clarify interpolation scheme (Interp)

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_regrid.pro)


FMDIO_REORDER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Reorder

  PURPOSE:
       Create multiple volumes from a stack of slices. Background:
       Scans, which were imported from another source, are not
       structured in a logical sense. E.g. in a
       multi-slice-multi-echo experiment all images could be arranged
       in a single volume. With fMDIO_Reorder one can rearange them
       to a multi-slice-multi-volume scan. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Reorder(MDIO, Repetitions, Order)

  INPUTS:
	MDIO:        Scan to be reordered
       Repetitions: Number of repetitions (number of values for the parameter)
       Order:       0: Blocked (All slices belonging to the same
                       parameter-value were stored consecutively)
                    1: Interleaved (All parameter-values for the n'th
                       slice are stored conscutively)

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       Slice2Ev:    Exchange the slice/evolution index (3th<->4th
                    index) prior to reordering.

  OUTPUTS:
	The reordered MDIO.

 MODIFICATION HISTORY:
      	Last Modification: 2002/11/29

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_reorder.pro)


FMDIO_RESLICE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Reslice

  PURPOSE:
       Reslice a object scan according to its geomtrical parameters
       to the geomtrical space defined by the target scan. This
       function can be used after coregistration of two scans. 

  CATEGORY:
       MDIO

  CALLING SEQUENCE:
	Y = fMDIO_Reslice(Object, Target)

  INPUTS:
	Object:	MDIO containing the object, which has to be resliced to match the geometry of the target.
	MDIO:	MDIO defining the space. 

  KEYWORD PARAMETERS:
       Cubic: Use Cubic interpolation. 
      
  OUTPUTS:
	Resliced MDIO


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       The geometry parameters are taken from the two MDIO. They are used to transfer each voxel
	of the ROI to the correct position in world space.

 MODIFICATION HISTORY:
	2000/02/14	If Roi has only one slice, then translation in third direction is inhibited. Additionally,
			the ceil(.)-function is applied to the volume indices.

 REQUIREMENTS & BUGS
       SRK ______________________________



(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_reslice.pro)


FMDIO_REVERSEVOLUMEORDER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_ReverseVolumeOrder

  PURPOSE:
       Reverse the order by which volumes are aranged in a scan. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	Y = fMDIO_ReverseVolumeOrder(MDIO)

  INPUTS:
	MDIO: A scan to be reordered

  OUTPUTS:
	MDIO containing the reordered volumes.

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_reversevolumeorder.pro)


FMDIO_SCANMEAN

[Previous Routine] [Next Routine] [List of Routines]

  NAME: 
       fMDIO_ScanMean
	
  PURPOSE:
       Averaging of scans. Two modes of input are implemented: You
       can provide scans of same size as multiple arguments. Up to 16 scans
       are allowed. Or scans can be passed to the function as an
       array containing multiple MDIO. However, the data-field must
       have the same size for all elements.

       This function is comparable to fMDIO_Mean but provides the
       option to pass several scans as argument.

  CALLING SEQUENCE:
	Y = fMDIO_Mean(MDIO)
       or
       Y = fMDIO_Mean(MDIO1, MDIO2, ...)

  INPUTS:
	MDI-objects


  OUTPUTS:
	The mean value is returned and if the second input mode was
	used, the standard-deviation is returned by the keyword s.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_scanmean.pro)


FMDIO_STDEV

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Stdev

  PURPOSE:
       Calculate the standard deviation along the 4th dimension of a scan.

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fMDIO_Stdev(MDIO, [N1, N2], Status=Status)

  INPUTS:
	MDIO		: Scan, for which the standard deviation
	                  should be calculated.

 OPTIONAL INPUT PARAMETERS:
	N1		: The first volume considered. N1 can also be an
	                  array of indices for volumes to be used for calculation. 
	N2		: The last volume considered 

  OUTPUTS:
	Averaged data

 PROCEDURE:
       
	Y = fMDIO_Stdev(X, n1, n2)
	Average the volumes contained in X starting at n1 and ending at n2. Hence, the function
	will return a volume with the same spatial resolution as the input data but with the 4th
	dimension set to one.


 MODIFICATION HISTORY:
       09.01.2001	Error handling implemented

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_stdev.pro)


FMDIO_SUBTRACT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Subtract

  PURPOSE:
       Subtract two scans. If the 4th dimensions of both scans are not equal, the first volume of 
	MDIO2 is used for subtraction. 

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	Y = fMDIO_Subtract(MDIO1, MDIO2, min2=min2)

  INPUTS:
	MDIO1 and MDIO2 are two scan objects, which should have the same spatial dimensions.

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       Min2:	Threshold applied to MDIO2. Only those voxel, which have a larger value
		are considered.

  OUTPUTS:
	Scan object, containing the result of the subtraction


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_subtract.pro)


FMDIO_SVD

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_SVD

  PURPOSE:
       Single value decomposition for 3D+Time image data

  CATEGORY:
	Image analysis

  CALLING SEQUENCE:
	Y = fMDIO_SVD(MDIO, Eigenimage, TempProfile, Singular, Thres = x , SeriesRange = [x,y]

  INPUTS:
	MDIO:		Scan to be decomposed

 OPTIONAL INPUT PARAMETERS:

	Profile: 	Named variable that will hold the temporal profile with
			which the eigenimage contributes to the time series. The
			first index of the matrix contains the index of the
			eigenimage.
			 
	Singular:   	Named variable that will hold the singular values 
			(eigenvalues) on exit. The singular values are a 
			monotonically decreasing array.

  KEYWORD PARAMETERS:
       Thres:		Threshold parameter that gives the minimum value in the 
			data which should be considered

  OUTPUTS:
	See optional input parameters

 MODIFICATION HISTORY:
       Created on 05.05.2000

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_svd.pro)


FMDIO_TENSORANALYSIS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_TensorAnalysis

  PURPOSE:
       Calculate Eigenvalues, Direction, Trace and Anisotropy of a
       data set. Volumes of the scan should comprise direction
       (diffusion) sensitization for the following six directions:
       xx, yy, zz, xy, xz, yz. 

  CATEGORY:
	MDIO (WIP)

  CALLING SEQUENCE:
	Y = fMDIO_TensorAnalysis(MDIO)

  INPUTS:
	MDIO containing 6 volumes representing the 6 encoding directions.

  KEYWORD PARAMETERS:
       Min:  Minimum signal value considered.

  OUTPUTS:
	An array of 4 MDIOs will be returned (not one scan containing
	4 volumes). This array contains the following parameter maps:
       1) Eigenvalues
       2) Direction of the principal axis of the 3-dimensional
          elipsoid.
       3) Trace
       4) Anisotropy

; MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_tensoranalysis.pro)


FMDIO_TOTAL

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fMDIO_Total

  PURPOSE:
       Average data from a slice, a volume or from multiple volumes

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fBMT_Total(MDIO, [N1, N2], Status=Status)

  INPUTS:
	MDIO		: Data to be processed.
	

 OPTIONAL INPUT PARAMETERS:
	N1		: The first volume considered for volume averaging
	N2		: The last volume considered for multiple volume averaging

  KEYWORD PARAMETERS:
	Status:	          Exit status of the function

  OUTPUTS:
	total of data

 PROCEDURE:
       Data from the first argument is averaged, according to the other parameters and
	keywords passed to the function. Three modes of operation are implemented:

	Y = fBMT_Total(X, n1, n2)
	Average the volumes contained in X starting at n1 and ending at n2. Hence, the function
	will return a volume with the same spatial resolution as the input data but with the 4th
	dimension set to one.


 MODIFICATION HISTORY:
       2002/01/09	Error handling implemented
       2002/10/25      Keyword RemoveOffset implemented    

 REQUIREMENTS & BUGS
      

(See /usr/people/ivm/rauscma1/programs/biomap/source/fmdio_total.pro)


PMDIO_DESTROY

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_Destroy

  PURPOSE:
       Release memory allocated for data of the MDIO.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pMDIO_Destroy, MDIO1, MDIO2, ....

  INPUTS:
	MDIO1,...,MDIO8

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_destroy.pro)


PMDIO_EDITEVENTS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_EditEvents

  PURPOSE:
       Interface to create, delete and edit event entries for a given
       MDIO. Events consist of a name and a time. The time must be
       specified in units of Parameter1.Events will be shown if their
       name is not "".

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pMDIO_EditEvents,  MDIO

  INPUTS:
	MDIO to be processed

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_editevents.pro)


PMDIO_SETGEO

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_SetGeo

  PURPOSE:
       Set the affine transformation matrix, which defines the
       transformation from index- to world- (physical-) space. The
       matrix is generated from the three direction cosines and the
       center-parameter. These are taken from the header of the
       MDIO. 
       MDIO.row, MDIO.col, MDIO.normal and MDIO.center are stored in
       the associated dat-file, while MDIO.Geo is just as a variable
        in memory. Note that this function generates the
       transformation matrix by the standard scheme. If one of the
       vectors MDIO.row, MDIO.col or MDIO.normal is not complient to
       the standard coordinate system, pMDIO_Geo might not lead to
       the correct result.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pMDIO_SetGeo, MDIO

  INPUTS:
	MDIO: Scan to be processed.


 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_setgeo.pro)


PMDIO_SETMINMAX

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_SetMinMax

  PURPOSE:
       Set the minimum and maximum parameter in a MDIO. Thsi
       procedure must be used if a scan was modified by a
       calculation. The min and max parameter are used in displaying
       routines and must be set correctly. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pMDIO_SetMinMax, MDIO

  INPUTS:
	MDIO: Scan to be processed.

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_setminmax.pro)


PMDIO_SPIKECROP

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_SpikeCrop

  PURPOSE:
       Set voxel values that exceed a given range to the given minimum
       or maximum value. In addition, infinite elements will be set
       to zero.

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pro pMDIO_SpikeCrop, MDIO, min, max

  INPUTS:
	MDIO: Scan to be processed
       Min:  Allowed minimum.
       Max:  Allowed maximum.


 MODIFICATION HISTORY:
      	Last Modification: 18.10.2002
       18.10.2002: Infinite elements will be removed from the scan

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_spikecrop.pro)


PMDIO_TYPECONVERT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pMDIO_TypeConvert

  PURPOSE:
       Convert the data type of an MDIO. This types are related to
       the possible storage formats of ANALYZE. Posible types are: 

       2:  byte (1 byte)
       4:  signed integer (2 byte)
       8:  signed long (4 byte)
       16: float (4 byte)  
        
       Type conversion is carried out irespective of the values
       contained in the data set. E.g. a -1 is converted to 255 if
       type 2 was selected. However, scaling is applied using the
       maximum of the MDIO. Problems will occur, if the absolute of
       the minimum is larger than the maximum. Voxels, with these
       values will be projected outside the range of the variable. 

  CATEGORY:
	MDIO

  CALLING SEQUENCE:
	pMDIO_TypeConvert, MDIO, Type

  INPUTS:
	MDIO: The dataset stored as a MDIO, which should be converted
       Type: The type to which the dataset should be converted.

 MODIFICATION HISTORY:
       2002/10/02  First implementation

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pmdio_typeconvert.pro)


FWIN_COORDCONV

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fWIN_CoordConv

  PURPOSE:
       Convert the pixel position of an image, which is displayed in one of the Biomap-windows,
	to the 3-dimensional index within the volume.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	Y=fWIN_CoordConv(Winx,Winy)

  INPUTS:
	x:	Position in x-direction. Can be an array or a scalar.
	y:	Position in x-direction. Can be an array or a scalar.
	Mode: 	Optional parameter, which defines the Mode of conversion. If Mode is one, 
		interpolation is performed, otherwise an image coordinate is directly selected
		from the Index-array.
		
  OUTPUTS:
	__________________________________

 MODIFICATION HISTORY:
       2001/02/22	If the index is out of range, it will be set to 0
       2001/07/19	If the index is out of range, it will be set to the boundaries


(See /usr/people/ivm/rauscma1/programs/biomap/source/fwin_coordconv.pro)


FWIN_GETMDIO

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fWIN_GetMDIO

  PURPOSE:
       Retrieve the scan, which is stored in a BioMAP-window

  CATEGORY:
	WIN

  CALLING SEQUENCE:
	Y = fWIN_GetMDIO([WinIndex], /copy, Status=Status)

 OPTIONAL INPUT PARAMETERS:
	WinIndex: Index of BioMAP-window (0,...)

  KEYWORD PARAMETERS:
       Copy: Return a copy of the scan. Otherwise the MDIO itself is
             returned, which means that the pointers are the same. As a
             consequence, destroying Y, would also erase the data of the window.

  OUTPUTS:
	MDIO


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       Window data can be erased.


 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fwin_getmdio.pro)


FWIN_IMAGECREATE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fWIN_ImageCreate

  PURPOSE:
       Uses the paramters defined in structure win(.) and creates a true color image, 
	which can be displayed. It passes all parameters of the currently active window to
       fBMT_PrepareImage. It just requires the output size as input parameter.
	Optionally, the slice to be shown can be passed as a keyword parameter. This
       can be helpful, if all slices of a volume should be displayed with the same
	overlay, roi, etc..

  CATEGORY:
	Image display

  CALLING SEQUENCE:
	Image = fBMT_ImageCreate(OutputSize)

  INPUTS:
	Outputsize:	Basic size of image in pixel

 OPTIONAL INPUT PARAMETERS:

  KEYWORD PARAMETERS:
       Slice:		Slice orientation, otherwise Win(.).slice is
                       used.
       OvlEv:          Index to volume in overlay associated with the
                       window.
	No_Overlay:	Do not calculate the overlays (like Roi or
                	overlays)
       Restore:        Use the image, which was calculated in the
                       last run of the the function. 

  OUTPUTS:
	True color image


 COMMON BLOCKS:
	Uses inf.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2001/03/15	Keyword No_Overlay implemented.
       2003/01/20      Keyword OvlEv implemented.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fwin_imagecreate.pro)


PWIN_CLEAR

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pWIN_Clear

  PURPOSE:
       Remove data from a BioMap window

  CATEGORY:
	WIN

  CALLING SEQUENCE:
	pWIN_Clear, Index

  INPUTS:
	Index: Index of the window ranging from 0 to NumberOfWindows


  KEYWORD PARAMETERS:
       All: Erase all windows

  OUTPUTS:
	None


 COMMON BLOCKS:
	Inf


 RESTRICTIONS:
	BioMAP must have been started


(See /usr/people/ivm/rauscma1/programs/biomap/source/pwin_clear.pro)


PBMT_CELL_UI

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_Cell_ui

  PURPOSE:
       Automatically segment a T2-weighted brain

  CATEGORY:
       BMT

  CALLING SEQUENCE:
	pBMT_Cell_ui


  OUTPUTS:
	The result is stored in the selected window.


 COMMON BLOCKS:
	Inf


 MODIFICATION HISTORY:
      

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_cell_ui.pro)


FBMT_CLUSTERANALYSIS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ClusterAnalysis

  PURPOSE:
       Read a set of parameter files and perform a cluster analysis on the data. 
	The routine is at the moment designed for the analysis of Gamma-Variate data
       but could be generalized for the analysis of other parameter sets. 

  CATEGORY:
	Data analysis

  CALLING SEQUENCE:
	Result = fBMT_ClusterAnalysis(MDIO)

  INPUTS:
	The directory from which the Gpdf-files should be used is given by the 
	scan filename defined by the MDIO.

 OPTIONAL INPUT PARAMETERS:
	None

  KEYWORD PARAMETERS:
       NClusters:	Number of clusters, which will be created
	ParRange:	Parameter range used for inclusion of pixels. It is a 3 by 2 matrix
	Chi2Max:	Maximal chi^2 allowed for a pixel to be included into CA. This will 
			exclude all pixels for which the fit was not very well.
	VarWeights:	Parameter passed to CA. It is a 3-element vector, which describes 
			The importance of a parameter.
	Slice:		Consider only one slice given by its slice number.
	Verbose:	Plot some information about the analysis.   

  OUTPUTS:
	An array of same dimensionality as the source volume is returned which contains
	the index of cluster a pixel was assigned to.	


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK1 Function should be moved to MDIO-library

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_clusteranalysis.pro)


FBMT_COMPSCANS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_CompScans

  PURPOSE:
       Verify if to scans have equal properties. 

  CATEGORY:
	Matrix operation

  CALLING SEQUENCE:
	Result = fBMT_CompScans(MDIO11, MDIO2)

  INPUTS:
	MDIO1/2 are two MDI-Objects


  KEYWORD PARAMETERS:
       DIMENSION:	Compare spatial dimensions
       REPETITIONS:	Compare number of repetitions
	GEOMETRY:	Compare orientation 

  OUTPUTS:
	1 if equal, -1 else

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 PROCEDURE:
       Perform comparisons and return the result

 MODIFICATION HISTORY:
       

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_compscans.pro)


FBMT_COORDCONV

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_CoordConv

  PURPOSE:
       Convert from the index to the worl coordinate system or backwords.

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	Header:		MDIO-Header
	Coord:		Array of the form [N, 3] providing the coordinates.

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       Affine:		Affine is used as a second affine transformation, which can modify the physical
			orientation of the volume.

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_coordconv.pro)


FBMT_CREATEVIEW2D

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_CreateView2D

  PURPOSE:
       Create a structure, which contains the parameter to extract a 2D slice
	from a MDIO

  CATEGORY:
	Brainmap basic functions

  CALLING SEQUENCE:
	Y = fBMT_CreateView2D(Origin, ax, ay, az, ev)

  INPUTS:
	Origin:		Array of three elements containing the origin of the slice
	AX, AY, AZ:	Angle of the slice
	EV:		Volume from which the slice should be extracted

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       Zoom:		Zoom factor

  OUTPUTS:
	Structure, which contains the above mentioned parameters.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 MODIFICATION HISTORY:
       2000/02/13	Keyword Zoom added.


(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_createview2d.pro)


FBMT_EXTRACTSLICE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ExtractSlice

  PURPOSE:
       Extracting a slice from a three dimensional volume. Indices are stored in VolInd(NP,4).

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	Image = fBMT_ExtractSlice(Header, Volume, x_size, y_size, x_center, y_center, z_center, 
               x_rot, y_rot, z_rot)

  INPUTS:
	Header:	Structure containing the header information
	Volume: three dimensional matrix containing the data

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       
	Spacing : Resolution used for interpolation. It can be used to create a larger
		  output image, e.g. to fit the image to the window.
       Voxel   : If keyword is set, congrid(.) is used for interpolation. Moreover, just
                 the center point is used for extractration and all angles are ignored.
	

  OUTPUTS:
	Image


 EXAMPLE:
       tvscl, (fBMT_ExtractSlice(Header(0),reform((*scan_ptr(0))(*,*,*,0)),128,128,64,64,0,0,0,0)).image

 MODIFICATION HISTORY:
       2001/02/14	Ceil(.)-function applied to indices, which where calculated in BaseImage-mode
	2001/02/14	Procedure "Voxel display mode" was changed. Now applying ceil(.)-function to volume
			indices.
	2001/02/15	Ceil(.) -> Round(.)
	2001/02/16	If slices are parallel, Z is used directly from BaseImage.
	2001/03/19	Keyword "Missing" removed from interpolate(.) if all rotation parameters = 0  

 REQUIREMENTS & BUGS
        

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_extractslice.pro)


FBMT_FITFORFUN

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_FitForFun

  PURPOSE:
       Least square fit of gamma variate function to a 1D perfusion curve

  CATEGORY:
	brain imaging anlysis

  CALLING SEQUENCE:
       Y = fBMT_FitForFun(X, Y, FunctionName)  

  INPUTS:
	X:		Independent variable
	Y:		Dependent variable
	FunctionName:	Model function, which should be fitted to the data. It can be: 
			"fit_exp": f = a[0] * exp(a[1] * x) 
			"fit_exp3": F = A[0] * bx + A[2]; bx = EXP(A[1] * X)
			"fit_gausstb": Gauss with tilted baseline.
 			The difference between the two models is, that fit_exp3 can also
			account for an offset.  

 OPTIONAL INPUT PARAMETERS:
       NONE

  KEYWORD PARAMETERS:

	Init:		Starting values for the fit can be provided by this keyword.
	CHISQ: 		The CHI^2 value of the fit is hold by this parameter
	STATUS: 	A "1" indicates convergence, a "-1" failure of the least square fit 
	Weights:	Array of weights used for the leasr square fit. It must have the same
			number of elements as the data array
	VERBOSE: 	Some comments during the run of the function are displayed in teh IDL window 
	DISPLAY	: 	Graphical display of the data and the fit
                   
  OUTPUTS:
	The parameters of the fit are returned if the fit was successful
	Otherwise [0,0,0] is returned. 
	
 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       If DISPLAY is set, window DISPLAY is used for output

 RESTRICTIONS:
	NONE

 PROCEDURE:
       Least square fit of a gamma probability density function to a concentration time curve
	of contrast agent. 

 MODIFICATION HISTORY:
       15/09/99 	Version 1.0 shows stable results for the fit in a case of cerebral infarction
       21/09/99 	/TSEARCH is doing now 10 iterations
       23/09/99 	The option /TWCUT was introduced
       24/09/99 	The complex search procedure was removed from wcut; the temporal cut-off 
		 	is now defined by twcut.
                	Search of maximum for definition of start values is now restricted to weights>0
       22/09/99 	Cleaning up some badly arranged functions.
	2001/02/16	Model function fit_exp3 added, which uses three parameters.

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_fitforfun.pro)


FBMT_FUNCTIONFIT

[Previous Routine] [Next Routine] [List of Routines]

  NAME: 
       fBMT_FunctionFit 
       
  PURPOSE:
       Fit a model curve to each pixel of a MDIO. 

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	Y = fBMT_FunctionFit(MDIO, X, Func)

  INPUTS:
	MDIO:	MDIO, for which the fit should be performed. The 4th dimension should be large than 2.
	X:	An independent variable, which matches the 4th dimension of the MDIO.
	Func:	The model function. Currently 3 models have been implemented: 
		"T2": Calculation of the Proton- and T2-map of a multi echo sequence.
               "ADC": Calculation of the apparent diffusion coefficient. 
		"Exp-": Calculation of the S0 and exponential decay map of a multi echo or diffusion
		sequence
		"Epx3P": Fit of the function: Y = P1 * exp(P2 * V) + P3 to the data. This model can be used
		to model  exponential signal increase.  
		"Epx4P": Fit of the function: Y = P1 * exp(P2 * (V-P4)) + P3 to the data. This model can be used
		to model  exponential signal increase in case of leakage. The data should contain reletive
		concentrations (i.e. scaled from 0.0 to 1.0)
	Thres: 	Intensity-threshold. Voxels, whos value exceeds this threshold in at least one volume are considered for analysis.   

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       Thres:		The smallest pixel value to be considered.
	Weights:	Array containing the individual weighting for each point along the 4th dimension.
	ChiSq:		Maximimum Chi² to be considered as useful fit.

  OUTPUTS:
	MDIO containing a volume for each parameter of the model function.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	None.

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2001/02/19	Keyword ChiSq added.
	2001/02/20	Model "fit_exp4" added.
	2001/03/22	Infinite elements set to 0.0

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_functionfit.pro)


FBMT_GETVOXELSIZE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_GetVoxelSize

  PURPOSE:
       Calculate the size of one window-pixel. The size will be returned in mm or in voxel-dimensions. 

  CATEGORY:
	BMT

  CALLING SEQUENCE:
       Y = fBMT_GetVoxelSize()

  INPUTS:
	__________________________________

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_getvoxelsize.pro)


FBMT_IMAGECOMBINE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ImageCombine

  PURPOSE:
       Create an image of a MDIO using the parameters passed to this function. Usually a true color
	image is generated, which can be displayed by 

			tv, Y, true = 3.
	Overlays and Rois can be passed by keyword parameters optionally.

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y

  INPUTS:
	MDIO:		The MDI-Object
	Orientation:	A structure (generated by fBMT_CreateView2D()) containing the information about the slice
			which should be displayed.
	ImageRange:	Array of 2 elements, containing the minimum and maximum values used for scaling.
	OutputSize:	Scalar giving the size of the final image.

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       Native8Bit:	The slice of the MDIO is returned as a scaled image. No overlays or rois are added.
	DisplayMethod:	If this keyword is set, the specified display method is used:
			0: Interpolation giving smooth images
			1: Regridding giving images that allow to identify individual voxels. 
	TransparentRoi:	The ROI-Object passed with this keyword is added to the image as transparent overlay.
	

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2000/02/14	NoSpatialTransformation is not used anymore for overlaying. It is only used for
			ROIs, because they have been already transformed during loading.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_imagecombine.pro)


FBMT_IMAGEPROCESS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
       fBMT_ImageProcess

  PURPOSE:
       This function is used to extract a slice from a 3D or 4D volume. 

  CATEGORY:
       BrainMap 

  CALLING SEQUENCE:
       Y = fBMT_ImageProcess(MDIO, Orientation, WindowSize)

  INPUTS:
       MDIO		: MDIO-structure, containing the scan data
	orientation     : Structure containing the information about the slice orientation and the volume from
			  a N-Volume scan	
	WindowSize	: The size of a window with equal length in x and y direction

 KEYWORDS:

       VERBOSE		: Displays information about input parameters
	BaseImage	: Header of the scan on which Volume will be overlayed
       DisplayMethod   : How the image is resized. Possible values are 'bilinear' (0) and 'cubic' (1)
		
  OUTPUTS:
      	The image extracted from the volume

 MODIFICATION HISTORY:
       Written by:     MR, February 1999.
	2001/03/15	Keyword Affine removed.
	2001/03/22	Function derived from bm_image_process.

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_imageprocess.pro)


FBMT_IMPORTPIXMAP_UI

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ImportPixMap_ui

  PURPOSE:
       Import any pixmap (image) as a MDIO.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	None. 

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2001/03/13	Calibration function implemented.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_loadpixmap_ui.pro)


FBMT_MEAN

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_Mean

  PURPOSE:
       Average data from a slice, a volume or from multiple volumes

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fBMT_Mean(Scan, [N1, N2], MeanOfScan = MeanOfScan, MeanOfVolume = MeanofVolume)

  INPUTS:
	Scan		: Data to be averaged. Currently, this is not a MDI-Object

 OPTIONAL INPUT PARAMETERS:
	N1		: The first volume considered at multiple volume averaging
	N2		: The last volume considered at multiple volume averaging

  KEYWORD PARAMETERS:
       MeanOfScan	: Return the average of all data as a scalar
	MeanOfVolume	: Return the average of the volume denoted by number passed by the keyword.
	Status		: On exit, -1 is returned if an error has occurred, 1 on success

  OUTPUTS:
	Averaged data


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 PROCEDURE:
       Data from the first argument is averaged, according to the other parameters and
	keywords passed to the function. Three modes od operation are implemented:

	(1) Y = fBMT_Mean(X, n1, n2)
	Average the volumes contained in X starting at n1 and ending at n2. Hence, the function
	will return a volume with the same spatial resolution as the input data but with the 4th
	dimension set to one.

	(2) Y = fBMT(X, /MeanOfScan)
	Simply return the mean of the whole data as a scalar value.

	(3) Y = fBMT(X, MeanOfVolume = N)
	Return the mean of volume N as a scalar value. 

 MODIFICATION HISTORY:
       09.01.2001	Error handling implemented

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_mean.pro)


FBMT_ROISTAT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_RoiStat

  PURPOSE:
       Calculate statistics of Rois defined for a scan

  CATEGORY:
	Analysis

  CALLING SEQUENCE:
	Y = fBMT_RoiStat(MDIO, Roi))

  INPUTS:
	MDIO:	Scan-object
	ROI:	Roi-Object

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
	Histogram:	Histograms of the values of each Roi.
	Range:		Range of values considered for calculation.
	ExcludeZero:	Exclude all points whos values are zero from analysis.
			
                    
  OUTPUTS:
	Array of structure, which containe the calculated values: It is defined as
	{Region:"", Population:0, Mean:0.0, Median: 0.0, Stdev:0.0, Min:0.0, Max:0.0}


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 PROCEDURE:
       Calculations are performed using standard functions.

 MODIFICATION HISTORY:
       2001/01/23	Function derived from bm_roi_stat-function.
	2001/02/13	Keyword SaveData added in order to store the generated tables on disc.

 REQUIREMENTS & BUGS
        

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_roistat.pro)


FBMT_ROITRACE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ROITrace

  PURPOSE:
       Extract the longitudinal ROI-data from a scan. The scan should
       contain more than one volume. 

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	Y = fBMT_RoiTrace(MDIO, ROI, Id)

  INPUTS:
	MDIO: Image data
       ROI : ROI data (must have the same dimension as the image data
             but may contain not more than one volume)
       Id  : Id of the region. It can be the number (e.g. 1, 2, ...)
             or the name (e.g. "R1", which is defined by the
             variable ROI.parameter1).  

  KEYWORD PARAMETERS:
       Error:   Contains the stdev of each data point if the region
                contains more than two voxels.
       Status:  Exit status (1: ok, -1: error)
       Exclude: value, which should be exluded from calculation of
                the average.

  OUTPUTS:
	Array (length is number of volumes contained in MDIO)
	containing the mean image data values of the region.


 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_roitrace.pro)


FBMT_ROITRANSFER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_RoiTransfer

  PURPOSE:
       Transform a ROI, which was set for a scan to another. Scans can have different geometries and
	orientations. 

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	ROI:	MDIO containing the ROI, which was loaded from disk or taken
		from a different window.
	MDIO:	MDIO, to which the ROI should be transferred. 

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       Affine:		Multiply a affine transformation matrix with the Geo-Matrix of the MDIO
	Range:		Truncate all ROIS, where pixel values of the scan, to which it is transferred 
			are not in the disered range.
       RegridFactor:   A factor, which allows to increase the
                       resolution of the scan. Values should be below 1.

  OUTPUTS:
	Volume containing the rois


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       The geometry parameters are taken from the two MDIO. They are used to transfer each voxel
	of the ROI to the correct position in world space.

 MODIFICATION HISTORY:
       2000/02/13	Keyword "Range" added
	2000/02/14	If Roi has only one slice, then translation in
	                third direction is inhibited.  Additionally,
			the ceil(.)-function is applied to the volume indices.

 REQUIREMENTS & BUGS
     



(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_roitransfer.pro)


FBMT_SCANALGEBRA

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_ScanAlgebra

  PURPOSE:
       Perform basic calculations on a MDI-Object

  CATEGORY:
	Scan processing

  CALLING SEQUENCE:
	Y = fBMT_ScanAlgebra(MDIO, [Parameter1])

  INPUTS:
	MDIO:	The scan object, on which calculations should be performed

 OPTIONAL INPUT PARAMETERS:
	Parameter1:	An optional parameter, which is required for some operations

  KEYWORD PARAMETERS:
	LinearScaling:	Every volume of the scan is devided by its mean and 
			therefore the global mean becomes 1.
	SubractVolume:	A volume (defined by Parameter1) is subracted from every
			other volume.
	SubtractSpecific: Subtract a specific volume from any of the others. Parameter1
			should contain an array of indices of same length as the scan contains 
			volumes. If an entry of Parameter1 is -1, then no subtraction is
			performed.
	Magnitude:	The magnitude of every volume is calculated.
 	Baseline:	Subtract a global baseline value from each volume.
	Invert:		Invert the values of a scan.
	Status:		The exit status of the function. 	       
	

  OUTPUTS:
	MDI-Object


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.

 PROCEDURE:
       Calculations are performed according to the keyword passed to the function.

 MODIFICATION HISTORY:
       2001/01/23	Parameters are not passed by the keyword; instead Parameter1 is used.
			Imprint added.

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_scanalgebra.pro)


FBMT_SOLIDOVL

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_SolidOvl

  PURPOSE:
       Create an overlay image of Image1 and Image2. Pixels that are visible from 
	Image2 completely hide the underlying pixels of Image1. Scaling of Image2
	can be defined by using the keyword "Range". Image1 and 2 must be of same size.

  CATEGORY:
	Image display

  CALLING SEQUENCE:
	Y = fBMT_SolidOvl(Image1, Image2)

  INPUTS:
	__________________________________

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2000/02/15	Keyword "Thres" replaced by "Range". Scaling of Image1 was 
                       replaced, since it should already be scaled. Scaling of 
			Image2 is performed only once.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_solidovl.pro)


FBMT_SVDCOMPOSE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_SvdCompose

  PURPOSE:
       Use the spatial modes, temporal profiles and the singular vector
	to restore the original time series data. The singular vector can
	be modified by the keyword SMod in order to remove confounding
	contributions to the data such as noise or other spectral 
	components.

  CATEGORY:
	Image processing

  CALLING SEQUENCE:
	Y = fBMT_SvdCompose(MDIO, [SMod = ....])

  INPUTS:
	WinIndex:	Index to BRAINMAP window

 OPTIONAL INPUT PARAMETERS:
	None

  KEYWORD PARAMETERS:
       SMod:		Array, with number of entries equal to the number of
			spatial modes calculated.
			

  OUTPUTS:
	The restored (and modiefied) time series data.


 COMMON BLOCKS:
	None

 SIDE EFFECTS:
       None

 RESTRICTIONS:
	Can only be used if Brainmap was started. No parameter consistency 
	checks are performed.

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_svdcompose.pro)


FBMT_TRANSPARENTOVL

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fBMT_TransparentOvl

  PURPOSE:
       Use two indexed images an combine them as an rgb image

  CATEGORY:
	Imaging 

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	Image1/2: Two images which have to scaled from 0 to 256

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fbmt_transparentovl.pro)


PBMT_COPYSCANTOWINDOW

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_CopyScanToWindow

  PURPOSE:
       Copy data from source window or file to a target window.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	pBMT_CopyScanToWindow, MyMDIO, Source, WinIndex

  INPUTS:
	Scan    : MDIO, which contains the source data
       Source  : Index of window, from where the scan is copied (-1=no
                 source)
       WinIndex: Index of window, to which the scan should be copied
                 (-1=copy to file). The filename must be defined in
                 MDIO.ScanFilename. If the keyword LABEL is
                 specified, it is used as the filename, while the
                 path is taken from MDIO.ScanFilename.


  KEYWORD PARAMETERS:
       __________________________________


 COMMON BLOCKS:
	inf

 MODIFICATION HISTORY:
       2001/03/26	Keyword "OverwritePointer" implemented

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_copyscantowindow.pro)


PBMT_CREATEHELP

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	PBMT_CREATEHELP

  PURPOSE:
	Given a list of IDL procedure files (.PRO), VMS text library 
       files (.TLB), or directories that contain such files, this procedure 
       generates a file in the HTML format that contains the documentation 
       for those routines that contain a DOC_LIBRARY style documentation 
       template.  The output file is compatible with World Wide Web browsers.

  CATEGORY:
	Help, documentation.

  CALLING SEQUENCE:
	PLIB_CREATEHELP, Sources, Outfile

  INPUTS:
     Sources:  A string or string array containing the name(s) of the
		.pro or .tlb files (or the names of directories containing 
               such files) for which help is desired.  If a source file is 
               a VMS text library, it must include the .TLB file extension.  
               If a source file is an IDL procedure, it must include the .PRO
               file extension.  All other source files are assumed to be
               directories.
     Outfile:	The name of the output file which will be generated.

 KEYWORDS:
     TITLE:	If present, a string which supplies the name that
		should appear as the Document Title for the help.
     VERBOSE:	Normally, PLIB_CREATEHELP does its work silently.
		Setting this keyword to a non-zero value causes the procedure
		to issue informational messages that indicate what it
		is currently doing. !QUIET must be 0 for these messages
               to appear.
     STRICT:   If this keyword is set to a non-zero value, PLIB_CREATEHELP will 
               adhere strictly to the HTML format by scanning the 
               the document headers for characters that are reserved in 
               HTML (<,>,&,").  These are then converted to the appropriate 
               HTML syntax in the output file. By default, this keyword
               is set to zero (to allow for faster processing).

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	A help file with the name given by the Outfile argument is
	created.

 RESTRICTIONS:
	The following rules must be followed in formatting the .pro
	files that are to be searched.
		(a) The first line of the documentation block contains
		    only the characters ";+", starting in column 1.
                (b) There must be a line which contains the string "NAME:",
                   which is immediately followed by a line containing the
                   name of the procedure or function being described in
                    that documentation block.  If this NAME field is not
                   present, the name of the source file will be used.
		(c) The last line of the documentation block contains
		    only the characters ";-", starting in column 1.
		(d) Every other line in the documentation block contains
		    a ";" in column 1.

        Note that a single .pro file can contain multiple procedures and/or
       functions, each with their own documentation blocks. If it is desired
       to have "invisible" routines in a file, i.e. routines which are only
       for internal use and should not appear in the help file, simply leave
       out the ";+" and ";-" lines in the documentation block for those
       routines.

	No reformatting of the documentation is done.

 MODIFICATION HISTORY:
       July 5, 1995, DD, RSI. Original version.
       July 13, 1995, Mark Rivers, University of Chicago. Added support for
               multiple source directories and multiple documentation
               headers per .pro file.
       July 17, 1995, DD, RSI. Added code to alphabetize the subjects;
               At the end of each description block in the HTML file,
               added a reference to the source .pro file.
       July 18, 1995, DD, RSI. Added STRICT keyword to handle angle brackets.
       July 19, 1995, DD, RSI. Updated STRICT to handle & and ".
               Changed calling sequence to accept .pro filenames, .tlb
               text librarie names, and/or directory names.
                Added code to set default subject to name of file if NAME
               field is not present in the doc header.


(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_createhelp.pro)


PBMT_MTR_UI

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_MTR_ui

  PURPOSE:
       Calculate the magnetization transfer ratio from a scan with an
       scan without MTS-preperation. Input data is selected from the
       common BioMAP data pool.

  CATEGORY:
       BMT

  CALLING SEQUENCE:
	pBMT_MTR_ui


  OUTPUTS:
	The result is stored in the selected window.


 COMMON BLOCKS:
	Inf


 MODIFICATION HISTORY:
      	2002/12/11 Values lower than 0 will be removed.

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_mtr_ui.pro)


PBMT_PLOT_UI

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_Plot_ui

  PURPOSE:
       Plot profiles, spects, ACFs, etc. of a point or ROI and provide a graphical interface.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	pBMT_Plot_ui, Data

  INPUTS:
	Data: Structure of the form 
             {x:fltarr(n), y: fltarr(n,m), err:fltarr(n,m)}

 MODIFICATION HISTORY:
       2001/02/16	Psym-Keyword removed from pBMT_Plotxy. Symbols are now generated
			within the function. XY coordinates will be displayed. 
	2001/02/19	wDraw is directly used for printing. Before it was event.top+1
	2001/02/26	An option is provided, that allows to select the evolution by a click
			with the left mouse button.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_plot_ui.pro)


PBMT_READPARAMETER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_ReadParameter

  PURPOSE:
       Read values of a given structure from a file. The file has
	a name that is derived from the name of the structure or the
	filame supplied as a keyword.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	pBMT_ReadParameter, StructName

  INPUTS:
	StructName: Name of the structure

  KEYWORD PARAMETERS:
       File: Name of file to be read. 


 MODIFICATION HISTORY:
       2003/01/07 Function fBMT_ProcessTracing() replaced by keyword
       "Verbose". The procedure can now be called independently from BioMAP.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_readparameter.pro)


PBMT_ROILOAD

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_RoiLoad

  PURPOSE:
       Provide a file dialog box and load a ROI-Volume from disk.

  CATEGORY:
	ROI Analysis

  CALLING SEQUENCE:
	pBMT_RoiLoad

  INPUTS:
	None.

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       None.

  OUTPUTS:
	None


 COMMON BLOCKS:
	Inf

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	Brainmap must be initialized.

 PROCEDURE:
       A ROI-volume is loaded from disk and stored in the current window. If the geomtery
	of the stored ROI and the scan in the current window is different, spatial transformations
	are applied.

 MODIFICATION HISTORY:
       2001/02/16	The DIM-field of the ROI is modiefied to have the same dimensions as the scan.
	2001/03/02	Geometry parameters will be copied from the
	                scan to the Roi.


 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_roiload.pro)


PBMT_WRITEPARAMETER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pBMT_WriteParameter

  PURPOSE:
       Write values from a given structure to a file. The file has
	a name that is derived from the name of the structure, which 
 	is STRUCTURENAMErc. The procedure writes the file to the 
 	directory of the scan. Note that only arrys with a length of
	less than 512 elements will be written to the file.

  CATEGORY:
	BMT

  CALLING SEQUENCE:
	pBMT_WriteParameter, StructName

  INPUTS:
	StructName: Structure containing the data.

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       File:      Write data to file with the name "file".
       Stdout:    Write to the console (for debugging purposes)
       NoPointer: Do not write contents of pointer variables.

  OUTPUTS:
	__________________________________


 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pbmt_writeparameter.pro)


FLIB_COLORTRANSLATE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fLIB_ColorTranslate

  PURPOSE:
       Create a true color image from an indexed image and a color table;
       the third index is corresponding to one of the RGB-channels. 

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	IMAGE: Image data scaled from 0 to 255 

 OPTIONAL INPUT PARAMETERS:
	CT   : Index of a colortable

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	True color image


 COMMON BLOCKS:
	

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/flib_colortranslate.pro)


CURVEFIT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
       CURVEFIT

  PURPOSE:
       Non-linear least squares fit to a function of an arbitrary 
       number of parameters.  The function may be any non-linear 
       function.  If available, partial derivatives can be calculated by 
       the user function, else this routine will estimate partial derivatives
       with a forward difference approximation.

  CATEGORY:
       E2 - Curve and Surface Fitting.

  CALLING SEQUENCE:
        Result = CURVEFIT(X, Y, Weights, A, SIGMA, FUNCTION_NAME = name, $
                         ITMAX=ITMAX, ITER=ITER, TOL=TOL, /NODERIVATIVE)

  INPUTS:
       X:  A row vector of independent variables.  This routine does
           not manipulate or use values in X, it simply passes X
           to the user-written function.

       Y:  A row vector containing the dependent variable.

  Weights:  A row vector of weights, the same length as Y.
            For no weighting,
                 Weights(i) = 1.0.
            For instrumental (Gaussian) weighting,
                 Weights(i)=1.0/sigma(i)^2
            For statistical (Poisson)  weighting,
                 Weights(i) = 1.0/y(i), etc.

       A:  A vector, with as many elements as the number of terms, that 
           contains the initial estimate for each parameter.  IF A is double-
           precision, calculations are performed in double precision, 
           otherwise they are performed in single precision. Fitted parameters
           are returned in A.

 KEYWORDS:
        FUNCTION_NAME:  The name of the function (actually, a procedure) to 
       fit.  IF omitted, "FUNCT" is used. The procedure must be written as
       described under RESTRICTIONS, below.

       ITMAX:  Maximum number of iterations. Default = 20.
       ITER:   The actual number of iterations which were performed
       TOL:    The convergence tolerance. The routine returns when the
               relative decrease in chi-squared is less than TOL in an 
               interation. Default = 1.e-3.
       CHI2:   The value of chi-squared on exit (obselete)
     
       CHISQ:   The value of reduced chi-squared on exit
       NODERIVATIVE:   IF this keyword is set THEN the user procedure will not
               be requested to provide partial derivatives. The partial
               derivatives will be estimated in CURVEFIT using forward
               differences. IF analytical derivatives are available they
               should always be used.
       STATUS: Is 1 if estimation converged and -1 else
       SILENT: Do not send messages

  OUTPUTS:
       Returns a vector of calculated values.
       A:  A vector of parameters containing fit.

 OPTIONAL OUTPUT PARAMETERS:
       Sigma:  A vector of standard deviations for the parameters in A.

 COMMON BLOCKS:
       NONE.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       The function to be fit must be defined and called FUNCT,
        unless the FUNCTION_NAME keyword is supplied.  This function,
       (actually written as a procedure) must accept values of
       X (the independent variable), and A (the fitted function's
       parameter values), and return F (the function's value at
       X), and PDER (a 2D array of partial derivatives).
       For an example, see FUNCT in the IDL User's Libaray.
       A call to FUNCT is entered as:
       FUNCT, X, A, F, PDER
 where:
       X = Variable passed into CURVEFIT.  It is the job of the user-written
           function to interpret this variable.
       A = Vector of NTERMS function parameters, input.
       F = Vector of NPOINT values of function, y(i) = funct(x), output.
       PDER = Array, (NPOINT, NTERMS), of partial derivatives of funct.
               PDER(I,J) = DErivative of function at ith point with
               respect to jth parameter.  Optional output parameter.
               PDER should not be calculated IF the parameter is not
               supplied in call. IF the /NODERIVATIVE keyword is set in the
               call to CURVEFIT THEN the user routine will never need to
               calculate PDER.

 PROCEDURE:
       Copied from "CURFIT", least squares fit to a non-linear
       function, pages 237-239, Bevington, Data Reduction and Error
       Analysis for the Physical Sciences.  This is adapted from:
       Marquardt, "An Algorithm for Least-Squares Estimation of Nonlinear
       Parameters", J. Soc. Ind. Appl. Math., Vol 11, no. 2, pp. 431-441,
       June, 1963.

       "This method is the Gradient-expansion algorithm which
       combines the best features of the gradient search with
       the method of linearizing the fitting function."

       Iterations are performed until the chi square changes by
       only TOL or until ITMAX iterations have been performed.

       The initial guess of the parameter values should be
       as close to the actual values as possible or the solution
       may not converge.

 EXAMPLE:  Fit a function of the form f(x) = a * exp(b*x) + c to
           sample pairs contained in x and y.
           In this example, a=a(0), b=a(1) and c=a(2).
           The partials are easily computed symbolicaly:
           df/da = exp(b*x), df/db = a * x * exp(b*x), and df/dc = 1.0

           Here is the user-written procedure to return F(x) and
           the partials, given x:

       pro gfunct, x, a, f, pder      ; Function + partials
         bx = exp(a(1) * x)
         f= a(0) * bx + a(2)         ;Evaluate the function
         IF N_PARAMS() ge 4 THEN $   ;Return partials?
         pder= [[bx], [a(0) * x * bx], [replicate(1.0, N_ELEMENTS(f))]]
       end

         x=findgen(10)                  ;Define indep & dep variables.
         y=[12.0, 11.0,10.2,9.4,8.7,8.1,7.5,6.9,6.5,6.1]
         Weights=1.0/y            ;Weights
         a=[10.0,-0.1,2.0]        ;Initial guess
         yfit=curvefit(x,y,Weights,a,sigma,function_name='gfunct')
         print, 'Function parameters: ', a
         print, yfit
       end

 MODIFICATION HISTORY:
       Written, DMS, RSI, September, 1982.
       Does not iterate IF the first guess is good.  DMS, Oct, 1990.
       Added CALL_PROCEDURE to make the function's name a parameter.
              (Nov 1990)
       12/14/92 - modified to reflect the changes in the 1991
            edition of Bevington (eq. II-27) (jiy-suggested by CreaSo)
       Mark Rivers, U of Chicago, Feb. 12, 1995
           - Added following keywords: ITMAX, ITER, TOL, CHI2, NODERIVATIVE
             These make the routine much more generally useful.
           - Removed Oct. 1990 modification so the routine does one iteration
             even IF first guess is good. Required to get meaningful output
             for errors. 
           - Added forward difference derivative calculations required for 
             NODERIVATIVE keyword.
           - Fixed a bug: PDER was passed to user's procedure on first call, 
             but was not defined. Thus, user's procedure might not calculate
             it, but the result was THEN used.

      Steve Penton, RSI, June 1996.
            - Changed SIGMAA to SIGMA to be consistant with other fitting 
              routines.
            - Changed CHI2 to CHISQ to be consistant with other fitting 
              routines.
            - Changed W to Weights to be consistant with other fitting 
              routines.
            _ Updated docs regarding weighing.

      Martin Rausch, 1999 
            - status keyword added
            - silent keyword added          

(See /usr/people/ivm/rauscma1/programs/biomap/source/flib_curvefit.pro)


FLIB_GAUSS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fLIB_Gauss

  PURPOSE:
       Calculate a values of gauss-function.

  CATEGORY:
	LIB

  CALLING SEQUENCE:
	Y=fLIB_Gauss(x, Center, FWHM)

  INPUTS:
	x     : Scalar or array containing the x-values.
       Center: Center of the curve
       FWHM  : Full width half maximum   


 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/flib_gauss.pro)


FLIB_READAFFINETRANS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fLIB_ReadAffineTrans

  PURPOSE:
       Read an affine transformation matrix from disk. If opening
	fails an unit matrix is returned.

  CATEGORY:
	File I/O

  CALLING SEQUENCE:
	Affine = fLIB_ReadAffine(filename)

  INPUTS:
	Filename: The name of the scan. This is used 
		  to generate the name of the output file.

  OUTPUTS:
       Affine	: A 12-parameter set from which an affine transformation
		  matrix can be created: [tx,ty,tz, ax,ay,az, sx,sy,sy, a1,a2,a3]


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2001/03/22	Length of input vector corrected to 9 elements.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/flib_readaffinetrans.pro)


SEARCH3D

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	SEARCH3D

  PURPOSE:
	This function finds "objects" or regions of similar data
       values within a 3-D array of data. Given a starting location
       and a range of values to search for, SEARCH3D will find all
       the cells within the volume that are within the specified range
       of values, and have some path of connectivity through these cells
       to the starting location. In addition to searching for cells
       within a global range of data values, SEARCH3D can also search
       for adjacent cells whose values deviate from their neighbors within
       specified tolerances. See the procedure "SEARCH2D" for the
       two dimensional case.

       This function returns a list of the array subscripts that define
       the selected object or region.

  CATEGORY:
       Data subsetting.
	Volume manipulation.

  CALLING SEQUENCE:
       Region = SEARCH3D(Array, Xpos, Ypos, Zpos, Min_val, Max_val)

  INPUTS:
       Array:      The 3-D volume of data to search.
                   Data type : Any 3-D array except string or structure.
       Xpos:       The X coordinate (first subscript into the 3-D Array)
                   of the starting cell for the search.
                   Data type : Long.
       Ypos:       The Y coordinate (second subscript into the 3-D Array)
                   of the starting cell for the search.
                   Data type : Long.
       Zpos:       The Z coordinate (third subscript into the 3-D Array)
                   of the starting cell for the search.
                   Data type : Long.
       Min_val:    The minimum data value to search for. All cells that
                   are connected to the starting cell, and have a value
                   greater than or equal to Min_val and less that or equal
                   to Max_val, will be considered part of the "object".
       Max_val:    The maximum data value to search for.

  KEYWORD PARAMETERS:
       DECREASE:   If the DECREASE or INCREASE keywords are specified,
                   then SEARCH3D creates an internal copy of Array.
                   This internal copy is then processed to enhance the
                   object edges by using an algorithm similar to the
                   "SOBEL" edge enhancement process (in 3-D). Any
                   adjacent cells will be found if their corresponding
                   data value in the edge enhanced array is greater
                   than DECREASE and less than INCREASE. In any case,
                   the adjacent cells will NEVER be selected if their
                   data value is not between Min_val and Max_val.
                   The default is 0.0 if INCREASE is specified.
                   Otherwise, the default is no edge checking.
                   Data type : Int or Float (usually less than zero).
       INCREASE:   The maximum value in the edge enhanced array for
                   a cell to be considered part of the selected object.
                   Some savings in execution time and memory usage result
                   when DECREASE and INCREASE are omitted.
                   See DECREASE above.
                   The default is 0.0 if DECREASE is specified.
                   Otherwise, the default is no edge checking.
                   Data type : Int or Float (usually greater than zero).
       LPF_BAND:   This keyword indicates what (if any) Low Pass Filtering
                   is performed on the edge enhanced array before the
                   search begins. If LPF_BAND is set to 3 or higher
                   then the edge enhanced array will be smoothed using
                   LPF_BAND as the width of the smoothing window.
                   If LPF_BAND is less than 3 then no smoothing is
                   performed. This keyword only has effect when the
                   DECREASE or INCREASE keywords are supplied.
                   See DECREASE above.
                   The default is zero (no smoothing).
                   Data type : Int.
       DIAGONAL:   Normally, cells are considered adjacent only when
                   cubes surrounding the cells share a common face.
                   If a non-zero value is passed to DIAGONAL then
                   SEARCH3D will also locate cells meeting the search
                   criteria whose surrounding cubes share a common
                   edge or corner. Specifying diagonal search mode
                   requires more memory and execution time.
                   The default is no diagonal searching.
                   Data type : int

  OUTPUTS:
       This function returns a list of the indices into the 3-D array
       that are part of the located object or region. This list is
       returned as a LONARR(n) where n is the number of cells found.

       If the returned array of indices is called Region, and the
       size of the 3-D volume of data is size_x by size_y by size_z,
       then the actual X, Y, and Z indices can be obtained by using
       the following algorithm :

          index_z = Region / (size_x * size_y)
          index_y = (Region - (index_z * size_x * size_y)) / size_x
          index_x = (Region - (index_z * size_x * size_y)) - (index_y * size_x)

       The object within the 3-D Array could then be subscripted as :

          Array(Region)
       OR
          Array(index_x, index_y, index_z)

 EXAMPLE:
       Find all the indices corresponding to an object contained in a
       3-D volume of data.

       ; Create some data.
          vol = RANDOMU(s, 40, 40, 40)
          vol(3:13, 1:15, 17:33) = 1.3
          vol(15:25, 5:25, 15:25) = 0.2
          vol(5:30,17:38,7:28) = 1.3
          vol(9:23, 16:27, 7:33) = 1.5

       ; Search for an object starting at (6, 22, 16) whose data values
       ; are between (1.2) and (1.4)..
          Region = SEARCH3D(vol, 6, 22, 16, 1.2, 1.4, /DIAGONAL)

       ; Scale the background cells into the range 0 to 127.
          vol = BYTSCL(vol, TOP=127B)

       ; Highlight the object region by setting it to 255.
          vol(Region) = 255B

       ; Set up a 3-D view.
          Window, 0, Xsize=640, Ysize=512, Retain=2
          Create_View, Xmax=39, Ymax=39, Zmax=39, ax=(-30), az=30, zoom=0.8

       ; Display the volume with the highlighted object in it.
          TVSCL, PROJECT_VOL(vol, 64, 64, 40, Depth_Q=0.4)

 MODIFICATION HISTORY:
       Written by:     Daniel Carr. Thu Sep  3 17:36:04 MDT 1992

(See /usr/people/ivm/rauscma1/programs/biomap/source/flib_search3d.pro)


PLIB_IMAGECONT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	PLIB_IMAGECONT

  PURPOSE:
	Overlay an image and a contour plot.

  CATEGORY:
	General graphics.

  CALLING SEQUENCE:
	PLIB_IMAGECONT, A, B

  INPUTS:
	A:	The two-dimensional array to display as a contour
	B:	The two-dimensional array to display as a image

  KEYWORD PARAMETERS:
 WINDOW_SCALE:	Set this keyword to scale the window size to the image size.
		Otherwise, the image size is scaled to the window size.
		This keyword is ignored when outputting to devices with 
		scalable pixels (e.g., PostScript).

	ASPECT:	Set this keyword to retain the image's aspect ratio.
		Square pixels are assumed.  If WINDOW_SCALE is set, the 
		aspect ratio is automatically retained.

	INTERP:	If this keyword is set, bilinear interpolation is used if 
		the image is resized.

  OUTPUTS:
	No explicit outputs.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	The currently selected display is affected.

 RESTRICTIONS:
	None.

 PROCEDURE:
	If the device has scalable pixels, then the image is written over
	the plot window.

 MODIFICATION HISTORY:
	DMS, May, 1988.

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_imagecont.pro)


PLIB_IMAGEPLOT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pLIB_ImagePlot

  PURPOSE:
	Overlay an image and a contour plot.

  CATEGORY:
	General graphics.

  CALLING SEQUENCE:
	IMAGE_CONT, A

  INPUTS:
	A:	The two-dimensional array to display.

  KEYWORD PARAMETERS:
 WINDOW_SCALE:	Set this keyword to scale the window size to the image size.
		Otherwise, the image size is scaled to the window size.
		This keyword is ignored when outputting to devices with 
		scalable pixels (e.g., PostScript).

	ASPECT:	Set this keyword to retain the image's aspect ratio.
		Square pixels are assumed.  If WINDOW_SCALE is set, the 
		aspect ratio is automatically retained.

	INTERPolate:	If this keyword is set, bilinear interpolation is used if 
		the image is resized.
	BACKGROUND: 	Background color
	Color:		Color of text

	XRANGE: A two-element-vector, which defines the _Annotation_ on the x-axis. 
		It does not affect the output
		of the image.
       POSITION: [x0, y0, x1, y1]

  OUTPUTS:
	No explicit outputs.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	The currently selected display is affected.

 RESTRICTIONS:
	None.

 PROCEDURE:
	If the device has scalable pixels, then the image is written over
	the plot window.

 MODIFICATION HISTORY:
	DMS, May, 1988.

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_imageplot.pro)


PLIB_MATRIXSIZE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pLIB_MatrixSize

  PURPOSE:
       Obtain size, dimension and type from an array with maximum of 4 dimensions

  CATEGORY:
	Standard Library

  CALLING SEQUENCE:
	pLIB_MatrixSize, M, xs, ys, zs, n, dim = dim, type = type

  INPUTS:
	M:	Matrix

 OPTIONAL INPUT PARAMETERS:
	xs, ys, zs, n

  KEYWORD PARAMETERS:
       Dim:	Dimensionality of the scan
	Type: 	Type of the scan 
		0	Undefined	
		1	Byte	
		2	Integer	
		3	Longword integer	
		4	Floating point	
		5	Double-precision floating	
		6	Complex floating	
		7	String	
		8	Structure	
		9	Double-precision complex	
		10	Pointer	
		11	Object reference	
		12	Unsigned Integer	
		13	Unsigned Longword Integer	
		14	64-bit Integer	
		15	Unsigned 64-bit Integer	

  OUTPUTS:
	None.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None

 RESTRICTIONS:
	Dimensions larger then 4 are not considered

 PROCEDURE:
       

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_matrixsize.pro)


PLIB_OPLOTERR

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	PLIB_OPLOTERR

  PURPOSE:
	Overplot data points with accompanying error bars.

  CATEGORY:
	Plotting, 2-dimensional.

  CALLING SEQUENCE:
	PLIB_OPLOTERR, [ X ,]  Y , Err  [, Psym ], Color = Color

  INPUTS:
	Y:	The array of Y values.

	Err:	The array of error bar values.

 OPTIONAL INPUT PARAMETERS:
	X:	An optional array of X values.  The procedure checks whether 
		or not the third parameter passed is a vector to decide if X 
		was passed.
		
		If X is not passed, then INDGEN(N_ELEMENTS(Y)) is assumed for 
               the X values.

	PSYM:	The plotting symbol to use (default = +7).

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	Arrays cannot be of type string.  There must be enough points to
	plot.

 PROCEDURE:
	A plot of X versus Y with error bars drawn from Y - ERR to Y + ERR
	is written to the output device over any plot already there.

 MODIFICATION HISTORY:
	William Thompson	Applied Research Corporation
	July, 1986		8201 Corporate Drive
				Landover, MD  20785
       kdb, March, 1997  - Fixed a problem if 1 element arrays where used.

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_oploterr.pro)


PLIB_WRITEAFFINE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pLIB_WriteAffine

  PURPOSE:
       Write a affine transformation matrix to disk

  CATEGORY:
	File I/O

  CALLING SEQUENCE:
	pLIB_WriteAffine, filename

  INPUTS:
	Filename: The name of the scan. This is used 
		  to generate the name of the output file.
       Affine	: 4x4 affine transformation matrix, which can
                 be created with fLIB_CreateAffine()

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	A file with the name .afn


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_writeaffine.pro)


PLIB_WRITEAFFINETRANS

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pLIB_WriteAffineTrans

  PURPOSE:
       Write a affine transformation matrix to disk

  CATEGORY:
	File I/O

  CALLING SEQUENCE:
	pLIB_WriteAffine, filename

  INPUTS:
	Filename: The name of the scan. This is used 
		  to generate the name of the output file.
       Affine	: 12-parameter set to create an affine transformation

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	A file with the name .aft


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2000/02/13	Dialog for overwriting added, if keyword is selected.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_writeaffinetrans.pro)


PLIB_WRITELIST.STRUCTARRAY, FILENAME

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pLIB_WriteList.StructArray, Filename

  PURPOSE:
       Write data from a structure to a file.

  CATEGORY:
	LIB

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	Array of structures

  KEYWORD PARAMETERS:
       __________________________________



 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/plib_writelist.pro)


FFTB_BASELINECORRECTION

[Previous Routine] [Next Routine] [List of Routines]

  NAME:		
       fFTB_BaselineCorrection
	
  PURPOSE:
       Perform a baseline correction on a given vector of non-complex numbers.

  CATEGORY:
	Filter Tool Box

  CALLING SEQUENCE:
	Y = fFTB_BaselineCorrection(Y, BlCorr)

  INPUTS:
	Y	: Vector of real numbers.
	BlCorr	: Structure providing the parameters to be used.
		

  OUTPUTS:
	Array of baseline corrected values


 PROCEDURE:
       The baseline will be determined by a procedure (selected by
       the mode tag of the structure BlCorr, which can be created by the
	function fFTB_CreateBlCorrCls() 
	Mode 1:	The 1st derivative of Y is calculated. Each point,
	        where the derivative is less then BlCorr.DerivThres
		is used as basepoint for interpolation.
	Mode11: This method uses the same approach as mode
	        1. Additionally,  a potential basepoint is removed if
	        the derivative exceeds BlCorr.DerivThres within an
	        intervall given by BlCorr.MinFlatPoints.
	Mode12: Linear ramp going from the value at BlCorr.DisplayMin
	        to the value at BlCorr.DisplayMax
	Mode13: Exactly as 1, but points are considered, for which the
	        1st derivative is larger than BlCorr.DerivThres,
		This mode can detect ramps.
	Mode 2: The 2nd derivative of Y is calculated. Each point,
	        where the 2nd derivative is less then BlCorr.Deriv2Thres
		is used as basepoint for interpolation.
	Mode 3: This mode is a combination of Mode 1 and Mode 2. The
	        second derivative of a valid point must be larger than 
		a given threshold (maximums of peaks have to be
		excluded) and the absolute value of the first
		derivative must be less than a given
		threshold. Additionally, the minimum distance of two
		basepoints is BlCorr.MinRasterDistance $
               and points which are too near will be
               removed. Finally, points will be inserted for
               interpolation if the distance between two
		points is too large, as defined by
		BlCorr.MaxRasterDistance (if MaxRasterDistance not
		equal 0).  Below an example is for a typical parameter
		setting is shown:
				MODE = 3
				ACTIVE = 0
				LOWPASS = 0.00200000
				DERIVTHRES = 0.0200000
				DERIV2THRES = 0.00200000
				MINFLATPOINTS = 5
				MAXRASTERDISTANCE = 0
				DISPLAYFLAG = 0
				DISPLAYMIN = 0
				DISPLAYMAX = 9517
				OFFSET = 0 

	The baseline detection creates a vector of pairs of (x1, y1). The baseline will be interpolated at these points.            

 MODIFICATION HISTORY:
       Last Modification:

 REQUIREMENTS & BUGS
     

(See /usr/people/ivm/rauscma1/programs/biomap/source/fftb_baselinecorrection.pro)


FFTB_CLOSE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fFTB_Close

  PURPOSE:
       Performs a morphological closing operation on a set of
       images. Morphological closing is performed on each slice
       seperately. 

  CATEGORY:
	FTB

  CALLING SEQUENCE:
	Y = fFTB_Close(Image, [/Gray])

  INPUTS:
	An image data with up to 4 dimensions. The first two
	dimensions are expected to encode the slice.

  KEYWORD PARAMETERS:
       Gray: Perform closing on a gray scale image
       SrtuctSize: Size of the area, which will "closed". The default
       is three.
       Status: Set this keyword to a named variable that will
       contain -1 or 1 dependent on the success of the operation.

  OUTPUTS:
	Array of the same dimension as the input data.


 COMMON BLOCKS:
	None.

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fftb_close.pro)


FFTB_CONVOL

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fFTB_Convol

  PURPOSE:
       Apply a digital filter to a 1-dimensional array. The filter is
	a structure defined by fFTB_CreateFilter(). The input array
	and the filter kernel are convolved using the built in function. 
	If the filter is not defined, then the signal is returned.

  CATEGORY:
	Filter Tool Box

  CALLING SEQUENCE:
	Y = fFTB_Convol(X, Filter, Status)

  INPUTS:
	X	: A 1-dimensional array
	Filter	: structure containing the information about the filter 
		  defined by fFTB_CreateFilter()	

 OPTIONAL INPUT PARAMETERS:
	Status	: Exit status of the function (1 = success, -1 = error) 

  KEYWORD PARAMETERS:
       None

  OUTPUTS:
	Filtered arry


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fftb_convol.pro)


FFTB_CREATEFILTER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fFTB_CreateFilter

  PURPOSE:
       Create a structur, which defines a digital filter

  CATEGORY:
	Signal processing

  CALLING SEQUENCE:
	sFilter = fFTB_CreateFilter() 

  INPUTS:
	None.

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       Type:	Defines the method used for filtering; 1 means fft-type, 0 means convol-type
	fLOW:	Lowest frequency, which will pass the filter
	fHigh: 	Highest frequency, which will pass the filter
	active: The filter can be made active by setting this keyword to 1
	fSize:	The size of the filter kernel. Only applicable to
	        filters of convol-type.
       Res:    Relative resolution of the image to be filtered. Res
               is an array containing three elements.
               For 2D-inplane isotropic filtering it is 
                [1,1,0]                      
               For 2D-inplane anisotropic filtering it is
                [res_x,res_y,0] / max ([res_x,res_y,0])
               For 3D-filtering it is 
                [res_x,res_y,res_z] / max([res_x,res_y,res_z])

  OUTPUTS:
	Structure, containing the filter parameters.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None

 RESTRICTIONS:
	None.


 MODIFICATION HISTORY:
       

 REQUIREMENTS & BUGS
     

(See /usr/people/ivm/rauscma1/programs/biomap/source/fftb_createfilter.pro)


FASL_ADDSUFFIX

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fASL_AddSuffix

  PURPOSE:
       Add a suffix the the filename of a scan.

  CATEGORY:
	ASL

  CALLING SEQUENCE:
	Y = fASL_AddSuffix(Filename, Suffix)

  INPUTS:
	Filename: Filename of the scan (e.g. MDIO.ScanFilename)
       Suffix:   The Suffix to be added (e.g. _dtr.img). The
                 extension ".img" will be added if not supplied.

  OUTPUTS:
	The new filename


(See /usr/people/ivm/rauscma1/programs/biomap/source/fasl_addsuffix.pro)


FASL_CHECKRESULTSUBJECT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fASL_CheckResultSubject

  PURPOSE:
       Check if a folder with the name "Result" exists for a 
       data set, which was stored under the name "Filename". The
       filename must be conform to the folder structure of BioMAP's
       ANALYZE+-database. The "Result"-Subject can be created and
       used for specific projects as a container for results from
       multi-subject-analysis.
         

  CATEGORY:
	ASL

  CALLING SEQUENCE:
	Y = fASL_CheckResultSubject(Filename)

  INPUTS:
	Filename: Filename of a MDIO, which was already stored in the database.

  KEYWORD PARAMETERS:
       Create: Create the folder, in case that it does not exist.  
       ResultFolder: On exit, this variable will contain the name of
       the result folder.

  OUTPUTS:
	The function will return 1, if the folder exists or was
	created and -1, if it does not exist or if the filename was
	not valid.

 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fasl_checkresultsubject.pro)


FASL_GETLABEL

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fASL_GetLabel

  PURPOSE:
       Extract the basic scan name of the filename of a MDIO.

  CATEGORY:
	ASL

  CALLING SEQUENCE:
	Y = fASL_GetLabel(ScanFilename)

  INPUTS:
	ScanFilename: String containing the name of the img-file.

  OUTPUTS:
	Scanfilename without path, suffix or index


 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fasl_getlabel.pro)


FASL_READANALYZE_UI

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fASL_ReadAnalyze_ui

  PURPOSE:
       Provide a file dialog box and load an ANALYZE volume from disk.

  CATEGORY:
	__________________________________

  CALLING SEQUENCE:
	__________________________________

  INPUTS:
	__________________________________

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2001/02/16	The dialog box appears centered on the brainmap window.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fasl_readanalyze_ui.pro)


FASL_CREATESUBJECT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fASL_CreateSubject

  PURPOSE:
       Create folder for a new subject. 
         

  CATEGORY:
	ASL

  CALLING SEQUENCE:
	pASL_CreateSubject, ProjectName, [FolderName]

  INPUTS:
	FolderName: If ommited a name will be generate from the system
	time.

  KEYWORD PARAMETERS:
       Folderpath: On exit, this variable will contain the name of
       the result folder.


 MODIFICATION HISTORY:
       __________________________________

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pasl_createsubject.pro)


PASL_DATAMANAGER

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
 pASL_DataManager

  PURPOSE:
       Load, store and manager all data sets and associated data.

  CATEGORY:
 ASL

  CALLING SEQUENCE:
 pASL_DataManager, RootFolder

  INPUTS:
       RootFolder: Name of folder, which contains project folders


 COMMON BLOCKS:
 None.


 MODIFICATION HISTORY:
       2001/02/14  After saving, the source-field of the MDIO is set to ANALYZE. This
    will indicate that the scan now a copy of the scan exists in ANALYZE
    format, which allows further processing.
 2001/03/23  A check for session and project definition is performed before saving

(See /usr/people/ivm/rauscma1/programs/biomap/source/pasl_datamanager.pro)


PASL_READDAT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pASL_ReadDat

  PURPOSE:
       Read a dat-file, which is associated to an ANALYZE-scan from disk.

  CATEGORY:
	ASL

  CALLING SEQUENCE:
       pASL_ReadDat, Filename, Header, verbose = Verbose, KeepSuffix
       = KeepSuffix, Status = Status

  INPUTS:
	__________________________________

 OPTIONAL INPUT PARAMETERS:
	__________________________________

  KEYWORD PARAMETERS:
       __________________________________

  OUTPUTS:
	__________________________________


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       if Vox(2) is 0 then it is set to 1.0 mm, in order to allow overlaying.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pasl_readdat.pro)


PASL_WRITEANALYZE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	pASL_WriteAnalyze

  PURPOSE:  
       Write a volume or a series of volumes (a scan) to a file.

  CATEGORY:
	ASL

  CALLING SEQUENCE:
	pASL_WriteAnalyze, MyFilename, MDIO

  INPUTS:
	Filename: Name of the file (including the suffix, e.g. .img)
       MDIO    : Scan to written do file

  KEYWORD PARAMETERS:
   VE: 	Store images in ANALYZE VE format. In this case the whole scan in written to 
		one file.
   Force:      Overwrite files without query.
   Access:     Set the write access flags: 
               "u": Only the owner can modify the data set
               "g": The group and the owner can modify the data set 
               "o": Every one can modify the data set
               These flags can only be set to "no access" manually.
   Status:     Returns the status of the function on exit (-1=failed,
               1=ok)

 MODIFICATION HISTORY:
       2001/02/19	Writing long (type 8) volumes implemented.
	2001/02/27	Error handler implemented.
	2001/03/02	Affine transformation parameters are always written to disk.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/pasl_writeanalyze.pro)


FPWI_BLOODVOLUMECHANGE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fPWI_BloodVolumeChange

  PURPOSE:
       Calculate the percent blood volume change of a CTC from a pre contrast scan,
	a post contrast scan and the CTC time series. This function is usefull to 
     	analyze functional imaging data, where USPIO or SPIO were infused before
	the experiment to visualize functional activation. 

  CATEGORY:
	Perfusion analysis

  CALLING SEQUENCE:
	Y = fPWI_BloodVolumeChange(PreScan, PostScan, CTC)

  INPUTS:
	PreScan:	MDIO of size (xs,ys,zs,1)
	PostScan:	MDIO of size (xs,ys,zs,1)
	CTC:		MDIO of size (xs,ys,zs,n)

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       Range:		Voxel values of the PostScan to be included into analysis.
	Atten:		On exit, this keyword contains the attenuation map,
			which was calculated from the pre- and post-contrast scans.
	Status:		Status of the calculation (-1: error; 1: success)

  OUTPUTS:
	MDIO, containing the result of the calculation. If the calculation has failed,
	-1 is returned.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
	None.


 MODIFICATION HISTORY:
       2000/02/14	Function created.
       2000/02/15	Status keyword and input checks added.

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fpwi_bloodvolumechange.pro)


FPWI_CTC

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fPWI_CTC

  PURPOSE:
       Calculate the concentration time curve from dynamic imaging
       data. The raw data can be a T1- or T2 weighted scan and must
       be defined by the keyword Contrast. If this keyword is not
       provided, T2/T2*-weighting is used as default. 

  CATEGORY:
	PWI

  CALLING SEQUENCE:
	Y = fPWI_CTC(MDIO, Threshold, n1, n2, last)

  INPUTS:
	MDIO     : Scan containing the raw data.
       Threshold: Minimum voxel value, for which the CTC will be
                  calculated. The threshold will be applied to the
                  mean of the baseline-volumes. In addition, only
                  those voxels will be considered, were there is at
                  least one volume with signal exceeds 10% of the
                  threshold.
       N1:        First Baseline volume. Volumes before N1 will be
                  disregarded (e.g. signal not in steady state). 
       N2:        Last baseline volume.    
       Last:      Last volume to be included into analysis.   


  KEYWORD PARAMETERS:
       SpatialFilter : Spatial filter of the form created by
                       fFTB_CreateFilter()
       TemporalFilter: Spatial filter of the form created by
                       fFTB_CreateFilter()
       Contrast:       0: For T2- or T2*-weighted scans using the relation
                       -ln(S/Baseline)
                       1: For T1-weighted scans using the 1st order
                       approximation S / Baseline -1.
                         
                     
  OUTPUTS:
	Array of the form (xs,ys,zs,n) containing the result of the analysis.



 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fpwi_ctc.pro)


FPWI_GPDF_ATD

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fPWI_gpdf_atd

  PURPOSE:
       Return a Gamma-Probability-Density function, defined by three parameters

  CATEGORY:
	Functions for PWI and fMRI

  CALLING SEQUENCE:
	Y = fPWI_GpDF_atd(t, AM, PT, SH)

  INPUTS:
	t:	Time for which the function should be calculated. Can be a scalar or an array
	AM:	Amplitude
	PT:	Peak time
	SH:	Sharpness

 OPTIONAL INPUT PARAMETERS:
	None.

  KEYWORD PARAMETERS:
       None.

  OUTPUTS:
	The value calculated by the function


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       The parameter a discribes somehow the dispersion of the curve. Small values indicate large
 	width and vice versa. Beside that the dispersion depends on the center of the peak m. For larger
 	m the dispersion increases slightly.

 MODIFICATION HISTORY:
       

 REQUIREMENTS & BUGS
       SRK

(See /usr/people/ivm/rauscma1/programs/biomap/source/fpwi_gpdf_atd.pro)


FPWI_MAP

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fPWI_Map

  PURPOSE:
       Calculate basic parametric maps from dynamic imaging data
       using contrast agent.

  CATEGORY:
	PWI

  CALLING SEQUENCE:
	Y = fPWI_Map(MDIO, N1, N2, TE, Threshold)

  INPUTS:
	MDIO: Scan to be processed.
       
       N1:        First Baseline volume. Volumes before N1 will be
                  disregarded (e.g. signal not in steady state). 
       N2:        Last baseline volume. 

       TE:        Array of echo times. Echo time must be specified
                  for each individual slice. Its length must be equal
                  to the number of slices.   

       Threshold: Minimum voxel value, for which the CTC will be
                  calculated. The threshold will be applied to the
                  mean of the baseline-volumes. In addition, only
                  those voxels will be considered, were there is at
                  least one volume with signal exceeds 10% of the
                  threshold.

  KEYWORD PARAMETERS:
       The following keywords spcify the type of map, which will be calculated.
       CTC:      concentration-time-curve. It can be either
                 calculated from T2- or T2*-weighted scan or from a
                 T1-weighted scan. 
                  Note: If the scan is T2/T2*-weighted a scaling factor of 100/TE will be applied.  
       CBV:      CBV (integral between N2 and Last.
       TTP:      Time to peak.
       CPeak:    Peak concentration.
       MSD:      Maximum signal drop.
       MTT:      Mean transit time (calculated from the first moment
                 of the CTC; N2 is taken as t=0) 
       Other keywords:
       Last:     Last volume to be considered for analysis.
       Contrast: T2 or T2* weighting = 0 (default)
                 T1 weighting = 1 
       VAT:      Volume acquisition time. This parameter is used when
                 calculating time related parameter maps
                 (e.g. TTP). If VAT is not defined, 1 sec is used as default.

  OUTPUTS:
	MDIO, containing the calculated map


 MODIFICATION HISTORY:
       2001/02/20	Function bm_pwi renamed to fPWI_Map;
			Keyword "CMT1" defined.
       2002/12/06      Keyword VAT implemented.

 REQUIREMENTS & BUGS
      

(See /usr/people/ivm/rauscma1/programs/biomap/source/fpwi_map.pro)


FSTAT_SAMPLESIZE

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fSTAT_SampleSize

  PURPOSE:
       Calculate the number of samples required to achieve the
       desired sensitivity. The relation calculates the group size
       with respect to a two-sided test.

  CATEGORY:
	STAT

  CALLING SEQUENCE:
	N = fSTAT_SampleSize(ExpDiffMeans, ExpStdev, Power, Alpha)

  INPUTS:
	ExpDiffMeans: Expected difference in means. This is the
	              difference, which should be detected.
       ExpStdev:     Expected standard deviation
       Power:        The power, which is a value between 0 and
                     1. The power reflects the sensitivity of the
                     test, which is not to miss a true difference in
                     the means of the group.
       Alpha:        Probability to reject H_0, although it is true.

  OUTPUTS:
	Group size



 MODIFICATION HISTORY:
      	Last Modification: 

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fstat_samplesize.pro)


FSTAT_SOLVEGLM

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fSTAT_SolveGlm

  PURPOSE:
       Calculate parameter estimates for factors described by a
       design matrix according to the "General Linear Model". If no
       input was provided test data will be used to validate the
       calculations.

        Note: Results of the example should be according to the
       software STATGRAPHICS:

                         Number of factors  : 3
                         Number of samples  : 8
                         Degrees of freedom : 5

                         Parameter estimates:
                         [6335.51, -23.7486, 150.306]

                         Standard error for b's:
                         [2942.95, 12.8955, 112.070]

                         t-value for b's:
                         [2.15277, -1.84161, 1.34117]
  CATEGORY:
	STAT

  CALLING SEQUENCE:
	Result = fSTAT_SolveGLM(X, Y) 

  INPUTS:
	X: 2-dimensional design matrix of the form 
          (Number of samples, Number of factors)
	Y: 1-dimensional matrix containing the measurements

  KEYWORD PARAMETERS:
       P:        Projection matrix. These allow to make inferences about the
                 differences between several factors. The number of
                 elements along the first index must be equal to the
                 number of factors. The second index corresponds to
                 the number of projections to be calculated.
       KeepData: Calculations performed on X are stored in a common
                 block. If this keyword is set this calculations will
                 not be performed again but data is taken from the
                 common block. This helps to save computation time if
                 large design matrices have to be processed. 
       Verbose:  Print the result of the calculation

  OUTPUTS:
	Structure containing the results:
            NFactors: Number of factors 
            NSamples: Number of samples 
            Estimate: Parameter estimates 
            SError  : Standard error for every estimate
            t       : T-value for every estimate  
            tp      : T-value for linear combinations of factors
                      (projections)
           

 MODIFICATION HISTORY:
      	Last Modification: 23.10.2002

 REQUIREMENTS & BUGS
       

(See /usr/people/ivm/rauscma1/programs/biomap/source/fstat_solveglm.pro)


FWID_GETVALUES

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	fWID_GetValues

  PURPOSE:
       Create a widget, which provides basic input fields. Additionally, an info
	field can be created and a window or device for output can be selected.
	The input fields can contain either strings or numbers. But types can't
	be mixed. If no type is specified, input fields will contain integers.

  CATEGORY:
	Widget

  CALLING SEQUENCE:
	Y = fWID_GetValues(VarNames, InitialValues, string = string, Int = Int, Status = Status, $
                          Title = Title, Info = Info, Device = Device, Reference = Reference

  INPUTS:
	VarNames	: String array containing the names of the input fields

 OPTIONAL INPUT PARAMETERS:
	InitialValues	: Array of same length as VarNames, which contains the initial values

  KEYWORD PARAMETERS:
       Int		: Values are interpreted as integers
       Float		: Values are interpreted as floats
	String		: Values are interpreted as strings
	Title		: String containing the title to be displayd
	Info		: String to be displayed at the bottom of the widget
	Device		: The variable (must be non-zero) contains the selected device on exit.
			  -1             : File; 
			   0,...,NWindows: Window device

  OUTPUTS:
	Array containing the new values of the input fields.


 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
       __________________________________

 RESTRICTIONS:
	__________________________________

 PROCEDURE:
       __________________________________

 MODIFICATION HISTORY:
       2002/12/11 Parameters xoffset and yoffset removed. 
                  Floating-keyword applied if group_leader is defined.

 REQUIREMENTS & BUGS
       SRK ______________________________

(See /usr/people/ivm/rauscma1/programs/biomap/source/fwid_getvalues.pro)


FWID_INPUT

[Previous Routine] [Next Routine] [List of Routines]

  NAME:
	FWID_INPUT

  PURPOSE:
	This widget cluster function manages a data entry field widget.
	The field consists of a label and a text widget.  FLIB_XINPUT's can
	be string fields, integer fields or floating-point fields.  The
	default is an editable string field.

  CATEGORY:
	Widget Clusters.

  CALLING SEQUENCE:
	Result = FLIB_INPUT(Parent)

  INPUTS:
	Parent:	The widget ID of the widget to be the field's parent.

  KEYWORD PARAMETERS:
	TITLE:	A string containing the text to be used as the label for the
		field.  The default is "Input Field:".

	VALUE:	The initial value in the text widget.  This value is
		automatically converted to the type set by the STRING,
		INTEGER, and FLOATING keywords described below.

	UVALUE:	A user value to assign to the field cluster.  This value
		can be of any type.

	FRAME:	The width, in pixels, of a frame to be drawn around the
		entire field cluster.  The default is no frame.

RETURN_EVENTS:	Set this keyword to make cluster return an event when a
		 is pressed in a text field.  The default is
 		not to return events.  Note that the value of the text field
		is always returned when the WIDGET_CONTROL, field, GET_VALUE=X
		command is used.

   ALL_EVENTS: Like RETURN_EVENTS but return an event whenever the
		contents of a text field have changed.

	COLUMN:	Set this keyword to center the label above the text field.
		The default is to position the label to the left of the text
		field.

	ROW:	Set this keyword to position the label to the left of the text
		field.  This is the default.

	XSIZE:	An explicit horizontal size (in characters) for the text input
		area.  The default is to let the window manager size the
		widget.  Using the XSIZE keyword is not recommended.

	YSIZE:	An explicit vertical size (in lines) for the text input
		area.  The default is 1.

	STRING:	Set this keyword to have the field accept only string values.
		Numbers entered in the field are converted to their string
		equivalents.  This is the default.

     FLOATING:	Set this keyword to have the field accept only floating-point
		values.  Any number or string entered is converted to its
		floating-point equivalent.

      INTEGER:	Set this keyword to have the field accept only integer values.
		Any number or string entered is converted to its integer
		equivalent (using FIX).  For example, if 12.5 is entered in
		this type of field, it is converted to 12.

	LONG:	Set this keyword to have the field accept only long integer
		values.  Any number or string entered is converted to its
		long integer equivalent (using LONG).

	FONT:	A string containing the name of the X Windows font to use
		for the TITLE of the field.

    FIELDFONT:	A string containing the name of the X Windows font to use
		for the TEXT part of the field.

	NOEDIT:	Normally, the value in the text field can be edited.  Set this
		keyword to make the field non-editable.

  OUTPUTS:
	This function returns the widget ID of the newly-created cluster.

 COMMON BLOCKS:
	None.

 PROCEDURE:
	Create the widgets, set up the appropriate event handlers, and return
	the widget ID of the newly-created cluster.

 EXAMPLE:
	The code below creates a main base with a field cluster attached
	to it.  The cluster accepts string input, has the title "Name:", and
	has a frame around it:

		base = WIDGET_BASE()
		field = FLIB_XINPUT(base, TITLE="Name:", /FRAME)
		WIDGET_CONTROL, base, /REALIZE

 MODIFICATION HISTORY:
 	Written by:	Keith R. Crosley   June 1992
			KRC, January 1993 -- Added support for LONG
					     integers.
		        AB, 7 April 1993, Removed state caching.
			JWG, August 1993, Completely rewritten to make
				use of improved TEXT widget functionality
			ACY, 25 March, 1994, fix usage of FRAME keyword
                       KDB, May 1994, Initial value =0 would result
                                      in a null text field. Fixed
                                      keyword check.


(See /usr/people/ivm/rauscma1/programs/biomap/source/fwid_input.pro)


FWID_EDITVALUES

[Previous Routine] [List of Routines]

  NAME:
	fWID_Editvalues

  PURPOSE:
       Create a widget, which provides basic input fields. Additionally, an info
	field can be created and a window or device for output can be selected.
	The input fields can contain either strings or numbers. But types can't
	be mixed. If no type is specified, input fields will contain integers.

  CATEGORY:
	Widget

  CALLING SEQUENCE:
	Y = fWID_Editvalues(VarNames, InitialValues, string = string, Int = Int, Status = Status, $
                          Title = Title, Info = Info, Device = Device, Reference = Reference

  INPUTS:
	VarNames	: String array containing the names of the input fields

 OPTIONAL INPUT PARAMETERS:
	InitialValues	: Array of same length as VarNames, which contains the initial values

  KEYWORD PARAMETERS:
       Int		: Values are interpreted as integers
       Float		: Values are interpreted as floats
	String		: Values are interpreted as strings
	Title		: String containing the title to be displayd
	Info		: String to be displayed at the bottom of the widget
	Device		: The variable (must be non-zero) contains the selected device on exit.
			  -1             : File; 
			   0,...,NWindows: Window device

  OUTPUTS:
	Array containing the new values of the input fields.


 COMMON BLOCKS:
	None.


(See /usr/people/ivm/rauscma1/programs/biomap/source/pwid_editvalues.pro)