Class ExpressionExperimentPlatformSwitchService
java.lang.Object
ubic.gemma.core.loader.expression.ExpressionExperimentPlatformSwitchService
Switch an expression experiment from one array design to another. This is valuable when the EE uses more than on AD,
and a merged AD exists. The following steps are needed:
- Delete old analyses of this experiment and processeddata vectors
- For each array design, for each probe, identify the matching probe on the merged AD. Have to deal with situation
- where more than one occurrence of each sequence is found.
- all DEDVs must be switched to use the new AD's design elements
- all bioassays must be switched to the new AD.
- update the EE description
- commit changes.
- Computed processed data vectors
- Author:
- pavlidis
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BioSequenceUsed to identify design elements that have no sequence associated with them. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidswitchExperimentToArrayDesign(ExpressionExperiment ee, ArrayDesign arrayDesign) If you know the array designs are already in a merged state, you should use switchExperimentToMergedPlatformAutomatically identify an appropriate merged platformbooleanswitchPlatformAndVectors(ExpressionExperiment ee, ArrayDesign arrayDesign) The transactional part ofswitchExperimentToArrayDesign(ExpressionExperiment, ArrayDesign): everything except regenerating the processed vectors.
-
Field Details
-
NULL_BIOSEQUENCE
Used to identify design elements that have no sequence associated with them.
-
-
Constructor Details
-
ExpressionExperimentPlatformSwitchService
public ExpressionExperimentPlatformSwitchService()
-
-
Method Details
-
switchExperimentToArrayDesign
@Transactional(propagation=NEVER) @Audited(value=ExpressionExperimentPlatformSwitchEvent.class, messageSpel="'Switch to use ' + #arrayDesign.shortName") public void switchExperimentToArrayDesign(ExpressionExperiment ee, ArrayDesign arrayDesign) If you know the array designs are already in a merged state, you should use switchExperimentToMergedPlatformPropagation.NEVER: the switch commits in its own transaction, and the processed vectors are then regenerated with none open, becauseProcessedExpressionDataVectorService.createProcessedDataVectors(ExpressionExperiment, boolean)is itselfNEVERand throws when called inside one.- Parameters:
ee- eearrayDesign- The array design to switch to. If some samples already use that array design, nothing will be changed for them.
-
switchPlatformAndVectors
@Transactional public boolean switchPlatformAndVectors(ExpressionExperiment ee, ArrayDesign arrayDesign) The transactional part ofswitchExperimentToArrayDesign(ExpressionExperiment, ArrayDesign): everything except regenerating the processed vectors.- Returns:
- true if the experiment has data on a multi-platform-per-sample design, in which case its processed vectors must be regenerated
-
switchExperimentToMergedPlatform
@Transactional(propagation=NEVER) public ArrayDesign switchExperimentToMergedPlatform(ExpressionExperiment expExp) Automatically identify an appropriate merged platform- Parameters:
expExp- the experiment to switch to a merged platform- Returns:
- the selected merged platform the experiment was switched to
-
locateMergedDesign
-