예제 #1
0
        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.");
        }
예제 #2
0
        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.");
        }
예제 #3
0
        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);
        }