|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.basedb.clients.web.ExperimentExplorer
public class ExperimentExplorer
A class for storing settings and doing work related to the experiment
explorer tool in the web interface. The JSP pages that uses this class
are located in the www/views/experiments/explorer
directory
and it's subdirectory.
This class is used two things:
Most of the settings are stored in regular ItemContext
: objects. This
means that they will be saved to the database when the user logs out and
loaded again the next time they are needed. Each experiment explorer uses
two ItemContext
objects. One for storing the settings for the
reporter search page and one for the view page. The reporter search settings
are stored in the context SessionControl.getCurrentContext(Item.REPORTER,
"explorer.id")
and the view page settings are stored in
SessionControl.getCurrentContext(Item.SPOTDATA, "explorer.id")
where
"id" is replaced by the bioassayset's id.
Nested Class Summary | |
---|---|
static class |
ExperimentExplorer.AnnotationGroup
An annotation group contains statistical information about the spot values falling into the group. |
static class |
ExperimentExplorer.AnnotationSummary
An annotation summary object keeps track of intensities and other statistical information based on the annotation group. |
static class |
ExperimentExplorer.ReporterPositions
Cache entry for a reporter with positions. |
Field Summary | |
---|---|
private Set<Integer> |
annotationTypeIds
The currently selected annotation types on the view page. |
private Map<Short,Integer> |
bioAssays
Maps a bioassays cube column number to it's id for fast loading by the getBioAssay(DbControl, short) method. |
private BioAssaySet |
bioAssaySet
The bioassay set we are exploring. |
private ExperimentExplorer.ReporterPositions[] |
cache
The cache of reporter ids matching the current reporter filter. |
static String[] |
COLORS
Predefined colors for annotation groups |
static int |
DEFAULT_CACHE_SIZE
Deprecated. In 2.11, for performance reasons the cache always contains the full set of reporters |
private static ItemContext |
defaultReporterContext
The default context for the reporter search page. |
private static Map<RawDataType,ItemContext> |
defaultSpotContexts
Stores default context for the spot data list on the view page. |
private int |
matchingReporters
Number of reporter that match the reporter search. |
private int[] |
posCache
|
private int |
positionIndex
The index of the curren position on the view page. |
private int |
reporterIndex
The index of the current reporter on the view page. |
private SnapshotManager |
snapshotManager
The snapshot manager that loads annotation values. |
static int |
SPOT_ALL
Special value to use in the setPositionIndex(int) method
to show all positions. |
static int |
SPOT_AVG
Special value to use in the setPositionIndex(int) method
to calculate the average for each bioassay. |
private Map<Integer,ExperimentExplorer.AnnotationSummary> |
summaryCache
Caches annotation summaries. |
Constructor Summary | |
---|---|
private |
ExperimentExplorer(BioAssaySet bioAssaySet)
Create a new experiment explorer. |
Method Summary | |
---|---|
ItemContext |
getAndSetReporterContext(SessionControl sc,
PageContext pageContext)
Get and update the current settings for the reporter context. |
ItemContext |
getAndSetSpotContext(SessionControl sc,
PageContext pageContext)
Get and update the current settings for the spot context. |
ExperimentExplorer.AnnotationSummary |
getAnnotationSummary(DbControl dc,
AnnotationType annotationType)
Get an AnnotationSummary object which can be used to calculate means and other values for each annotation group. |
int |
getAnnotationTypeId()
Deprecated. In 2.14, use getAnnotationTypeIds() instead |
Set<Integer> |
getAnnotationTypeIds()
Get the selected annotation types. |
List<AnnotationType> |
getAnnotationTypes(DbControl dc,
boolean includeBioAssayAnnotations)
Get the annotation types that are of interest in this experiment. |
BioAssay |
getBioAssay(DbControl dc,
short columnNo)
Get the bioassay with the specified column number in the data cube. |
BioAssaySet |
getBioAssaySet(DbControl dc)
Get the bioassay set that is currently beeing explored. |
int |
getCacheSize()
The number of reporter id'd to cache. |
ItemContext |
getDefaultReporterContext()
Get the default reporter context that is used to initialise the actual context. |
ItemContext |
getDefaultSpotContext()
Get the default spot context that is used to initialise the actual context. |
static ExperimentExplorer |
getExplorer(BioAssaySet bioAssaySet)
Get the existing experiment explorer for a bioassayset or create a new one if none exist yet. |
int |
getMatchingReporters(DbControl dc)
Get the number of reporters matching the current reporter filter. |
int |
getNumBioAssays()
Get the number of bioassays in the bioassayset. |
int |
getNumPositions(DbControl dc,
int index)
Get the number of unique positions the reporter of the specifed index is present in among all the bioassays in the bioassay set. |
int |
getNumPositions(DbControl dc,
ReporterData reporter)
Deprecated. In 2.11 for performance reasons, use getNumPositions(DbControl, int)
instead |
int |
getNumReporters()
Get the total number of unique reporters found in the bioassayset. |
int |
getNumSpots()
Get the total number of spots in the bioassayset. |
int |
getPosition(DbControl dc,
int reporterIndex,
int positionIndex)
Get the position number of the position specified by the given reporter and position index. |
int |
getPosition(DbControl dc,
ReporterData reporter,
int positionIndex)
Deprecated. In 2.11 for performance reasons, use getPosition(DbControl, int, int)
instead |
int |
getPositionIndex()
Get the index of the current position. |
ReporterData |
getReporter(DbControl dc,
int index)
Get the reporter for the specified index. |
int |
getReporterIndex()
Get the index of the current reporter. |
private int |
getReporterIndex(DbControl dc,
ReporterData reporter)
Deprecated. This method is a helper for other deprecated methods. Do not use it in non-deprecated methods. |
DynamicSpotQuery |
getReporterQuery(DbControl dc,
List<String> selectionList)
Get a query returning the reporter data used by the reporter search page. |
SnapshotManager |
getSnapshotManager()
Get the snapshot manager that is used to load annotation values. |
DynamicSpotQuery |
getSpotQuery(DbControl dc,
int reporterIndex,
int positionIndex,
List<TableColumn> selectionList)
Get a query returning spot data for a given reporter and position. |
DynamicSpotQuery |
getSpotQuery(DbControl dc,
ReporterData reporter,
int positionIndex,
List<TableColumn> selectionList)
Deprecated. In 2.11. For performance reasons, use getSpotQuery(DbControl, int, int, List) instead |
String |
getSubContext()
Get the subcontext name used for the ItemContext objects
related to this explorer. |
private void |
initReporterCache(DbControl dc)
|
void |
setAnnotationTypeId(int annotationTypeId)
Deprecated. In 2.14, use setAnnotationTypeIds(Collection) instead |
void |
setAnnotationTypeIds(Collection<Integer> ids)
Update the selected annotation types. |
void |
setCacheSize(int cacheSize)
Deprecated. In 2.11. For performance reasons the full reporter set is always cached. |
void |
setPositionIndex(int positionIndex)
Set the index of the curren position. |
void |
setReporterIndex(int reporterIndex)
Set the index of the currently viewed reporter. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int SPOT_ALL
setPositionIndex(int)
method
to show all positions.
public static final int SPOT_AVG
setPositionIndex(int)
method
to calculate the average for each bioassay.
public static final int DEFAULT_CACHE_SIZE
getCacheSize()
,
Constant Field Valuespublic static final String[] COLORS
private static final ItemContext defaultReporterContext
private static final Map<RawDataType,ItemContext> defaultSpotContexts
private final BioAssaySet bioAssaySet
private SnapshotManager snapshotManager
private final Map<Short,Integer> bioAssays
getBioAssay(DbControl, short)
method.
private int[] posCache
private ExperimentExplorer.ReporterPositions[] cache
private int reporterIndex
getReporterIndex()
private int positionIndex
getPositionIndex()
private int matchingReporters
private Set<Integer> annotationTypeIds
private Map<Integer,ExperimentExplorer.AnnotationSummary> summaryCache
Constructor Detail |
---|
private ExperimentExplorer(BioAssaySet bioAssaySet)
Method Detail |
---|
public static ExperimentExplorer getExplorer(BioAssaySet bioAssaySet)
SessionControl
:s session settings.
bioAssaySet
- The bioassay set to get an experiment explorer for
ExperimentExplorer
objectpublic BioAssaySet getBioAssaySet(DbControl dc)
dc
- The DbControl used for access the database
BioAssaySet
objectBioAssaySet.getById(DbControl, int)
public SnapshotManager getSnapshotManager()
public int getNumBioAssays()
public BioAssay getBioAssay(DbControl dc, short columnNo)
getSpotQuery(DbControl, ReporterData, int, List)
)
can only return the column number, but we usually want to display
the name, etc.
dc
- The DbControl object used to get the bioassaycolumnNo
- The colum number
public int getCacheSize()
getMatchingReporters(DbControl)
unless the cache hasn't been initialized.
public void setCacheSize(int cacheSize)
cacheSize
- The sizegetCacheSize()
public int getNumReporters()
BioAssaySet.getNumReporters()
public int getNumSpots()
BioAssaySet.getNumSpots()
public String getSubContext()
ItemContext
objects
related to this explorer. The name is created like this:
explorer.id
where id is replaced with the id of
the bioassayset we are exploring.
public ItemContext getDefaultSpotContext()
ItemContext
objectpublic ItemContext getDefaultReporterContext()
ItemContext
objectpublic ItemContext getAndSetSpotContext(SessionControl sc, PageContext pageContext)
sc
- The SessionControl of the logged in userpageContext
- The PageContext
containing the
updated settings, or null to not update the settings
ItemContext
objectBase.getAndSetCurrentContext(SessionControl, Item, PageContext, ItemContext)
public ItemContext getAndSetReporterContext(SessionControl sc, PageContext pageContext)
sc
- The SessionControl of the logged in userpageContext
- The PageContext
containing the
updated settings, or null to not update the settings
ItemContext
objectBase.getAndSetCurrentContext(SessionControl, Item, PageContext, ItemContext)
public int getAnnotationTypeId()
getAnnotationTypeIds()
instead
public void setAnnotationTypeId(int annotationTypeId)
setAnnotationTypeIds(Collection)
instead
annotationTypeId
- The annotation type id or 0 if none is
selectedpublic Set<Integer> getAnnotationTypeIds()
public void setAnnotationTypeIds(Collection<Integer> ids)
ids
- A collection containing the id's of all annotation types
that should currently be selected, all other annotation types are
automatically deselectedpublic List<AnnotationType> getAnnotationTypes(DbControl dc, boolean includeBioAssayAnnotations)
dc
- The DbControl for database accessincludeBioAssayAnnotations
- If bioassay annotation should be included
even if they are not experimental factors
Experiment.getExperimentalFactors()
public ExperimentExplorer.AnnotationSummary getAnnotationSummary(DbControl dc, AnnotationType annotationType)
dc
- The DbControl for database accessannotationType
- The annotation type, mustn't be null
AnnotationSummary
objectExperimentExplorer.AnnotationGroup.getAnnotationValues()
public int getMatchingReporters(DbControl dc)
dc
- The DbControl for database access
int
of matching reporterspublic int getReporterIndex()
getMatchingReporters(DbControl)
-1.
getReporter(DbControl, int)
public void setReporterIndex(int reporterIndex)
getMatchingReporters(DbControl)
it is set
to the nearest index.
reporterIndex
- The new indexgetReporter(DbControl, int)
public ReporterData getReporter(DbControl dc, int index)
dc
- The DbControl to use for database accessindex
- The index
getMatchingReporters(DbControl)
public int getNumPositions(DbControl dc, int index)
dc
- The DbControl to use for database accessindex
- The reporter index
getReporter(DbControl, int)
,
getMatchingReporters(DbControl)
public int getNumPositions(DbControl dc, ReporterData reporter)
getNumPositions(DbControl, int)
instead
dc
- The DbControl to use for database accessreporter
- The reporter, or null to find spots without any reporterpublic int getPositionIndex()
getNumPositions(DbControl, int)
-1, or one
of the SPOT_ALL
or SPOT_AVG
special values (negative).
getPosition(DbControl, ReporterData, int)
public void setPositionIndex(int positionIndex)
positionIndex
- The new indexgetPositionIndex()
,
getPosition(DbControl, ReporterData, int)
public int getPosition(DbControl dc, int reporterIndex, int positionIndex)
dc
- reporterIndex
- The reporter indexpositionIndex
- The position index
getMatchingReporters(DbControl)
,
getNumPositions(DbControl, int)
public int getPosition(DbControl dc, ReporterData reporter, int positionIndex)
getPosition(DbControl, int, int)
instead
positionIndex
parameter.
dc
- The DbControl for database accessreporter
- The reporter to look for, or null to find spots without reporterpositionIndex
- The index of the position to find
public DynamicSpotQuery getReporterQuery(DbControl dc, List<String> selectionList)
DynamicSpotQuery
and not a
DataQuery
. This means that we don't get
ReporterData
objects as a result and that we must specify the
properties to select (see ItemContext.configureQuery(DbControl, DynamicQuery, List)
).
The reporter id is always included as the first selected property so it doesn't have to be in the selection list.
dc
- The DbControl for database accessselectionList
- The properties that the query should select
ItemContext.configureQuery(DbControl, DynamicQuery, List)
public DynamicSpotQuery getSpotQuery(DbControl dc, ReporterData reporter, int positionIndex, List<TableColumn> selectionList)
getSpotQuery(DbControl, int, int, List)
instead
public DynamicSpotQuery getSpotQuery(DbControl dc, int reporterIndex, int positionIndex, List<TableColumn> selectionList)
The column number is always included as the first selected property. If the
SPOT_AVG
is specified for positionIndex
a count of the
number of positions is included as the second selected property. Otherwise, the
position number is included as the second selected property.
Then, all channel intensities are selected.
See ItemContext.getDynamicExpression(DbControl, String)
for more information
about how to specify additional selection properties.
dc
- The DbControl for database accessreporterIndex
- The index of the reporterpositionIndex
- The index of the position, or one the special
values SPOT_ALL
or SPOT_AVG
selectionList
- The data that the query should select
private int getReporterIndex(DbControl dc, ReporterData reporter)
reporter
- A reporter or null
private void initReporterCache(DbControl dc)
|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |