From e527546271dc12605b4b185d1e7562baa48991cc Mon Sep 17 00:00:00 2001 From: Zhiyu <zhiyu.zhao@utsouthwestern.edu> Date: Tue, 16 May 2023 22:26:29 +0000 Subject: [PATCH] Bug fixed for fold change with empty groups when imputation is not enabled. --- V2.0c/ODA/statTests.R | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/V2.0c/ODA/statTests.R b/V2.0c/ODA/statTests.R index bcb29be..5357eff 100644 --- a/V2.0c/ODA/statTests.R +++ b/V2.0c/ODA/statTests.R @@ -57,15 +57,27 @@ fold_change=function(dataList,groups,groupMeanLowerBound,logTransform) { for (i in unique(temp$Feature)) { featureData=temp[temp$Feature==i,] res[[names1[1]]][i]=mean(featureData$Value[featureData$GroupID==g],na.rm=T) - res[[names1[2]]][i]=sd(featureData$Value[featureData$GroupID==g],na.rm=T) - res[[names1[3]]][i]=res[[names1[1]]][i] - if (res[[names1[3]]][i]<groupMeanLowerBound) - res[[names1[3]]][i]=groupMeanLowerBound + if (!is.nan(res[[names1[1]]][i])) { #Added on 5/16/23 for cases where the group is empty and no imputation is used. + res[[names1[2]]][i]=sd(featureData$Value[featureData$GroupID==g],na.rm=T) + res[[names1[3]]][i]=res[[names1[1]]][i] + if (res[[names1[3]]][i]<groupMeanLowerBound) + res[[names1[3]]][i]=groupMeanLowerBound + } else { + res[[names1[1]]][i]=NA + res[[names1[2]]][i]=NA + res[[names1[3]]][i]=NA + } res[[names2[1]]][i]=mean(featureData$Value[featureData$GroupID!=g],na.rm=T) - res[[names2[2]]][i]=sd(featureData$Value[featureData$GroupID!=g],na.rm=T) - res[[names2[3]]][i]=res[[names2[1]]][i] - if (res[[names2[3]]][i]<groupMeanLowerBound) - res[[names2[3]]][i]=groupMeanLowerBound + if (!is.nan(res[[names2[1]]][i])) { #Added on 5/16/23 for cases where the group is empty and no imputation is used. + res[[names2[2]]][i]=sd(featureData$Value[featureData$GroupID!=g],na.rm=T) + res[[names2[3]]][i]=res[[names2[1]]][i] + if (res[[names2[3]]][i]<groupMeanLowerBound) + res[[names2[3]]][i]=groupMeanLowerBound + } else { + res[[names2[1]]][i]=NA + res[[names2[2]]][i]=NA + res[[names2[3]]][i]=NA + } if (logTransform) { res[[paste0('log2_',fcName)]][i]=res[[names1[3]]][i]-res[[names2[3]]][i] res[[fcName]][i]=2^res[[paste0('log2_',fcName)]][i] -- GitLab