private SampleStats([NotNull] ISamplePair samplePair, IReadOnlyList <BasicJsonStats> overallStats, IReadOnlyList <SvTypeJsonStats> detailedStats) { _samplePair = samplePair; OverallStats = overallStats; DetailedStats = detailedStats; }
/// <summary> /// Initializes a new instance of the <see cref="SampleMetrics"/> class. /// </summary> /// <param name="samplePair">The sample pair.</param> /// <param name="overallStats">The overall stats.</param> /// <param name="detailedStats">The detailed stats.</param> private SampleMetrics([NotNull] ISamplePair samplePair, [NotNull] IImmutableDictionary <StatsType, IStatsUnit> overallStats, [NotNull] IImmutableDictionary <WittyerType, IBenchmarkMetrics <WittyerType> > detailedStats) { SamplePair = samplePair; OverallStats = overallStats; DetailedStats = detailedStats; }
public static SampleMetrics Create([NotNull] ISamplePair samplePair, [NotNull] IImmutableDictionary <StatsType, IStatsUnit> overallStats, [NotNull] IImmutableDictionary <WittyerType, IBenchmarkMetrics <WittyerType> > detailedStats) => new SampleMetrics(samplePair, overallStats, detailedStats);
internal static IEnumerable <string> MergedWith([NotNull] this IVcfHeader truthHeader, [NotNull] IVcfHeader queryHeader, [NotNull] ISamplePair pair, [CanBeNull] string cmdLine) { var mergedMetaLines = truthHeader.MergeMetaLines(cmdLine, queryHeader); return(ToWittyBuilder() .AddSampleMetaInfo(truthHeader, pair, queryHeader, mergedMetaLines) .Build().ToStrings()); VcfHeader.Builder ToWittyBuilder() { var builder = VcfHeader.CreateBuilder(truthHeader.Version) .AddSampleColumn(DefaultTruthSampleName).AddSampleColumn(DefaultQuerySampleName); truthHeader.ReferenceGenome.DoOnSuccess(r => builder.SetReference(r)); return(builder); } }
internal static VcfHeader.Builder AddSampleMetaInfo([NotNull] this VcfHeader.Builder builder, [NotNull] IVcfHeader truthHeader, [CanBeNull] ISamplePair samplePair, [NotNull] IVcfHeader queryHeader, [NotNull] IEnumerable <IBasicMetaLine> mergedMetaLines) { // todo: for vcf 4.3, this has ids, so should be merged via AddSampleMetaInfo. // get rid of pedigree lines since we don't have all the sample columns //builder = truthHeader.PedigreeLines.Concat(queryHeader.PedigreeLines) // .Aggregate(builder, (acc, line) => acc.AddPedigreeLine(line)); var truth = samplePair?.TruthSampleName ?? truthHeader.SampleNames.FirstOrDefault(); var query = samplePair?.QuerySampleName ?? queryHeader.SampleNames.FirstOrDefault(); if (truth != query && truth != null) // only add sample lines that are not the same sample names otherwise, error out. { AddSampleLine(truth, DefaultTruthSampleName); AddSampleLine(query, DefaultQuerySampleName); } return(mergedMetaLines .Aggregate(builder, (acc, line) => acc.AddLine(line))); void AddSampleLine(string sampleName, string defaultSampleName) { if (sampleName == null) { return; } builder.AddOtherLine(MetaInfoLine.Create(OriginalSampleNameLineKey, defaultSampleName, sampleName)); var truthLine = truthHeader.ColumnMetaInfoLines.SampleLines .FirstOrException(l => sampleName.Equals(l.Value.Id)).GetOrNull()?.Value; if (truthLine != null) { builder.AddLine(truthLine); } } }