2.17.2: 2011-06-17

net.sf.basedb.util.importer.spotdata
Class BaseFileImporter

java.lang.Object
  extended by net.sf.basedb.util.importer.spotdata.BaseFileImporter

public class BaseFileImporter
extends Object

Imports spot data from a serial or matrix BASEfile. Before it can be used various configuration properties must be set.

Optional are:

The importer will create a new child bioassay set. Child bioassays are created according to the data found in the BASEfile. The importer will create a new datacube if the reporter/position mapping has changed or if the child/parent bioassay relationship is not 1:1. The importer supports extra values (float) and will create missing extra value types if needed.

Version:
2.14
Author:
Nicklas
Last modified
$Date: 2011-05-23 15:50:46 +0200 (Mon, 23 May 2011) $

Nested Class Summary
(package private) static class BaseFileImporter.RawDataProxy
           
(package private) static class BaseFileImporter.ReporterProxy
           
 
Field Summary
private  DbControl dc
           
private  File oldFile
           
private  BaseFileParser parser
           
private  ProgressReporter progress
           
private  FileWrapper sourceFile
           
private  IntensityTransform transform
           
private  Transformation transformation
           
 
Constructor Summary
BaseFileImporter()
          Create a new importer object.
 
Method Summary
protected  void checkInterrupted()
          Deprecated. In 2.16, use ThreadSignalHandler.checkInterrupted() instead
 void createChildBioAssays(DbControl dc, BioAssaySet childSet, BaseFileInfo info, boolean useNewDataCube)
          Helper method for creating new child bioassays using the information found in the BaseFileInfo object.
 BioAssaySet createChildBioAssaySet(DbControl dc, BaseFileInfo info, Transformation t, boolean useNewDataCube)
          Helper method for creating a child bioassay set using the information in the BaseFileInfo object.
 void createChildPositionReporterMapping(BioAssaySet child, BaseFileInfo info, ProgressReporter progress)
          Helper method for creating position/reporter mappings for the child bioassay set (which must be in a new datacube).
 void createChildRawDataMapping(BioAssaySet child, BioAssaySet parent, BaseFileInfo info, ProgressReporter progress)
          Helper method for creating a rawdata mapping for the child bioassay set.
 BioAssaySet doImport()
          Start the import.
 BaseFileParser getBaseFileParser()
          Get the underlying parser for the BASEfile.
 DbControl getDbControl()
          Get the current DbControl.
 IntensityTransform getIntensityTransform()
          Get the intensity transform
 ProgressReporter getProgressReporter()
          Get the progress reporter.
 File getSourceFile()
          Deprecated. In 2.16, use getSourceFileWrapper() instead
 FileWrapper getSourceFileWrapper()
          Get the source file.
 Transformation getTransformation()
          Get the destination transformation.
 void setDbControl(DbControl dc)
          Set's the DbControl that should be used to get data from the database.
 void setIntensityTransform(IntensityTransform transform)
          Set the intensity transform that have been applied to the spot data in the file.
protected  void setProgress(int percent, String message)
          Update the progress of the export.
 void setProgressReporter(ProgressReporter progress)
          Set the progress reporter that is used to report progress.
 void setSourceFile(File source)
          Deprecated. In 2.16, use setSourceFileWrapper(FileWrapper) instead
 void setSourceFileWrapper(FileWrapper source)
          Set the source BASEfile to import data from.
 void setTransformation(Transformation transformation)
          Set the destination transformation.
 void useBase2ColumnNames(int channels)
          Reconfigure the parser to use BASE 2 column names instead of BASE 1 column names.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parser

private final BaseFileParser parser

dc

private DbControl dc

progress

private ProgressReporter progress

oldFile

private File oldFile

sourceFile

private FileWrapper sourceFile

transformation

private Transformation transformation

transform

private IntensityTransform transform
Constructor Detail

BaseFileImporter

public BaseFileImporter()
Create a new importer object.

Method Detail

setDbControl

public void setDbControl(DbControl dc)
Set's the DbControl that should be used to get data from the database.


getDbControl

public DbControl getDbControl()
Get the current DbControl.


setProgressReporter

public void setProgressReporter(ProgressReporter progress)
Set the progress reporter that is used to report progress. Call setProgress(int, String) to update the current status.


getProgressReporter

public ProgressReporter getProgressReporter()
Get the progress reporter.


setSourceFile

@Deprecated
public void setSourceFile(File source)
Deprecated. In 2.16, use setSourceFileWrapper(FileWrapper) instead

Set the source BASEfile to import data from.

Parameters:
source - The file

getSourceFile

@Deprecated
public File getSourceFile()
Deprecated. In 2.16, use getSourceFileWrapper() instead

Get the source file.


setSourceFileWrapper

public void setSourceFileWrapper(FileWrapper source)
Set the source BASEfile to import data from.

Parameters:
source - The file
Since:
2.16

getSourceFileWrapper

public FileWrapper getSourceFileWrapper()
Get the source file.


setTransformation

public void setTransformation(Transformation transformation)
Set the destination transformation. A child bioassay set is created.

Parameters:
transformation - The transformation

getTransformation

public Transformation getTransformation()
Get the destination transformation.


setIntensityTransform

public void setIntensityTransform(IntensityTransform transform)
Set the intensity transform that have been applied to the spot data in the file. If not specified, the same transform as for the parent bioassay set is used.

Parameters:
transform - The intensity transform

getIntensityTransform

public IntensityTransform getIntensityTransform()
Get the intensity transform


getBaseFileParser

public BaseFileParser getBaseFileParser()
Get the underlying parser for the BASEfile. It is useful when there is need to change for example, name of columns, add different spot intensity parsers, etc.

Returns:
The BASEfile parser

useBase2ColumnNames

public void useBase2ColumnNames(int channels)
Reconfigure the parser to use BASE 2 column names instead of BASE 1 column names.

Parameters:
channels - The expected number of data channels in the file
Since:
2.16

checkInterrupted

@Deprecated
protected void checkInterrupted()
Deprecated. In 2.16, use ThreadSignalHandler.checkInterrupted() instead

Checks if the currently executing thread has been interrupted and throws a SignalException if it has.


setProgress

protected void setProgress(int percent,
                           String message)
Update the progress of the export.

See Also:
ProgressReporter

doImport

public BioAssaySet doImport()
                     throws IOException
Start the import.

Returns:
The created bioassay set or null if the BASEfile didn't contain spot data
Throws:
IOException

createChildBioAssaySet

public BioAssaySet createChildBioAssaySet(DbControl dc,
                                          BaseFileInfo info,
                                          Transformation t,
                                          boolean useNewDataCube)
Helper method for creating a child bioassay set using the information in the BaseFileInfo object. The created bioassay set is scheduled for saving to the database.

Parameters:
dc - A DbControl to use for database access
info - Information from the parsed BASEfile
t - The parent transformation
useNewDataCube - TRUE to create the child bioassay set in a new datacube, FALSE to use the same as the parent bioassay set
Returns:
The new child bioassay set

createChildBioAssays

public void createChildBioAssays(DbControl dc,
                                 BioAssaySet childSet,
                                 BaseFileInfo info,
                                 boolean useNewDataCube)
Helper method for creating new child bioassays using the information found in the BaseFileInfo object.

See Also:
BaseFileInfo.getChildAssays()

createChildPositionReporterMapping

public void createChildPositionReporterMapping(BioAssaySet child,
                                               BaseFileInfo info,
                                               ProgressReporter progress)
Helper method for creating position/reporter mappings for the child bioassay set (which must be in a new datacube).

Parameters:
child - The new child bioassay set
info - Information about the position/reporter mapping is found in BaseFileInfo.getChildReporterPositions()
progress - Optional progress reporter

createChildRawDataMapping

public void createChildRawDataMapping(BioAssaySet child,
                                      BioAssaySet parent,
                                      BaseFileInfo info,
                                      ProgressReporter progress)
Helper method for creating a rawdata mapping for the child bioassay set. This can only be done if the child is in a new data cube and if the position/reporter mapping hasn't change. Since we know the child/parent bioassay set mapping, the raw data mapping for a spot in the child is the same as the raw data mapping for the spots at the same position among the parents.

Child/parent mapping is taken from the BaseFileInfo object. See BaseFileInfo.getChildColumns(short). This mapping automatically created by createChildBioAssays(DbControl, BioAssaySet, BaseFileInfo, boolean).

Parameters:
child - The new child bioassay set
parent - The parent bioassay set
info - Information about the child/parent mapping is found in BaseFileInfo.getChildColumns(short)
progress - Optional progress reporter

2.17.2: 2011-06-17