示例#1
0
        internal MutableWittyerResult GetQueryset([CanBeNull] string sampleName, GenomeType genomeType)
        {
            var query = new MutableWittyerResult(sampleName, false, _vcfReader.Header);

            GetResult(sampleName, query, genomeType);
            return(query);
        }
示例#2
0
 public static BaseGenome CreateGenome(GenomeType type, int length)
 {
     switch (type) {
     case GenomeType.BinaryString: return new GenomeBinaryString(length);
     case GenomeType.RawBinaryString32: return new GenomeBinaryStringRaw32(length);
     case GenomeType.RawBinaryString64: return new GenomeBinaryStringRaw64(length);
     case GenomeType.FloatString: return new GenomeFloatString(length);
     }
     DebugAux.Assert(false, "There is no such genome type");
     return null;
 }
    public static BaseGenome CreateGenome(GenomeType type, int length)
    {
        switch (type)
        {
        case GenomeType.BinaryString: return(new GenomeBinaryString(length));

        case GenomeType.RawBinaryString32: return(new GenomeBinaryStringRaw32(length));

        case GenomeType.RawBinaryString64: return(new GenomeBinaryStringRaw64(length));

        case GenomeType.FloatString: return(new GenomeFloatString(length));
        }
        DebugAux.Assert(false, "There is no such genome type");
        return(null);
    }
示例#4
0
        internal static IVcfVariant ConvertGenomeType([NotNull] this IVcfVariant variant, GenomeType type)
        {
            switch (type)
            {
            case GenomeType.Ucsc:
                return(variant.ToUcscStyleVariant());

            case GenomeType.Grch:
                return(variant.ToGrchStyleVariant());

            case GenomeType.Unknown:
                return(variant);

            default:
                throw new InvalidDataException(
                          $"Not sure why there's a genometype {type.ToString()} in vcf which we are not supporting!");
            }
        }
示例#5
0
        private GenomeType?GetResult([CanBeNull] string sampleName,
                                     [NotNull] IMutableWittyerResult mutableResult, GenomeType targetType)
        {
            var bndSet = new Dictionary <IGeneralBnd, IVcfVariant>(BreakendPairComparer.Default);

            var        errorList  = new List <string>();
            GenomeType?genomeType = null;

            foreach (var baseVariant in _baseVariants)
            {
                if (genomeType == null)
                {
                    genomeType = baseVariant.Contig.GetGenomeType();
                }
                var sample = sampleName == null ? null : baseVariant.Samples[sampleName];
                var result = CreateVariant(baseVariant.ConvertGenomeType(targetType),
                                           sample, mutableResult.IsTruth, sampleName, _inputSpec, bndSet, errorList,
                                           _mode == EvaluationMode.CrossTypeAndSimpleCounting);
                switch (result)
                {
                //ugly implementation, first of breakend pair will return left as IGeneralBnd
                case IGeneralBnd _:
                    continue;

                case IVcfVariant vcfVariant:
                    mutableResult.AddUnsupported(vcfVariant);
                    break;

                case IMutableWittyerSimpleVariant simpleVariant:
                    mutableResult.AddTarget(simpleVariant);
                    break;
                }
            }

            if (errorList.Count > 0)
            {
                var msg = (errorList.Count > MaxNonSupportedVariantToPrint
                    ? errorList.Take(MaxNonSupportedVariantToPrint)
                    : errorList).StringJoin("\n");

                Console.Error.WriteLine(
                    $"Fail to parse {errorList.Count} variants from truth, check first {MaxNonSupportedVariantToPrint} or less: \n{msg}");
            }

            if (bndSet.Count == 0)
            {
                return(genomeType ?? GenomeType.Unknown);
            }

            Console.Error.WriteLine(
                $"Found single breakend in truth!!!! Those entries will be completely exclude from stats. First {MaxNonSupportedVariantToPrint} or less:");

            Console.Error.WriteLine(bndSet.Values.Take(MaxNonSupportedVariantToPrint).StringJoin("\n"));
            foreach (var kvp in bndSet)
            {
                mutableResult.AddUnsupported(CreateUnsupportedVariant(kvp.Value,
                                                                      sampleName == null ? null : kvp.Value.Samples[sampleName], FailedReason.UnpairedBnd, mutableResult.IsTruth));
            }

            return(genomeType ?? GenomeType.Unknown);
        }
示例#6
0
        private static ContigMetaInfoLine ConvertGenomeType([NotNull] this ContigMetaInfoLine line, GenomeType type)
        {
            var contig = line.Contig;

            if (contig.GetGenomeType() == type)
            {
                return(ContigMetaInfoLine.Create(contig));
            }

            switch (type)
            {
            // since toGrchStyle()/toUcscStyle() does not preserve length information, this is to best preserve length
            case GenomeType.Grch:
                contig = contig.ToGrchStyle();
                break;

            case GenomeType.Ucsc:
                contig = contig.ToUcscStyle();
                break;
            }

            return(ContigMetaInfoLine.Create(contig));
        }
示例#7
0
 /// <summary>
 /// Create a new instance of Genome with the specified
 /// name and GenomeType.
 /// </summary>
 /// <param name="name">The name of this Genome.</param>
 /// <param name="genomeType">The type of the genome test.</param>
 public GenomeOld(string name, GenomeType genomeType) {
     this.Name = name;
     this.GenomeTestType = genomeType;
 }