public static void CalcRatioSignificanceProteinGroups(SilacType type, ICombinedData combinedData, RawFileInfo fileInfo) { if (type == SilacType.Doublets) { { List <double> lNormRatio = new List <double>(); List <double> lRatio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio10(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lNormRatio.Add(Math.Log(normalizedRatio)); lRatio.Add(Math.Log(ratio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lNormRatio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lNormRatio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.RatioSignificanceA10 = ratioSignificanceA[i]; group.RatioSignificanceB10 = ratioSignificanceB[i]; } } if (fileInfo.HasExperiment) { string[] exps = fileInfo.GetAllExperimentValues(); foreach (string exp in exps) { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio10(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, fileInfo.GetRawFileIndicesFromExperiment(exp), out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.AddRatioSignificanceA10(exp, ratioSignificanceA[i]); group.AddRatioSignificanceB10(exp, ratioSignificanceB[i]); } } } } if (type == SilacType.Triplets) { { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio10(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.RatioSignificanceA10 = ratioSignificanceA[i]; group.RatioSignificanceB10 = ratioSignificanceB[i]; } } if (fileInfo.HasExperiment) { string[] exps = fileInfo.GetAllExperimentValues(); foreach (string exp in exps) { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio10(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, fileInfo.GetRawFileIndicesFromExperiment(exp), out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.AddRatioSignificanceA10(exp, ratioSignificanceA[i]); group.AddRatioSignificanceB10(exp, ratioSignificanceB[i]); } } } { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio20(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.RatioSignificanceA20 = ratioSignificanceA[i]; group.RatioSignificanceB20 = ratioSignificanceB[i]; } } if (fileInfo.HasExperiment) { string[] exps = fileInfo.GetAllExperimentValues(); foreach (string exp in exps) { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio20(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, fileInfo.GetRawFileIndicesFromExperiment(exp), out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.AddRatioSignificanceA20(exp, ratioSignificanceA[i]); group.AddRatioSignificanceB20(exp, ratioSignificanceB[i]); } } } { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio21(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.RatioSignificanceA21 = ratioSignificanceA[i]; group.RatioSignificanceB21 = ratioSignificanceB[i]; } } if (fileInfo.HasExperiment) { string[] exps = fileInfo.GetAllExperimentValues(); foreach (string exp in exps) { List <double> lratio = new List <double>(); List <double> lIntensity = new List <double>(); List <int> indices = new List <int>(); for (int i = 0; i < combinedData.GetProteinGroupCount(); i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(i); double ratio; double normalizedRatio; int count; double dev; int nOutliers; double pval; group.GetRatio21(combinedData, out ratio, out normalizedRatio, out count, out dev, out nOutliers, fileInfo.GetRawFileIndicesFromExperiment(exp), out pval); double intensity = group.GetIntensity0(combinedData) + group.GetIntensity1(combinedData) + group.GetIntensity2(combinedData); if (normalizedRatio > 0 && !double.IsInfinity(normalizedRatio) && !double.IsNaN(normalizedRatio) && intensity > 0) { lratio.Add(Math.Log(normalizedRatio)); lIntensity.Add(Math.Log(intensity)); indices.Add(i); } } double[] ratioSignificanceA = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), 1); double[] ratioSignificanceB = NumUtil.MovingBoxPlot(lratio.ToArray(), lIntensity.ToArray(), -1); for (int i = 0; i < indices.Count; i++) { IIdentifiedProteinGroup group = combinedData.GetIProteinGroupAt(indices[i]); group.AddRatioSignificanceA21(exp, ratioSignificanceA[i]); group.AddRatioSignificanceB21(exp, ratioSignificanceB[i]); } } } } }