public static string WriteCountsFile(string vcfIn, string outDir) { var variant = new VcfVariant(); var countsPath = Path.Combine(outDir, Path.GetFileName(vcfIn).Replace(".vcf", ".counts")); var counter = new MutationCounter(); using (VcfReader readerA = new VcfReader(vcfIn)) { counter.StartWriter(countsPath); while (readerA.GetNextVariant(variant)) { try { counter.Add(variant); } catch (Exception ex) { Logger.WriteToLog(string.Format("Fatal error processing vcf; Check {0}, position {1}. Exception: {2}", variant.ReferenceName, variant.ReferencePosition, ex)); throw; } } counter.CloseFalseCallsWriter(); } return(countsPath); }
public static string WriteCountsFile(string vcfIn, string outDir, int lociCount) { var variants = new List <CalledAllele>(); var countsPath = Path.Combine(outDir, Path.GetFileName(vcfIn).Replace(".vcf", ".counts")); var countsPathOld = Path.Combine(outDir, Path.GetFileName(vcfIn).Replace(".vcf", ".counts.original")); if (File.Exists(countsPath)) { if (File.Exists(countsPathOld)) { File.Delete(countsPathOld); } File.Copy(countsPath, countsPathOld); File.Delete(countsPath); } var counter = new MutationCounter(); using (AlleleReader readerA = new AlleleReader(vcfIn)) { counter.StartWriter(countsPath); while (readerA.GetNextVariants(out variants)) { foreach (var variant in variants) { try { counter.Add(variant); } catch (Exception ex) { Logger.WriteToLog(string.Format("Fatal error processing vcf; Check {0}, position {1}. Exception: {2}", variant.Chromosome, variant.ReferencePosition, ex)); throw; } } } if (lociCount > 0) { counter.ForceTotalPossibleMutations(lociCount); } counter.CloseWriter(); } return(countsPath); }