Пример #1
0
 private SampleStats([NotNull] ISamplePair samplePair, IReadOnlyList <BasicJsonStats> overallStats,
                     IReadOnlyList <SvTypeJsonStats> detailedStats)
 {
     _samplePair   = samplePair;
     OverallStats  = overallStats;
     DetailedStats = detailedStats;
 }
Пример #2
0
 /// <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;
 }
Пример #3
0
 public static SampleMetrics Create([NotNull] ISamplePair samplePair,
                                    [NotNull] IImmutableDictionary <StatsType, IStatsUnit> overallStats,
                                    [NotNull] IImmutableDictionary <WittyerType, IBenchmarkMetrics <WittyerType> > detailedStats)
 => new SampleMetrics(samplePair, overallStats, detailedStats);
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
                }
            }
        }