Package net.sf.basedb.plugins
Class LowessNormalization
java.lang.Object
net.sf.basedb.core.plugin.AbstractPlugin
net.sf.basedb.core.plugin.AbstractAnalysisPlugin
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: 2015-05-12 11:27:08 +0200 (ti, 12 maj 2015) $
-
Nested Class Summary
Modifier and TypeClassDescription(package private) static class
private static class
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final PluginParameter<Integer>
private RequestInformation
private static final PluginParameter<Float>
private static final PluginParameter<Float>
private static final PluginParameter<Integer>
protected static final PluginParameter<String>
Section for lowess optionsprivate static final Set<Permissions>
private EnhancedThreadSignalHandler
private static double
Fields inherited from class net.sf.basedb.core.plugin.AbstractAnalysisPlugin
CHILD_DESCRIPTION, CHILD_NAME, CONTEXT_BIOASSAYS, CONTEXT_BIOASSAYSET, CONTEXT_DERIVEDBIOASSAY, defaultGuiContexts, nameType, optionalNameType, SOURCE_BIOASSAYS, SOURCE_BIOASSAYSET, SOURCE_DERIVEDBIOASSAY, TRANSFORMATION_NAME
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncalculateWeights
(List<LowessNormalization.SpotData> data, double A1, List<Double> wFit) void
configure
(GuiContext context, Request request, Response response) Configure the plugin.private RequestInformation
private PluginParameter<ReporterList>
Request use access to Experiment:s and read access to Job:s.getRequestInformation
(GuiContext context, String command) This method will return theRequestInformation
for a given command, i.e.Get the signal handler that is handling signals on behalf of this object.isInContext
(GuiContext context, Object item) Check that the item is a bioassayset/derived bioassay and that the logged in user has permission to use the current item.lowess
(List<LowessNormalization.SpotData> data, double f, int iter, double delta) private static double
medianCorrection
(List<LowessNormalization.SpotData> data, Double[] smoothCurve) 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.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, MACalculator mac) boolean
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
Returns TRUE, since that is how the plugins used to work before this method was introduced.private static double[]
Methods inherited from class net.sf.basedb.core.plugin.AbstractAnalysisPlugin
getChildDescriptionParameter, getChildNameParameter, getCurrentBioAssaySet, getCurrentDerivedBioAssay, getCurrentExperiment, getGuiContexts, getMainType, getSourceBioAssays, getSourceBioAssaySet, getSourceBioAssaySetParameter, getSourceBioAssaysParameter, getSourceDerivedBioAssay, getSourceDerivedBioAssayParameter, getTransformationName, getTransformationNameParameter, restrictSource
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, init, isLogging, 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 Details
-
permissions
-
fitFractionParameter
-
deltaParameter
-
iterParameter
-
blockGroupParameter
-
lowessSection
Section for lowess options -
ywRangeFactor
private static double ywRangeFactor -
configureJob
-
signalHandler
-
-
Constructor Details
-
LowessNormalization
public LowessNormalization()
-
-
Method Details
-
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 interfacePlugin
- Overrides:
supportsConfigurations
in classAbstractPlugin
- 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 interfacePlugin
- Overrides:
requiresConfiguration
in classAbstractPlugin
- Returns:
- TRUE or FALSE
-
getPermissions
Request use access to Experiment:s and read access to Job:s.- Specified by:
getPermissions
in interfacePlugin
- Overrides:
getPermissions
in classAbstractPlugin
- Returns:
- A collection of permissions or null to not use permissions
- Since:
- 2.0.2
-
run
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 interfacePlugin
- Parameters:
request
- Request object with the command and parametersresponse
- Response object in for the plugin to response throughprogress
- AProgressReporter
where the plugin can report its progess, can be null
-
isInContext
Description copied from class:AbstractAnalysisPlugin
Check that the item is a bioassayset/derived bioassay and that the logged in user has permission to use the current item.- Specified by:
isInContext
in interfaceInteractivePlugin
- Overrides:
isInContext
in classAbstractAnalysisPlugin
- Parameters:
context
- Current guicontextitem
- The item to check.- Returns:
- null if the item is a valid item, an error message otherwise
-
getRequestInformation
public RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException Description copied from interface:InteractivePlugin
This method will return theRequestInformation
for a given command, i.e. the list of parameters and some nice help text.- Specified by:
getRequestInformation
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
command
- The command- Returns:
- The
RequestInformation
for the command - Throws:
BaseException
- if there is an error
-
configure
Description copied from interface:InteractivePlugin
Configure the plugin. Hopefully the client is supplying values for the parameters specified byInteractivePlugin.getRequestInformation(GuiContext, String)
.- Specified by:
configure
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
request
- Request object with the command and parametersresponse
- Response object in for the plugin to response through
-
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 interfaceSignalTarget
- 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. -
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 accesssource
- The source bioassay set that is going to be normalizedjob
- The job that is doing the normalization, or nullblockGroupSize
- The number of blocks to group and normalise at the same time, if <=0, all blocks on a bioassay are grouped to a single datasetexcludeReporters
- A reporter list containing reporters that should not be used in when normalizing, or null to use all spotsprogress
- 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, MACalculator mac) throws SQLException - Throws:
SQLException
-
getConfigureJobParameters
-
getExcludeReportersParameters
-
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
-