/// <summary> /// returns the total depth given different sources of information /// </summary> public static int?GetTotalDepth(int?infoDepth, IntermediateSampleFields intermediateSampleFields) { // use TAR & TIR if (intermediateSampleFields.TAR != null && intermediateSampleFields.TIR != null) { return(GetTotalDepthUsingTarTir(intermediateSampleFields)); } // use base counts if (intermediateSampleFields.TotalAlleleCount != null) { return(GetTotalDepthUsingAlleleCounts(intermediateSampleFields)); } // use DPI if (intermediateSampleFields.FormatIndices.DPI != null) { return(GetTotalDepthUsingDpi(intermediateSampleFields)); } // use DP if (intermediateSampleFields.FormatIndices.DP != null) { return(GetTotalDepthUsingDp(intermediateSampleFields)); } // use NR if (intermediateSampleFields.NR != null && intermediateSampleFields.AltAlleles.Length == 1) { return(intermediateSampleFields.NR); } // use INFO DP (Pisces) return(infoDepth); }
/// <summary> /// returns the genotype quality given different sources of information /// </summary> public static int?GetGenotypeQuality(IntermediateSampleFields intermediateSampleFields) { var hasGqx = intermediateSampleFields.FormatIndices.GQX != null; var hasGq = intermediateSampleFields.FormatIndices.GQ != null; if (!hasGqx && !hasGq) { return(null); } var gqIndex = hasGqx ? intermediateSampleFields.FormatIndices.GQX.Value : intermediateSampleFields.FormatIndices.GQ.Value; if (intermediateSampleFields.SampleColumns.Length <= gqIndex) { return(null); } var gq = intermediateSampleFields.SampleColumns[gqIndex]; if (int.TryParse(gq, out int num)) { return(num); } return(null); }
public void GetInteger_ReturnNull() { var observedResult = IntermediateSampleFields.GetInteger("test"); Assert.Null(observedResult); observedResult = IntermediateSampleFields.GetInteger(null); Assert.Null(observedResult); }
public void GetBool_ReturnFalse() { var observedResult = IntermediateSampleFields.GetBool("bob", "test"); Assert.False(observedResult); observedResult = IntermediateSampleFields.GetBool(null, "test"); Assert.False(observedResult); }
/// <summary> /// returns the genotype flag /// </summary> public static string GetGenotype(IntermediateSampleFields intermediateSampleFields) { if (intermediateSampleFields.FormatIndices.GT == null) { return(null); } var genotype = intermediateSampleFields.SampleColumns[intermediateSampleFields.FormatIndices.GT.Value]; return(genotype == "." ? null : genotype); }
/// <summary> /// returns the failed filter flag /// </summary> public static bool GetFailedFilter(IntermediateSampleFields intermediateSampleFields) { if (intermediateSampleFields.FormatIndices.FT == null) { return(false); } var filterValue = intermediateSampleFields.SampleColumns[intermediateSampleFields.FormatIndices.FT.Value]; return(filterValue != "PASS" && filterValue != "."); }
public void IntermediateSampleFields_AlleleCounts() { const string vcfLine = "chr1\t5592503\t.\tC\tT\t900.00\tPASS\t.\tGT:AU:CU:GU:TU:DP:DPF:AD\t1/1:10,11:20,21:30,31:40,41:70:3:0,70"; var cols = vcfLine.Split('\t'); var formatIndices = FormatIndices.Extract(cols[VcfCommon.FormatIndex]); var sampleCols = cols[VcfCommon.GenotypeIndex].Split(':'); var sampleFields = new IntermediateSampleFields(cols, formatIndices, sampleCols); Assert.Equal(10, sampleFields.ACount); Assert.Equal(20, sampleFields.CCount); Assert.Equal(30, sampleFields.GCount); Assert.Equal(40, sampleFields.TCount); }
/// <summary> /// returns the total depth using DP /// </summary> private static int?GetTotalDepthUsingDp(IntermediateSampleFields intermediateSampleFields) { if (intermediateSampleFields.FormatIndices.DP == null || intermediateSampleFields.SampleColumns.Length <= intermediateSampleFields.FormatIndices.DP.Value) { return(null); } var depth = intermediateSampleFields.SampleColumns[intermediateSampleFields.FormatIndices.DP.Value]; if (int.TryParse(depth, out int num)) { return(num); } return(null); }
public static int[] GetPairEndReadCounts(IntermediateSampleFields intermediateSampleFields) { if (intermediateSampleFields.FormatIndices.PR == null) { return(null); } var readCounts = intermediateSampleFields.SampleColumns[intermediateSampleFields.FormatIndices.PR.Value].Split(','); var pairEndReadCounts = new int[readCounts.Length]; for (int i = 0; i < pairEndReadCounts.Length; i++) { if (!int.TryParse(readCounts[i], out var num)) { return(null); } pairEndReadCounts[i] = num; } return(pairEndReadCounts); }
public static int[] GetSplitReadCounts(IntermediateSampleFields intermediateSampleFields) { if (intermediateSampleFields.FormatIndices.SR == null) { return(null); } var splitReadCounts = intermediateSampleFields.SampleColumns[intermediateSampleFields.FormatIndices.SR.Value].Split(','); var splitReads = new int[splitReadCounts.Length]; for (int i = 0; i < splitReads.Length; i++) { if (!int.TryParse(splitReadCounts[i], out var num)) { return(null); } splitReads[i] = num; } return(splitReads); }
public void GetBool_ReturnTrue() { var observedResult = IntermediateSampleFields.GetBool("test", "test"); Assert.True(observedResult); }
public void GetInteger_ReturnInteger() { var observedResult = IntermediateSampleFields.GetInteger("1234"); Assert.Equal(1234, observedResult); }
public void GetFloat_ReturnFloat() { var observedResult = IntermediateSampleFields.GetFloat("1.23"); Assert.Equal(1.23f, observedResult); }
/// <summary> /// returns the total depth using tier 1 allele counts /// </summary> private static int?GetTotalDepthUsingAlleleCounts(IntermediateSampleFields intermediateSampleFields) { return(intermediateSampleFields.TotalAlleleCount); }
/// <summary> /// returns the total depth using TAR & TIR /// </summary> private static int?GetTotalDepthUsingTarTir(IntermediateSampleFields intermediateSampleFields) { return(intermediateSampleFields.TAR + intermediateSampleFields.TIR); }