public static void RewriteVcf(string vcfIn, string outDir, AdaptiveGtOptions options, RecalibrationResults results) { Logger.WriteToLog("Rewriting VCF."); string vcfFileName = Path.GetFileName(vcfIn); if (vcfFileName.Contains("genome.")) { vcfFileName = vcfFileName.Replace("genome", "recal"); } else { vcfFileName = vcfFileName.Replace(".vcf", ".recal.vcf"); } string vcfOut = Path.Combine(outDir, vcfFileName); if (File.Exists(vcfOut)) { File.Delete(vcfOut); } VcfUpdater <RecalibrationResults> .UpdateVcfLociByLoci(vcfOut, options, false, results, LocusProcessor.ProcessLocus, (List <string> vcfLine) => TypeOfUpdateNeeded.Modify, GetAdaptiveGtWriter); Logger.WriteToLog("filtering complete."); }
public void DoFiltering() { Logger.WriteToLog("filtering " + _psaraOptions.VcfPath + "..."); if (File.Exists(_outputFile)) { File.Delete(_outputFile); } VcfUpdater <GeometricFilter> .UpdateVcfLociByLoci(_outputFile, _psaraOptions, false, _geometricFilter, UpdateColocatedAlleles, CanNeverSkipVcfLine, GetPsaraVcfWriter); Logger.WriteToLog("filtering complete."); }
public void UpdateVcfTest_TestOnAllLociAlleleAction() { var outDir = Path.Combine(TestPaths.LocalScratchDirectory, "ModifyCoLocated"); var inputDir = Path.Combine(TestPaths.LocalTestDataDirectory); var inputVcfFilePath = Path.Combine(inputDir, "colocated.genome.vcf"); var outputFile1 = Path.Combine(outDir, "Rewrite_NoChangeToVariants.vcf"); var outputFile2 = Path.Combine(outDir, "Rewrite_TagMultiAllelicSites.vcf"); var outputFile3 = Path.Combine(outDir, "Rewrite_TagIndelSites.vcf"); var expectedFile1 = Path.Combine(inputDir, "VcfReWriter_NoChangeToLoci.vcf"); var expectedFile2 = Path.Combine(inputDir, "VcfReWriter_TagMultiAllelicSites.vcf"); var expectedFile3 = Path.Combine(inputDir, "VcfReWriter_TagIndelSites.vcf"); TestUtilities.TestHelper.RecreateDirectory(outDir); var myData = new SomeData(); var options = new VcfConsumerAppOptions(); options.VcfPath = inputVcfFilePath; options.VariantCallingParams.AmpliconBiasFilterThreshold = null;//turning this off because these tests predate the AB filter. This allows the pre-exisiting vcf headers to stay the same. //edit NO lines VcfUpdater <SomeData> .UpdateVcfLociByLoci(outputFile1, options, true, myData, VcfUpdater <SomeData> .NeverUpdateByLoci, CanAlwaysSkipVcfLine, GetVcfFileWriter); //TagMultiAllelicSites VcfUpdater <SomeData> .UpdateVcfLociByLoci(outputFile2, options, true, myData, TagMultiAllelicSites, CanNeverSkipVcfLine, GetVcfFileWriter); //TagIndelSites VcfUpdater <SomeData> .UpdateVcfLociByLoci(outputFile3, options, true, myData, TagIndelSites, CanNeverSkipVcfLine, GetVcfFileWriter); //check files TestUtilities.TestHelper.CompareFiles(outputFile1, expectedFile1); TestUtilities.TestHelper.CompareFiles(outputFile2, expectedFile2); TestUtilities.TestHelper.CompareFiles(outputFile3, expectedFile3); }