Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }