Example #1
0
            internal static IWittyerVariant Create([NotNull] IVcfVariant baseVariant,
                                                   string sample, double percentageDistance, uint basepairDistance,
                                                   IReadOnlyList <uint> bins, WittyerVariantType svType)
            {
                if (svType == WittyerVariantType.Invalid)
                {
                    throw new InvalidDataException(
                              $"Invalid {VcfConstants.SvTypeKey} in variant: \n{baseVariant}\nNot sure why you got here though. Check with a witty.er developer!");
                }

                var end          = baseVariant.Position + baseVariant.GetSvLength();
                var baseInterval = BedInterval.Create(baseVariant.Position, end);

                var borderInterval =
                    baseVariant.Position.CalculateBorderInterval(baseInterval,
                                                                 baseVariant.ParseCi(WittyerConstants.Cipos),
                                                                 percentageDistance, basepairDistance);

                // wittyerVariant should all have end border, it's a matter of how to find it,
                // either END key in INFO field, sort out through SVLEN or other ways, details can be defined in FindEndBorder() later
                var endInterval = (end - 1).CalculateBorderInterval(baseInterval,
                                                                    baseVariant.ParseCi(WittyerConstants.Ciend),
                                                                    percentageDistance, basepairDistance);

                var posContigAndInterval =
                    ContigAndInterval.Create(baseVariant.Contig, borderInterval.Start, borderInterval.Stop + 1);
                var endContigAndInterval =
                    ContigAndInterval.Create(baseVariant.Contig, endInterval.Start, endInterval.Stop + 1);

                return(Create(baseVariant, baseInterval, svType, posContigAndInterval,
                              Winner.Create(svType, baseInterval, bins), new List <OverlapAnnotation>(),
                              WittyerSample.CreateOverall(baseVariant, sample, svType == WittyerVariantType.CopyNumberReference),
                              endContigAndInterval));
            }
Example #2
0
 internal static WittyerVariantInternal Create([NotNull] IVcfVariant baseVariant,
                                               IInterval <uint> baseInterval,
                                               WittyerVariantType svType,
                                               IContigAndInterval startInterval, Winner win,
                                               List <OverlapAnnotation> overlapInfo, IWittyerSample sample, IContigAndInterval endInterval)
 => new WittyerVariantInternal(baseVariant, baseInterval, svType, startInterval, win,
                               overlapInfo, sample, endInterval);
Example #3
0
 private WittyerBndInternal([NotNull] IVcfVariant baseVariant, IInterval <uint> posInterval, Winner win,
                            IContigAndInterval endInterval,
                            List <OverlapAnnotation> overlapInfo, IWittyerSample sample, IVcfVariant endOriginalVariant, WittyerVariantType svType)
 {
     Contig             = baseVariant.Contig;
     _posInterval       = posInterval;
     EndInterval        = endInterval;
     OverlapInfo        = overlapInfo;
     Sample             = sample;
     OriginalVariant    = baseVariant;
     EndOriginalVariant = endOriginalVariant;
     Win         = win;
     VariantType = svType;
 }
Example #4
0
 private WittyerVariantInternal([NotNull] IVcfVariant baseVariant, IInterval <uint> baseInterval,
                                WittyerVariantType svType,
                                IContigAndInterval posInterval, Winner win,
                                List <OverlapAnnotation> overlapInfo, IWittyerSample sample, IContigAndInterval endInterval)
 {
     OriginalVariant = baseVariant;
     Contig          = baseVariant.Contig;
     VariantType     = svType;
     Win             = win;
     OverlapInfo     = overlapInfo;
     Sample          = sample;
     _baseInterval   = baseInterval;
     PosInterval     = posInterval;
     EndInterval     = endInterval;
 }
Example #5
0
 internal static IWittyerBnd Create([NotNull] IVcfVariant baseVariant, IInterval <uint> posInterval,
                                    Winner win, IContigAndInterval endInterval, List <OverlapAnnotation> overlapInfo,
                                    IWittyerSample sample, IVcfVariant endOriginalVariant, WittyerVariantType svType)
 => new WittyerBndInternal(baseVariant, posInterval, win, endInterval, overlapInfo, sample,
                           endOriginalVariant, svType);