Class GeoLibraryStrategyTest

java.lang.Object
ubic.gemma.core.loader.expression.geo.GeoLibraryStrategyTest

public class GeoLibraryStrategyTest extends Object
The library-strategy vocabulary, and the one case where GEO's declared value is not believed.
Author:
gembro
  • Constructor Details

    • GeoLibraryStrategyTest

      public GeoLibraryStrategyTest()
  • Method Details

    • testEverySpellingResolves

      @Test public void testEverySpellingResolves()
      🛑 Every constant must round-trip from GEO's own spelling. An unlisted value is FATAL in GeoFamilyParser — deliberately, since folding it into OTHER would admit a chromatin or genomic assay as expression — so a constant nothing can parse into is a constant that never fires.
    • testSpellingIsCaseAndWhitespaceInsensitive

      @Test public void testSpellingIsCaseAndWhitespaceInsensitive()
    • testTheSpellingsAlreadySeenInProd

      @Test public void testTheSpellingsAlreadySeenInProd()
      The spellings that were already in the corpus before the vocabulary was completed.
    • testAnUnknownSpellingIsNotGuessedAt

      @Test public void testAnUnknownSpellingIsNotGuessedAt()
    • testRibosomeProfilingSubmittedAsOther

      @Test public void testRibosomeProfilingSubmittedAsOther()
      🛑 The GSE288755 case: titled … Ribo-seq replicate #1, declared OTHER.
    • testADeclaredStrategyIsNotSecondGuessed

      @Test public void testADeclaredStrategyIsNotSecondGuessed()
      A DECLARED strategy is believed, whatever the sample happens to be called.
    • testRibosomeAssociatedAssaysAreAlsoRiboSeq

      @Test public void testRibosomeAssociatedAssaysAreAlsoRiboSeq()
      Ribosome-ASSOCIATED profiling counts, not only footprinting — Paul's ruling, 2026-09-16.

      These titles are the ones measured in the corpus: eid 11789 … FST TRAP, 15632/15633 …-EGFP-Rpl10a-… IP, 33841 AA Ins poly rep1. 40 TRAP/IP and 32 polysome samples already carried RIBO_SEQ from GEO's own declaration before this regex could match any of them. An earlier version of this test asserted the OPPOSITE for polysome — see the class the ruling reversed, and do not restore it without a newer ruling.

    • testKaryotypeWordsAreNotRibosomeFractions

      @Test public void testKaryotypeWordsAreNotRibosomeFractions()
      🛑 The karyotype words are NOT ribosome fractions. polysomy, monosomy and uniparental disomy are chromosome counts and share a stem with polysome / monosome / disome; the (?!y) lookahead is the only thing separating them. Drop it and every trisomy-adjacent karyotype series declared OTHER becomes ribosome profiling.
    • testTheGateStillCannotReachADeclaredOrAbsentStrategy

      @Test public void testTheGateStillCannotReachADeclaredOrAbsentStrategy()
      🛑 The two shapes the regex CANNOT reach, whatever it says, because the gate is predicated on GEO's declared strategy. Pinned so that a later regex change is not mistaken for covering them.

      eid 57963 carries both in ONE curator-defined arm: 6 samples declared OTHER (the regex now catches those) and 2 declared RNA_SEQ. eid 50185 declares nothing at all.

    • testANonTranscriptomicSampleIsNotPromoted

      @Test public void testANonTranscriptomicSampleIsNotPromoted()
      A non-transcriptomic source is never reinterpreted, however it is named.
    • testAMicroarraySampleRecordsItsChannelCount

      @Test public void testAMicroarraySampleRecordsItsChannelCount()
      A microarray sample records how many channels it was hybridized in (Paul, 2026-09-13). The literal strings are asserted rather than the constants, because rows already in production have to match them.
    • testASequencingSampleRecordsTheConstantName

      @Test public void testASequencingSampleRecordsTheConstantName()
      A sequencing sample records the constant name, not GEO's spelling (Paul, 2026-09-13).
    • testASampleThatIsNeitherRecordsNothing

      @Test public void testASampleThatIsNeitherRecordsNothing()
      Neither a declared strategy nor a microarray: nothing is recorded.