Class Geeq

  • All Implemented Interfaces:
    Serializable, Identifiable

    public class Geeq
    extends Object
    implements Identifiable, Serializable
    Represents quality information about a data set. The class name comes from the research project name, GEEQ. The score has two components: Quality and Suitability. See the variables getters javadoc for further description. The scoring rules are implemented in the GeeqServiceImpl, which also exposes public methods for experiment scoring.
    Author:
    paul, tesarst
    See Also:
    Serialized Form
    • Constructor Detail

      • Geeq

        public Geeq()
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getSuitabilityScoreArray

        public double[] getSuitabilityScoreArray()
      • getQualityScoreArray

        public double[] getQualityScoreArray()
      • getSuitabilityScoreWeightsArray

        public double[] getSuitabilityScoreWeightsArray()
      • getQualityScoreWeightsArray

        public double[] getQualityScoreWeightsArray()
      • getDetectedQualityScore

        public double getDetectedQualityScore()
        Returns:
        Quality refers to data quality, wherein the same study could have been done twice with the same technical parameters and in one case yield bad quality data, and in another high quality data. The quality score can be overridden. The manual value is stored in manualQualityScore, while manualQualityOverride boolean value denotes whether the manual value should be used.
      • setDetectedQualityScore

        public void setDetectedQualityScore​(double detectedQualityScore)
      • getManualQualityScore

        public double getManualQualityScore()
      • setManualQualityScore

        public void setManualQualityScore​(double manualQualityScore)
      • isManualQualityOverride

        public boolean isManualQualityOverride()
      • setManualQualityOverride

        public void setManualQualityOverride​(boolean manualQualityOverride)
      • getDetectedSuitabilityScore

        public double getDetectedSuitabilityScore()
        Returns:
        Suitability mostly refers to technical aspects which, if we were doing the study ourselves, we would have altered to make it optimal for analyses of the sort used in Gemma. The suitability score can be overridden. The manual value is stored in manualSuitabilityScore, while manualSuitabilityOverride boolean value denotes whether the manual value should be used.
      • setDetectedSuitabilityScore

        public void setDetectedSuitabilityScore​(double detectedSuitabilityScore)
      • getManualSuitabilityScore

        public double getManualSuitabilityScore()
      • setManualSuitabilityScore

        public void setManualSuitabilityScore​(double manualSuitabilityScore)
      • isManualSuitabilityOverride

        public boolean isManualSuitabilityOverride()
      • setManualSuitabilityOverride

        public void setManualSuitabilityOverride​(boolean manualSuitabilityOverride)
      • getsScorePublication

        public double getsScorePublication()
        Returns:
        -1.0 - if experiment has no publication +1.0 otherwise
      • setsScorePublication

        public void setsScorePublication​(double sScorePublicationDate)
      • getsScorePlatformAmount

        public double getsScorePlatformAmount()
        Returns:
        The amount of platforms the experiment uses: -1.0 if amount > 2 -0.5 if amount > 1 +1.0 otherwise
      • setsScorePlatformAmount

        public void setsScorePlatformAmount​(double sScorePlatformAmount)
      • getsScorePlatformsTechMulti

        public double getsScorePlatformsTechMulti()
        Returns:
        Extra punishment for platform technology inconsistency -1.0 if platforms amount > 1 and platforms do not have the same technology type +1.0 otherwise
      • setsScorePlatformsTechMulti

        public void setsScorePlatformsTechMulti​(double sScorePlatformsTechMulti)
      • getsScoreAvgPlatformPopularity

        public double getsScoreAvgPlatformPopularity()
        Returns:
        Score for each platforms popularity: (final score is average of scores for all used platforms) -1.0 if used in < 10 EEs -0.5 if used in < 20 EEs +0.0 if used in < 50 EEs +0.5 if used in < 100 EEs +1.0 otherwise
      • setsScoreAvgPlatformPopularity

        public void setsScoreAvgPlatformPopularity​(double sScoreAvgPlatformPopularity)
      • getsScoreAvgPlatformSize

        public double getsScoreAvgPlatformSize()
        Returns:
        Score for each platforms size: (final score is average of scores for all used platforms) -1.0 if gene count < 5k -0.5 if gene count < 10k +0.0 if gene count < 15k +0.5 if gene count < 18k +1.0 otherwise
      • setsScoreAvgPlatformSize

        public void setsScoreAvgPlatformSize​(double sScoreAvgPlatformSize)
      • getsScoreSampleSize

        public double getsScoreSampleSize()
        Returns:
        The amount of samples in the experiment -1.0 if sample size < 10 -0.3 if sample size < 20 +0.3 if sample size < 50 +1.0 otherwise
      • setsScoreSampleSize

        public void setsScoreSampleSize​(double sScoreSampleSize)
      • getsScoreRawData

        public double getsScoreRawData()
        Returns:
        Raw data availability (shows also as the 'external' badge in Gemma web UI) -1.0 if no raw data available +1.0 otherwise
      • setsScoreRawData

        public void setsScoreRawData​(double sScoreRawData)
      • getsScoreMissingValues

        public double getsScoreMissingValues()
        Returns:
        Missing values -1.0 if experiment has any missing values or there are no computed vectors +1.0 otherwise (assumed if experiment has raw data available) extra: noVectors = true, if experiment has no computed vectors
      • setsScoreMissingValues

        public void setsScoreMissingValues​(double sScoreMissingValues)
      • getqScoreOutliers

        public double getqScoreOutliers()
        Returns:
        Presence of non-removed outliers: -1.0 if there are any outliers +1.0 if there are no outliers extra (in corrMatIssues): 1 if the correlation matrix is empty 2 if the correlation matrix has NaN values
      • setqScoreOutliers

        public void setqScoreOutliers​(double qScoreOutliers)
      • getqScorePlatformsTech

        public double getqScorePlatformsTech()
        Returns:
        Platform technologies -1.0 if any platform is two-color +1.0 otherwise
      • setqScorePlatformsTech

        public void setqScorePlatformsTech​(double qScorePlatformsTech)
      • getqScoreReplicates

        public double getqScoreReplicates()
        Returns:
        Number of replicates - ee has to have design and more than one condition -1.0 if lowest replicate amount < GEEQ_WORST_REPLICATION_THRESHOLD & !=1 or if there are problems +0.0 if lowest replicate amount < GEEQ_MEDIUM_REPLICATION_THRESHOLD & !=1 +1.0 otherwise extra (in replicatesIssues): 1 if the experiment has no design 2 if there were no factor values found 3 if all replicate amounts were 1 4 if lowest replicate was 0 (that really should not happen though) See GeeqServiceImpl for thresholds
      • setqScoreReplicates

        public void setqScoreReplicates​(double qScoreReplicates)
      • getqScoreBatchInfo

        public double getqScoreBatchInfo()
        Returns:
        State of batch info -1.0 if no batch info available +1.0 otherwise
      • setqScoreBatchInfo

        public void setqScoreBatchInfo​(double qScoreBatchInfo)
      • getqScoreBatchEffect

        public double getqScoreBatchEffect()
        Returns:
        Batch effect without batch correction. Can be overridden. -1.0 if batch pVal < 0.0001 or (manualHasStrongBatchEffect & manualBatchEffectActive) +1.0 if batch pVal > 0.1 or (!manualHasNoBatchEffect & manualBatchEffectActive) +0.0 otherwise extra: batchCorrected = true, if data was batch-corrected
      • setqScoreBatchEffect

        public void setqScoreBatchEffect​(double qScoreBatchEffect)
      • isManualHasStrongBatchEffect

        public boolean isManualHasStrongBatchEffect()
      • setManualHasStrongBatchEffect

        public void setManualHasStrongBatchEffect​(boolean manualHasStrongBatchEffect)
      • isManualHasNoBatchEffect

        public boolean isManualHasNoBatchEffect()
      • setManualHasNoBatchEffect

        public void setManualHasNoBatchEffect​(boolean manualHasNoBatchEffect)
      • isManualBatchEffectActive

        public boolean isManualBatchEffectActive()
      • setManualBatchEffectActive

        public void setManualBatchEffectActive​(boolean manualBatchEffectOverride)
      • getqScoreBatchConfound

        public double getqScoreBatchConfound()
        Returns:
        Batch confound -1.0 if data confound detected or (manualHasBatchConfound & manualBatchConfoundActive) +1.0 otherwise
      • setqScoreBatchConfound

        public void setqScoreBatchConfound​(double qScoreBatchConfound)
      • isManualHasBatchConfound

        public boolean isManualHasBatchConfound()
      • setManualHasBatchConfound

        public void setManualHasBatchConfound​(boolean manualHasBatchConfound)
      • isManualBatchConfoundActive

        public boolean isManualBatchConfoundActive()
      • setManualBatchConfoundActive

        public void setManualBatchConfoundActive​(boolean manualBatchConfoundActive)
      • getqScoreSampleMeanCorrelation

        public double getqScoreSampleMeanCorrelation()
        Returns:
        Using the mean sample correlation r: +r use the computed value +0.0 if correlation matrix is empty
      • setqScoreSampleMeanCorrelation

        public void setqScoreSampleMeanCorrelation​(double qScoreSampleMeanCorrelation)
      • getqScoreSampleMedianCorrelation

        public double getqScoreSampleMedianCorrelation()
        Returns:
        Using the median sample correlation m: +m use the computed value +0.0 if correlation matrix is empty
      • setqScoreSampleMedianCorrelation

        public void setqScoreSampleMedianCorrelation​(double qScoreSampleMedianCorrelation)
      • getqScoreSampleCorrelationVariance

        public double getqScoreSampleCorrelationVariance()
        Returns:
        Using the sample correlation variance v: +v use the computed value +0.0 if correlation matrix is empty
      • setqScoreSampleCorrelationVariance

        public void setqScoreSampleCorrelationVariance​(double qScoreSampleCorrelationVariance)
      • isNoVectors

        public boolean isNoVectors()
      • setNoVectors

        public void setNoVectors​(boolean noVectors)
      • getCorrMatIssues

        public byte getCorrMatIssues()
      • setCorrMatIssues

        public void setCorrMatIssues​(byte corrMatIssues)
      • getReplicatesIssues

        public byte getReplicatesIssues()
      • setReplicatesIssues

        public void setReplicatesIssues​(byte replicatesIssues)
      • isBatchCorrected

        public boolean isBatchCorrected()
      • setBatchCorrected

        public void setBatchCorrected​(boolean batchCorrected)
      • getOtherIssues

        public String getOtherIssues()
      • setOtherIssues

        public void setOtherIssues​(String otherIssues)
      • addOtherIssues

        public void addOtherIssues​(String issue)