platform switching fails during checks
Curators are seeing the following error. I suspect it is because the checks being done are not looking at the right entities. Look around line 576 of ExpressionExperimentPlatformSwitchService.
[Gemma - main (2023-10-16 17:00:28,773)] ERROR ubic.gemma.core.util.AbstractCLI.addErrorObject(399) | A raw vector RawExpressionDataVector Id=1851944546 DE=1431484_at QT=rma value EE=Brain BRCA1 conditional knockout, 48 bytesfor QT =QuantitationType Id=577090 Name=rma value General Type=QUANTITATIVE Type=AMOUNT Scale=LOG2 Representation=DOUBLE [Normalized] [Background Subtracted] [Recomputed From Raw] [Preferred] was not correctly switched to the target platform ArrayDesign Id=594 Name=Affymetrix MOE_430_2.0/A/B Short Name=MOE_430_2.0AB_Merged, it was still on ArrayDesign Id=170 Name=Affymetrix GeneChip Mouse Expression Array 430B Short Name=GPL340 java.lang.IllegalStateException: A raw vector RawExpressionDataVector Id=1851944546 DE=1431484_at QT=rma value EE=Brain BRCA1 conditional knockout, 48 bytesfor QT =QuantitationType Id=577090 Name=rma value General Type=QUANTITATIVE Type=AMOUNT Scale=LOG2 Representation=DOUBLE [Normalized] [Background Subtracted] [Recomputed From Raw] [Preferred] was not correctly switched to the target platform ArrayDesign Id=594 Name=Affymetrix MOE_430_2.0/A/B Short Name=MOE_430_2.0AB_Merged, it was still on ArrayDesign Id=170 Name=Affymetrix GeneChip Mouse Expression Array 430B Short Name=GPL340 at ubic.gemma.core.loader.expression.ExpressionExperimentPlatformSwitchService.switchDataForPlatform(ExpressionExperimentPlatformSwitchService.java:582) ~[gemma-core-1.30.3.jar:?] at ubic.gemma.core.loader.expression.ExpressionExperimentPlatformSwitchService.switchExperimentToArrayDesign(ExpressionExperimentPlatformSwitchService.java:181) ~[gemma-core-1.30.3.jar:?] at ubic.gemma.core.apps.ExpressionExperimentPlatformSwitchCli.processExperiment(ExpressionExperimentPlatformSwitchCli.java:101) [gemma-cli-1.30.3.jar:?] at ubic.gemma.core.apps.ExpressionExperimentPlatformSwitchCli.doWork(ExpressionExperimentPlatformSwitchCli.java:55) [gemma-cli-1.30.3.jar:?] at ubic.gemma.core.util.AbstractCLI.executeCommand(AbstractCLI.java:133) [gemma-cli-1.30.3.jar:?] at ubic.gemma.core.apps.GemmaCLI.main(GemmaCLI.java:199) [gemma-cli-1.30.3.jar:?]
The problem is apparently the use of a 'thaw' which detaches the vectors from the experiment, so that when we modify them the ones associated with the experiment are not changed. The vectors need to be re-associated with the persistent collection.
I also don't think this is being done in a transaction? So I'm not sure the ideal way to fix this, leaving it to @arteymix
I ran into some issue with lingering BAs in cache, but it turned out the model was not detached from the BioMaterial.
We've confirmed that platform switching now works correctly except for some dataset-specific issues.