Class Geeq
- java.lang.Object
-
- ubic.gemma.model.expression.experiment.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 Summary
Constructors Constructor Description Geeq()
-
Method Summary
-
-
-
Method Detail
-
getId
public Long getId()
- Specified by:
getId
in interfaceIdentifiable
-
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)
-
-