public void Create_Filter_w_pass_tag_ignored() { var filterTags = new[] { "First", "Second", CanvasFilter.Pass }; var canvasFilter = CanvasFilter.Create(filterTags); Assert.Equal("First;Second", canvasFilter.ToVcfString()); }
public void FormatCnvSizeWithSuffix_10kb_conversion() { const int size = 10000; var cnvSizeFilter = CanvasFilter.GetCnvSizeFilter(size); Assert.Equal("L10kb", cnvSizeFilter); }
public void GetRecordLevelFilterFromSampleFiltersOnly_multi_sample_all_pass() { var sampleLevelFilters = new[] { CanvasFilter.PassFilter, CanvasFilter.PassFilter, CanvasFilter.PassFilter }; var recordLevelFilter = CanvasFilter.GetRecordLevelFilterFromSampleFiltersOnly(sampleLevelFilters); Assert.Equal("PASS", recordLevelFilter.ToVcfString()); }
public void FormatCnvSizeWithSuffix_500bp_conversion() { const int size = 500; var cnvSizeFilter = CanvasFilter.GetCnvSizeFilter(size); Assert.Equal("L500bp", cnvSizeFilter); }
NormalizedCoverageCalculator_OneSegmentPassOneSegmentFiltered_ReturnsBedGraphEntriesNormalizedByPassingSegmentCopyNumber() { var calculator = new NormalizedBinsCoverageCalculator(); var segments = new List <CanvasSegment> { new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin> { new SampleGenomicBin("chr1", 0, 1, 3f) }) { CopyNumber = 1, Filter = CanvasFilter.PassFilter }, new CanvasSegment("chr1", 1, 2, new List <SampleGenomicBin> { new SampleGenomicBin("chr1", 1, 2, 6f) }) { CopyNumber = 10, Filter = CanvasFilter.Create(new[] { "Filtered" }) } }; var results = calculator.Calculate(segments).ToList(); Assert.Equal(2, results.Count); Assert.Equal(1, results[0].Value); Assert.Equal(2, results[1].Value); }
//static void Main(string[] args) //{ // //GameOfLifeSource golSrc = new GameOfLifeSource(1680, 1050); // GameOfLifeSource golSrc = new GameOfLifeSource(840, 525); // 1680 x 1050 / 2 // //GameOfLifeSource golSrc = new GameOfLifeSource(560, 350); // 1680 x 1050 / 3 // //GameOfLifeSource golSrc = new GameOfLifeSource(336, 210); // 1680 x 1050 / 5 // GenericDelay<Image> delayFilt = new GenericDelay<Image>(new TimeSpan(0, 0, 0, 0, 100)); // //WallpaperFilter wpFilt = new WallpaperFilter(); // DisplayFilter displayFilt = new DisplayFilter(); // golSrc.OutputPin.AttachTo(delayFilt.InputPin); // delayFilt.OutputPin.AttachTo(displayFilt.InputPin); // displayFilt.OutputPin.AttachTo(golSrc.InputPin); // PinOut<Image> golSrcOut = new PinOut<Image>(); // golSrcOut.AttachTo(golSrc.InputPin); // golSrcOut.Send(null); // //golSrcOut.Send(null); // //golSrcOut.Send(null); // //golSrcOut.Send(null); // Console.ReadLine(); //} static void Main(string[] args) { RedditSource redditSource = new RedditSource("http://www.reddit.com/r/pics/.json"); GenericFilter <Image> sizeFilt = new GenericFilter <Image>(img => 100 < img.Width && img.Width < 1000 && 100 < img.Height && img.Height < 800); BorderFilter brdInnerFilt = new BorderFilter(Color.Black, 1); BorderFilter brdOuterFilt = new BorderFilter(Color.White, 9); RotateFilter rotFilt = new RotateFilter(-30, 30); CanvasFilter cvsFilt = new CanvasFilter(); GenericDelay <Image> delayFilt = new GenericDelay <Image>(new TimeSpan(0, 0, 30)); WallpaperFilter wpFilt = new WallpaperFilter(); redditSource.OutputPin.AttachTo(sizeFilt.InputPin); sizeFilt.SuccessPin.AttachTo(brdInnerFilt.InputPin); sizeFilt.FailurePin.AttachTo(redditSource.InputPin); brdInnerFilt.OutputPin.AttachTo(brdOuterFilt.InputPin); brdOuterFilt.OutputPin.AttachTo(rotFilt.InputPin); rotFilt.OutputPin.AttachTo(cvsFilt.PictureInputPin); cvsFilt.OutputPin.AttachTo(delayFilt.InputPin); cvsFilt.OutputPin.AttachTo(cvsFilt.CanvasInputPin); delayFilt.OutputPin.AttachTo(wpFilt.InputPin); wpFilt.OutputPin.AttachTo(redditSource.InputPin); /* prime canvas */ PinOut <Image> canvasOut = new PinOut <Image>(); canvasOut.AttachTo(cvsFilt.CanvasInputPin); Image canvas; try { int bytesRead; byte[] buf = new byte[1024]; FileStream fs = new FileStream(Path.Combine(Environment.CurrentDirectory, "wall.bmp"), FileMode.Open); MemoryStream ms = new MemoryStream(); while ((bytesRead = fs.Read(buf, 0, 1024)) > 0) { ms.Write(buf, 0, bytesRead); } ms.Seek(0, SeekOrigin.Begin); fs.Close(); canvas = Image.FromStream(ms); } catch (FileNotFoundException) { Size monitorSize = SystemInformation.PrimaryMonitorSize; canvas = new Bitmap(monitorSize.Width, monitorSize.Height); } canvasOut.Send(canvas); PinOut <Image> ljSrcOut = new PinOut <Image>(); ljSrcOut.AttachTo(redditSource.InputPin); ljSrcOut.Send(null); /* only need a signal to kick off the source */ ljSrcOut.Send(null); /* put two images in the loop to test multithreading */ //ljSrcOut.Send(null); /* hell, why not three? */ //ljSrcOut.Send(null); /* we are approaching levels of insanity heretofore untold */ Console.ReadLine(); }
public void GetRecordLevelFilter_multi_sample_failed_common_filter() { var sampleLevelFilters = new[] { CanvasFilter.Create(new [] { "Failed1" }), CanvasFilter.Create(new [] { "Failed1", "Failed2" }), CanvasFilter.Create(new [] { "Failed1", "Failed3" }) }; var recordLevelFilter = CanvasFilter.GetRecordLevelFilterFromSampleFiltersOnly(sampleLevelFilters); Assert.Equal("FailedFT", recordLevelFilter.ToVcfString()); }
public void GetRecordLevelFilterFromSampleFiltersOnly_multi_sample_one_pass() { var sampleLevelFilters = new[] { CanvasFilter.PassFilter, CanvasFilter.Create(new [] { "Failed1" }), CanvasFilter.Create(new [] { "Failed2" }), }; var recordLevelFilter = CanvasFilter.GetRecordLevelFilterFromSampleFiltersOnly(sampleLevelFilters); Assert.Equal("PASS", recordLevelFilter.ToVcfString()); }
//static void Main(string[] args) //{ // //GameOfLifeSource golSrc = new GameOfLifeSource(1680, 1050); // GameOfLifeSource golSrc = new GameOfLifeSource(840, 525); // 1680 x 1050 / 2 // //GameOfLifeSource golSrc = new GameOfLifeSource(560, 350); // 1680 x 1050 / 3 // //GameOfLifeSource golSrc = new GameOfLifeSource(336, 210); // 1680 x 1050 / 5 // GenericDelay<Image> delayFilt = new GenericDelay<Image>(new TimeSpan(0, 0, 0, 0, 100)); // //WallpaperFilter wpFilt = new WallpaperFilter(); // DisplayFilter displayFilt = new DisplayFilter(); // golSrc.OutputPin.AttachTo(delayFilt.InputPin); // delayFilt.OutputPin.AttachTo(displayFilt.InputPin); // displayFilt.OutputPin.AttachTo(golSrc.InputPin); // PinOut<Image> golSrcOut = new PinOut<Image>(); // golSrcOut.AttachTo(golSrc.InputPin); // golSrcOut.Send(null); // //golSrcOut.Send(null); // //golSrcOut.Send(null); // //golSrcOut.Send(null); // Console.ReadLine(); //} static void Main(string[] args) { RedditSource redditSource = new RedditSource("http://www.reddit.com/r/pics/.json"); GenericFilter<Image> sizeFilt = new GenericFilter<Image>(img => 100 < img.Width && img.Width < 1000 && 100 < img.Height && img.Height < 800); BorderFilter brdInnerFilt = new BorderFilter(Color.Black, 1); BorderFilter brdOuterFilt = new BorderFilter(Color.White, 9); RotateFilter rotFilt = new RotateFilter(-30, 30); CanvasFilter cvsFilt = new CanvasFilter(); GenericDelay<Image> delayFilt = new GenericDelay<Image>(new TimeSpan(0, 0, 30)); WallpaperFilter wpFilt = new WallpaperFilter(); redditSource.OutputPin.AttachTo(sizeFilt.InputPin); sizeFilt.SuccessPin.AttachTo(brdInnerFilt.InputPin); sizeFilt.FailurePin.AttachTo(redditSource.InputPin); brdInnerFilt.OutputPin.AttachTo(brdOuterFilt.InputPin); brdOuterFilt.OutputPin.AttachTo(rotFilt.InputPin); rotFilt.OutputPin.AttachTo(cvsFilt.PictureInputPin); cvsFilt.OutputPin.AttachTo(delayFilt.InputPin); cvsFilt.OutputPin.AttachTo(cvsFilt.CanvasInputPin); delayFilt.OutputPin.AttachTo(wpFilt.InputPin); wpFilt.OutputPin.AttachTo(redditSource.InputPin); /* prime canvas */ PinOut<Image> canvasOut = new PinOut<Image>(); canvasOut.AttachTo(cvsFilt.CanvasInputPin); Image canvas; try { int bytesRead; byte[] buf = new byte[1024]; FileStream fs = new FileStream(Path.Combine(Environment.CurrentDirectory, "wall.bmp"), FileMode.Open); MemoryStream ms = new MemoryStream(); while ((bytesRead = fs.Read(buf, 0, 1024)) > 0) ms.Write(buf, 0, bytesRead); ms.Seek(0, SeekOrigin.Begin); fs.Close(); canvas = Image.FromStream(ms); } catch (FileNotFoundException) { Size monitorSize = SystemInformation.PrimaryMonitorSize; canvas = new Bitmap(monitorSize.Width, monitorSize.Height); } canvasOut.Send(canvas); PinOut<Image> ljSrcOut = new PinOut<Image>(); ljSrcOut.AttachTo(redditSource.InputPin); ljSrcOut.Send(null); /* only need a signal to kick off the source */ ljSrcOut.Send(null); /* put two images in the loop to test multithreading */ //ljSrcOut.Send(null); /* hell, why not three? */ //ljSrcOut.Send(null); /* we are approaching levels of insanity heretofore untold */ Console.ReadLine(); }
public void UpdateRecordLevelFilter_w_MinQual() { var sampleLevelFilters = new[] { CanvasFilter.Create(new [] { "Failed1" }), CanvasFilter.Create(new [] { "Failed1", "Failed2" }), CanvasFilter.Create(new [] { "Failed1", "Failed3" }) }; var recordLevelFitler = CanvasFilter.Create(new[] { "MinQual" }); var updatedrecordLevelFilter = CanvasFilter.UpdateRecordLevelFilter(recordLevelFitler, sampleLevelFilters); Assert.Equal("MinQual;FailedFT", updatedrecordLevelFilter.ToVcfString()); }
/// <summary> /// For each segment shorter than 10kb, flag it as filtered. /// </summary> private void FilterExcessivelyShortSegments(ISampleMap <List <CanvasSegment> > segments) { string sizeFilter = CanvasFilter.GetCnvSizeFilter(CanvasFilter.SegmentSizeCutoff); foreach (var segmentList in segments.Values) { foreach (var segment in segmentList) { if (segment.Length >= CanvasFilter.SegmentSizeCutoff) { continue; } segment.Filter = segment.Filter.AddFilter(sizeFilter); } } }
private void EstimateQScores(ISampleMap <CanvasSegment> canvasSegments, ISampleMap <SampleMetrics> pedigreeMembersInfo, PedigreeInfo pedigreeInfo, ISampleMap <Dictionary <Genotype, double> > singleSampleLikelihoods, JointLikelihoods copyNumberLikelihoods, ISampleMap <Genotype> copyNumbers) { foreach (var sampleId in canvasSegments.SampleIds) { canvasSegments[sampleId].QScore = GetSingleSampleQualityScore(singleSampleLikelihoods[sampleId], copyNumbers[sampleId]); canvasSegments[sampleId].CopyNumber = copyNumbers[sampleId].TotalCopyNumber; if (canvasSegments[sampleId].QScore < _qualityFilterThreshold) { canvasSegments[sampleId].Filter = CanvasFilter.Create(new[] { $"q{_qualityFilterThreshold}" }); } } if (pedigreeInfo.HasFullPedigree()) { SetDenovoQualityScores(canvasSegments, pedigreeMembersInfo, pedigreeInfo.ParentsIds, pedigreeInfo.OffspringIds, copyNumberLikelihoods); } }
public void FiltersNonPassSegments() { var calculator = new CopyNumberBedGraphCalculator(); var segments = new List <CanvasSegment> { new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin> { new SampleGenomicBin("chr1", 0, 1, 3f) }) { CopyNumber = 0, Filter = CanvasFilter.Create("NonPass".Yield()) } }; var ploidyInfo = new PloidyInfo(); var results = calculator.Calculate(segments, ploidyInfo); Assert.Empty(results); }
public void ToVcfString_test() { var canvasFilter = CanvasFilter.Create(new[] { "First", "Second", "Third" }); Assert.Equal("First;Second;Third", canvasFilter.ToVcfString()); }