コード例 #1
0
        /// <summary>
        /// Validate that wittyer settings are properly formatted.
        /// </summary>
        /// <param name="wittyerSettings">Settings to validate.</param>
        /// <exception cref="ConstraintException"></exception>
        public static void ValidateSettings([NotNull] IWittyerSettings wittyerSettings)
        {
            foreach (var variantType in wittyerSettings.InputSpecs.Keys)
            {
                var inputSpec = wittyerSettings.InputSpecs[variantType];
                VerifyBins(inputSpec, variantType);
            }

            void VerifyBins(InputSpec inputSpec, WittyerType variantType)
            {
                var bins = inputSpec.BinSizes;

                if (bins.Select(sizeSkipTuple => sizeSkipTuple.size).Distinct().Count() != bins.Count)
                {
                    throw new ConstraintException($"Duplicate bin sizes for variant type {variantType}.");
                }
                if (bins.Any() && bins.All(sizeSkipTuple => sizeSkipTuple.skip))
                {
                    throw new ConstraintException($"All bins marked as skipped for variant type {variantType}.");
                }
            }
        }
コード例 #2
0
ファイル: MainLauncher.cs プロジェクト: scalavision/witty.er
 public static ITry <GeneralStats> GenerateJson(IWittyerSettings settings,
                                                [NotNull] IEnumerable <(ISamplePair sampleName, IWittyerResult query, IWittyerResult truth)> results,