public static CanvasEnrichmentOutput GetFromStub(IFileLocation stub) { var canvasOutput = CanvasOutput.GetFromStub(stub); IFileLocation binSize = stub.AppendName(".binsize"); IFileLocation normalBinned = stub.AppendName(".binned"); IFileLocation unsmoothedCnd = stub.AppendName(".unsmoothed.cnd"); return(new CanvasEnrichmentOutput(canvasOutput, binSize, normalBinned, unsmoothedCnd)); }
public static CanvasOutput GetFromStub(IFileLocation stub) { Vcf cnvVcf = Vcf.GetVcfFromStub(stub); IFileLocation coverageAndVariantFrequencies = stub.AppendName(".CoverageAndVariantFrequency.txt"); IFileLocation variantFrequencies = stub.AppendName(".VFResults.txt.gz"); IFileLocation variantFrequenciesBaf = stub.AppendName(".VFResults.baf"); IFileLocation partitioned = stub.AppendName(".partitioned"); return(new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned)); }
public static CanvasEnrichmentOutput GetFromStub(IFileLocation stub, bool includeIntermediateResults) { var canvasOutput = CanvasOutput.GetFromStub(stub, includeIntermediateResults); if (!includeIntermediateResults) { return(new CanvasEnrichmentOutput(canvasOutput)); } IFileLocation binSize = stub.AppendName(".binsize"); IFileLocation normalBinned = stub.AppendName(".binned"); IFileLocation unsmoothedCnd = stub.AppendName(".unsmoothed.cnd"); return(new CanvasEnrichmentOutput(canvasOutput, binSize, normalBinned, unsmoothedCnd)); }
private CanvasEnrichmentOutput GetCanvasOutput(string sampleId, IDirectoryLocation sampleSandbox) { var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); var tempCnvDirectory = sampleSandbox.GetDirectoryLocation($"TempCNV_{sampleId}"); var variantFrequencies = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz"); var variantFrequenciesBaf = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz.baf"); IFileLocation coverageAndVariantFrequencies = sampleSandbox.GetFileLocation("CNV.CoverageAndVariantFrequency.txt"); IFileLocation tempStub = tempCnvDirectory.GetFileLocation($"{sampleId}"); IFileLocation partitioned = tempStub.AppendName(".partitioned"); var canvasOutput = new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned); IFileLocation binSize = tempStub.AppendName(".binsize"); IFileLocation normalBinned = tempStub.AppendName(".normal.binned"); IFileLocation unsmoothedCnd = tempStub.AppendName(".ratio.binned.cnd"); if (!binSize.Exists) { binSize = null; } return(new CanvasEnrichmentOutput(canvasOutput, binSize, normalBinned, unsmoothedCnd)); }
private CanvasOutput GetCanvasOutput(string sampleId, IDirectoryLocation sampleSandbox) { var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); var tempCnvDirectory = sampleSandbox.GetDirectoryLocation($"TempCNV_{sampleId}"); var variantFrequencies = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz"); var variantFrequenciesBaf = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz.baf"); IFileLocation coverageAndVariantFrequencies = sampleSandbox.GetFileLocation("CNV.CoverageAndVariantFrequency.txt"); IFileLocation tempStub = tempCnvDirectory.GetFileLocation($"{sampleId}"); IFileLocation partitioned = tempStub.AppendName(".partitioned"); return(new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned)); }
private static IFileLocation GetVfSummaryPathExtension(IFileLocation stub) { return(stub.AppendName(".txt.gz")); }
public static Vcf GetVcfFromStub(IFileLocation stub) { return new Vcf(stub.AppendName(Extension)); }
public static IFileLocation GetCoverageBigWig(IFileLocation stub) { return(stub.AppendName(".coverage.bigWig")); }
public static IFileLocation GetCoverageAndVariantFrequencyOutput(IFileLocation stub) { return(stub.AppendName(".CoverageAndVariantFrequency.txt")); }
private IFileLocation GetCnvVcf() { return(_pedigreefileNameStub.AppendName(".CNV.vcf.gz")); }
public static IFileLocation GetVcfOutput(IFileLocation stub) { return(stub.AppendName(".vcf.gz")); }
public static IFileLocation GetVfSummaryBafPath(IFileLocation stub) { return(stub.AppendName(".VFResults.baf")); }
public static BgzfFile GetBAlleleBedGraph(IFileLocation stub) { return(new BgzfFile(stub.AppendName(".ballele.bedgraph.gz"))); }
public static BgzfFile GetCopyNumberBedGraph(IFileLocation stub) { return(new BgzfFile(stub.AppendName(".copynumber.bedgraph.gz"))); }
public static BgzfFile GetPartitionBedGraph(IFileLocation stub) { return(new BgzfFile(stub.AppendName(".partition.bedgraph.gz"))); }
public static IFileLocation GetVfSummaryPath(IFileLocation stub) { return(GetVfSummaryPathExtension(stub.AppendName(".VFResults"))); }
public static IFileLocation GetPartitionedPath(IFileLocation stub) { return(stub.AppendName(".partitioned")); }
/// <summary> /// Intersect bins with the targeted regions defined in callset.Manifest. /// Assumes that the targeted regions don't intersect, the bins are sorted by genomic location and the bins don't intersect. /// </summary> /// <param name="callset"></param> /// <param name="partitionedPath">Output of CanvasPartition. Bins are assumed to be sorted</param> /// <returns></returns> private IFileLocation IntersectBinsWithTargetedRegions(CanvasCallset callset, IFileLocation partitionedPath) { if (!partitionedPath.Exists) { return(partitionedPath); } var rawPartitionedPath = partitionedPath.AppendName(".raw"); if (rawPartitionedPath.Exists) { rawPartitionedPath.Delete(); } partitionedPath.MoveTo(rawPartitionedPath); //callset.Manifest Dictionary <string, List <NexteraManifest.ManifestRegion> > manifestRegionsByChrom = callset.Manifest.GetManifestRegionsByChromosome(); // CanvasPartition output file is in the BED format // start: 0-based, inclusive // end: 0-based, exclusive // Manifest // start: 1-based, inclusive // end: 1-based, inclusive using (GzipReader reader = new GzipReader(rawPartitionedPath.FullName)) using (GzipWriter writer = new GzipWriter(partitionedPath.FullName)) { string currentChrom = null; int manifestRegionIdx = 0; string line; string[] toks; while ((line = reader.ReadLine()) != null) { toks = line.Split('\t'); string chrom = toks[0]; int start = int.Parse(toks[1]) + 1; // 1-based, inclusive int end = int.Parse(toks[2]); // 1-based, inclusive if (chrom != currentChrom) { currentChrom = chrom; manifestRegionIdx = 0; } if (!manifestRegionsByChrom.ContainsKey(currentChrom)) { continue; } while (manifestRegionIdx < manifestRegionsByChrom[currentChrom].Count && manifestRegionsByChrom[currentChrom][manifestRegionIdx].End < start) // |- manifest region -| |- bin -| { manifestRegionIdx++; } if (manifestRegionIdx >= manifestRegionsByChrom[currentChrom].Count || // |- last manifest region -| |- bin -| end < manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start) // |- bin -| |- manifest region -| { continue; // skip bin } // |- bin -| // |- manifest region -| while (manifestRegionIdx < manifestRegionsByChrom[currentChrom].Count && end >= manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start) { // calculate intersection int intersectionStart = Math.Max(start, manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start); // 1-based, inclusive int intersectionEnd = Math.Min(end, manifestRegionsByChrom[currentChrom][manifestRegionIdx].End); // 1-based, inclusive // start/end in BED format toks[1] = String.Format("{0}", intersectionStart - 1); // 0-based, inclusive toks[2] = String.Format("{0}", intersectionEnd); // 0-based, exclusive // write intersected bin writer.WriteLine(String.Join("\t", toks)); manifestRegionIdx++; } } } return(partitionedPath); }
public static IFileLocation GetSingleSamplePedigreeVcfOutput(IFileLocation stub) { return(stub.AppendName(".vcf.gz")); }
/// <summary> /// Intersect bins with the targeted regions defined in callset.Manifest. /// Assumes that the targeted regions don't intersect, the bins are sorted by genomic location and the bins don't intersect. /// </summary> /// <param name="callset"></param> /// <param name="partitionedPath">Output of CanvasPartition. Bins are assumed to be sorted</param> /// <returns></returns> private IFileLocation IntersectBinsWithTargetedRegions(CanvasCallset callset, IFileLocation partitionedPath) { if (!partitionedPath.Exists) { return partitionedPath; } var rawPartitionedPath = partitionedPath.AppendName(".raw"); if (rawPartitionedPath.Exists) { rawPartitionedPath.Delete(); } partitionedPath.MoveTo(rawPartitionedPath); //callset.Manifest Dictionary<string, List<NexteraManifest.ManifestRegion>> manifestRegionsByChrom = callset.Manifest.GetManifestRegionsByChromosome(); // CanvasPartition output file is in the BED format // start: 0-based, inclusive // end: 0-based, exclusive // Manifest // start: 1-based, inclusive // end: 1-based, inclusive using (GzipReader reader = new GzipReader(rawPartitionedPath.FullName)) using (GzipWriter writer = new GzipWriter(partitionedPath.FullName)) { string currentChrom = null; int manifestRegionIdx = 0; string line; string[] toks; while ((line = reader.ReadLine()) != null) { toks = line.Split('\t'); string chrom = toks[0]; int start = int.Parse(toks[1]) + 1; // 1-based, inclusive int end = int.Parse(toks[2]); // 1-based, inclusive if (chrom != currentChrom) { currentChrom = chrom; manifestRegionIdx = 0; } if (!manifestRegionsByChrom.ContainsKey(currentChrom)) { continue; } while (manifestRegionIdx < manifestRegionsByChrom[currentChrom].Count && manifestRegionsByChrom[currentChrom][manifestRegionIdx].End < start) // |- manifest region -| |- bin -| { manifestRegionIdx++; } if (manifestRegionIdx >= manifestRegionsByChrom[currentChrom].Count || // |- last manifest region -| |- bin -| end < manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start) // |- bin -| |- manifest region -| { continue; // skip bin } // |- bin -| // |- manifest region -| while (manifestRegionIdx < manifestRegionsByChrom[currentChrom].Count && end >= manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start) { // calculate intersection int intersectionStart = Math.Max(start, manifestRegionsByChrom[currentChrom][manifestRegionIdx].Start); // 1-based, inclusive int intersectionEnd = Math.Min(end, manifestRegionsByChrom[currentChrom][manifestRegionIdx].End); // 1-based, inclusive // start/end in BED format toks[1] = String.Format("{0}", intersectionStart - 1); // 0-based, inclusive toks[2] = String.Format("{0}", intersectionEnd); // 0-based, exclusive // write intersected bin writer.WriteLine(String.Join("\t", toks)); manifestRegionIdx++; } } } return partitionedPath; }