2.17.2: 2011-06-17

net.sf.basedb.plugins
Class LowessNormalization

java.lang.Object
  extended by net.sf.basedb.core.plugin.AbstractPlugin
      extended by net.sf.basedb.core.plugin.AbstractAnalysisPlugin
          extended by net.sf.basedb.plugins.LowessNormalization
All Implemented Interfaces:
InteractivePlugin, Plugin, SignalTarget

public class LowessNormalization
extends AbstractAnalysisPlugin
implements InteractivePlugin, SignalTarget

Version:
2.0
Author:
enell, Nicklas
Last modified
$Date: 2010-11-08 14:49:35 +0100 (Mon, 08 Nov 2010) $

Nested Class Summary
(package private) static class LowessNormalization.CallableWorker
           
private static class LowessNormalization.SpotData
           
 
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
 
Field Summary
private static About about
          Plugin description
private static PluginParameter<Integer> blockGroupParameter
           
private  RequestInformation configureJob
           
private static PluginParameter<Float> deltaParameter
           
private static PluginParameter<Float> fitFractionParameter
           
private static PluginParameter<Integer> iterParameter
           
protected static PluginParameter<String> lowessSection
          Section for lowess options
private static Set<Permissions> permissions
           
private  EnhancedThreadSignalHandler signalHandler
           
private static double ywRangeFactor
           
 
Fields inherited from class net.sf.basedb.core.plugin.AbstractAnalysisPlugin
CHILD_DESCRIPTION, CHILD_NAME, CONTEXT_BIOASSAYS, CONTEXT_BIOASSAYSET, defaultGuiContexts, nameType, optionalNameType, SOURCE_BIOASSAYS, SOURCE_BIOASSAYSET, TRANSFORMATION_NAME
 
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
 
Constructor Summary
LowessNormalization()
           
 
Method Summary
private static List<Double> calculateWeights(List<LowessNormalization.SpotData> data, double A1, List<Double> wFit)
           
 void configure(GuiContext context, Request request, Response response)
          Configure the plugin.
 About getAbout()
          Get information about the plugin, such as name, version, authors, etc.
private  RequestInformation getConfigureJobParameters()
           
private  PluginParameter<ReporterList> getExcludeReportersParameters(DbControl dc)
           
 Collection<Permissions> getPermissions()
          Request use access to Experiment:s and read access to Job:s.
 RequestInformation getRequestInformation(GuiContext context, String command)
          This method will return the RequestInformation for a given command, i.e.
 SignalHandler getSignalHandler()
          Get the signal handler that is handling signals on behalf of this object.
 String isInContext(GuiContext context, Object item)
          Check that the item is a bioassayset and that the logged in user has permission to use the current experiment.
private static List<Double> lowess(List<LowessNormalization.SpotData> data, double f, int iter, double delta)
           
private static double medianCorrection(List<LowessNormalization.SpotData> data, Double[] smoothCurve)
           
 BioAssaySet normalize(DbControl dc, BioAssaySet source, Job job, float fitFraction, float delta, int iterations, int blockGroupSize, ProgressReporter progress)
          Normalise the source bioassay set using LOWESS normalization.
 BioAssaySet normalize(DbControl dc, BioAssaySet source, Job job, float fitFraction, float delta, int iterations, int blockGroupSize, ReporterList excludeReporters, ProgressReporter progress)
          Normalise the source bioassay set using LOWESS normalization.
private  List<LowessNormalization.SpotData> readData(DbControl dc, DynamicSpotQuery query, BioAssay assay)
           
 boolean requiresConfiguration()
          Returns FALSE, since that is how the plugins used to work before this method was introduced.
 void run(Request request, Response response, ProgressReporter progress)
          Run the plugin.
 boolean supportsConfigurations()
          Returns TRUE, since that is how the plugins used to work before this method was introduced.
private static double[] weightedLeastSquaresRegression(List<LowessNormalization.SpotData> data, List<Double> w)
           
 
Methods inherited from class net.sf.basedb.core.plugin.AbstractAnalysisPlugin
getChildDescriptionParameter, getChildNameParameter, getCurrentBioAssaySet, getCurrentExperiment, getGuiContexts, getMainType, getSourceBioAssays, getSourceBioAssaySet, getSourceBioAssaySetParameter, getSourceBioAssaysParameter, getTransformationName, getTransformationNameParameter, restrictSource
 
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
checkInterrupted, cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, init, log, log, storeValue, storeValue, storeValues, validateRequestParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.basedb.core.plugin.InteractivePlugin
getGuiContexts
 
Methods inherited from interface net.sf.basedb.core.plugin.Plugin
done, getMainType, init
 

Field Detail

about

private static final About about
Plugin description


permissions

private static final Set<Permissions> permissions

fitFractionParameter

private static final PluginParameter<Float> fitFractionParameter

deltaParameter

private static final PluginParameter<Float> deltaParameter

iterParameter

private static final PluginParameter<Integer> iterParameter

blockGroupParameter

private static final PluginParameter<Integer> blockGroupParameter

lowessSection

protected static final PluginParameter<String> lowessSection
Section for lowess options


ywRangeFactor

private static double ywRangeFactor

configureJob

private RequestInformation configureJob

signalHandler

private EnhancedThreadSignalHandler signalHandler
Constructor Detail

LowessNormalization

public LowessNormalization()
Method Detail

getAbout

public About getAbout()
Description copied from interface: Plugin
Get information about the plugin, such as name, version, authors, etc.

Specified by:
getAbout in interface Plugin
Returns:
An About object

supportsConfigurations

public boolean supportsConfigurations()
Description copied from class: AbstractPlugin
Returns TRUE, since that is how the plugins used to work before this method was introduced.

Specified by:
supportsConfigurations in interface Plugin
Overrides:
supportsConfigurations in class AbstractPlugin
Returns:
TRUE or FALSE

requiresConfiguration

public boolean requiresConfiguration()
Description copied from class: AbstractPlugin
Returns FALSE, since that is how the plugins used to work before this method was introduced.

Specified by:
requiresConfiguration in interface Plugin
Overrides:
requiresConfiguration in class AbstractPlugin
Returns:
TRUE or FALSE

getPermissions

public Collection<Permissions> getPermissions()
Request use access to Experiment:s and read access to Job:s.

Specified by:
getPermissions in interface Plugin
Overrides:
getPermissions in class AbstractPlugin
Returns:
A collection of permissions or null to not use permissions
Since:
2.0.2

run

public void run(Request request,
                Response response,
                ProgressReporter progress)
Description copied from interface: Plugin
Run the plugin. If a progress reporter object is passed it is recommended that the plugin makes use of it.

Specified by:
run in interface Plugin
Parameters:
request - Request object with the command and parameters
response - Response object in for the plugin to response through
progress - A ProgressReporter where the plugin can report its progess, can be null

isInContext

public String isInContext(GuiContext context,
                          Object item)
Description copied from class: AbstractAnalysisPlugin
Check that the item is a bioassayset and that the logged in user has permission to use the current experiment.

Specified by:
isInContext in interface InteractivePlugin
Overrides:
isInContext in class AbstractAnalysisPlugin
Parameters:
context - Current guicontext
item - The item to check.
Returns:
null if the item is a bioassayset, an error message otherwise

getRequestInformation

public RequestInformation getRequestInformation(GuiContext context,
                                                String command)
                                         throws BaseException
Description copied from interface: InteractivePlugin
This method will return the RequestInformation for a given command, i.e. the list of parameters and some nice help text.

Specified by:
getRequestInformation in interface InteractivePlugin
Parameters:
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
command - The command
Returns:
The RequestInformation for the command
Throws:
BaseException - if there is an error

configure

public void configure(GuiContext context,
                      Request request,
                      Response response)
Description copied from interface: InteractivePlugin
Configure the plugin. Hopefully the client is supplying values for the parameters specified by InteractivePlugin.getRequestInformation(GuiContext, String).

Specified by:
configure in interface InteractivePlugin
Parameters:
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
request - Request object with the command and parameters
response - Response object in for the plugin to response through

getSignalHandler

public SignalHandler getSignalHandler()
Description copied from interface: SignalTarget
Get the signal handler that is handling signals on behalf of this object. Multiple invokations of this method may receive the same or different objects. Null may be returned if, for some reason, the current object instance doesn't want to receive signals. Returning null is the same as not implementing this interface.

Specified by:
getSignalHandler in interface SignalTarget
Returns:
A SignalHandler object, or null if the current instance doesn't support signals

normalize

public BioAssaySet normalize(DbControl dc,
                             BioAssaySet source,
                             Job job,
                             float fitFraction,
                             float delta,
                             int iterations,
                             int blockGroupSize,
                             ProgressReporter progress)
Normalise the source bioassay set using LOWESS normalization. All reporters are included.

Since:
2.5
See Also:
normalize(DbControl, BioAssaySet, Job, float, float, int, int, ReporterList, ProgressReporter)

normalize

public BioAssaySet normalize(DbControl dc,
                             BioAssaySet source,
                             Job job,
                             float fitFraction,
                             float delta,
                             int iterations,
                             int blockGroupSize,
                             ReporterList excludeReporters,
                             ProgressReporter progress)
Normalise the source bioassay set using LOWESS normalization.

Parameters:
dc - The DbControl to use for database access
source - The source bioassay set that is going to be normalized
job - The job that is doing the normalization, or null
fitFraction -
delta -
iterations -
blockGroupSize - The number of blocks to group and normalise at the same time, if <=0, all blocks on a bioassay are grouped to a single dataset
excludeReporters - A reporter list containing reporters that should not be used in when normalizing, or null to use all spots
progress - Progress reporter used by the caller to keep track of the progress. Null is allowed
Returns:
The normalized bioassayset
Since:
2.6

readData

private List<LowessNormalization.SpotData> readData(DbControl dc,
                                                    DynamicSpotQuery query,
                                                    BioAssay assay)
                                             throws SQLException
Throws:
SQLException

getConfigureJobParameters

private RequestInformation getConfigureJobParameters()

getExcludeReportersParameters

private PluginParameter<ReporterList> getExcludeReportersParameters(DbControl dc)

lowess

private static List<Double> lowess(List<LowessNormalization.SpotData> data,
                                   double f,
                                   int iter,
                                   double delta)

medianCorrection

private static double medianCorrection(List<LowessNormalization.SpotData> data,
                                       Double[] smoothCurve)

weightedLeastSquaresRegression

private static double[] weightedLeastSquaresRegression(List<LowessNormalization.SpotData> data,
                                                       List<Double> w)

calculateWeights

private static List<Double> calculateWeights(List<LowessNormalization.SpotData> data,
                                             double A1,
                                             List<Double> wFit)

2.17.2: 2011-06-17