Пример #1
0
        public void TestbyStartPosition()
        {
            var parameters = new GeometricFilterParameters();

            parameters.ExclusionStrategy    = GeometricFilterParameters.ExclusionModel.Prune;
            parameters.InclusionStrategy    = GeometricFilterParameters.InclusionModel.ByStartPosition;
            parameters.RegionOfInterestPath = Path.Combine(TestPaths.LocalTestDataDirectory, "roi.txt");

            //ROI
            //chr11   6415642 6415648
            //chr11   6415768 6415772

            var filter = new GeometricFilter(parameters);

            var allelesWrongChr    = CreateAllelesWith3baseDeletion(6415643, "chr4");
            var allelesBeforeROI   = CreateAllelesWith3baseDeletion(6415641, "chr11");
            var allelesStartROI    = CreateAllelesWith3baseDeletion(6415642, "chr11");
            var allelesEndROI      = CreateAllelesWith3baseDeletion(6415648, "chr11");
            var allelesNotInROI    = CreateAllelesWith3baseDeletion(6415650, "chr11");
            var allelesBackInInROI = CreateAllelesWith3baseDeletion(6415771, "chr11");
            var allelesAfterROI    = CreateAllelesWith3baseDeletion(6415773, "chr11");


            Assert.True(CheckFiltered(filter, allelesWrongChr, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBeforeROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesStartROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesEndROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesNotInROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBackInInROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesAfterROI, GeometricFilterParameters.ExclusionModel.Prune, false));
        }
Пример #2
0
        public void TestbyFilteringByExpandingTheInterval()
        {
            var parameters = new GeometricFilterParameters();

            parameters.ExclusionStrategy    = GeometricFilterParameters.ExclusionModel.Prune;
            parameters.InclusionStrategy    = GeometricFilterParameters.InclusionModel.Expanded;
            parameters.RegionOfInterestPath = Path.Combine(TestPaths.LocalTestDataDirectory, "roi.txt");

            //ROI
            //chr11   6415642 6415648
            //chr11   6415768 6415772

            var filter = new GeometricFilter(parameters);


            var allelesWrongChr     = CreateSNPOnlyAlleles(6415643, "chr4");
            var allelesBeforeROI    = CreateSNPOnlyAlleles(6415641, "chr11");
            var allelesStartROI     = CreateSNPOnlyAlleles(6415642, "chr11");
            var allelesEndROI       = CreateSNPOnlyAlleles(6415648, "chr11");
            var allelesNotInROI     = CreateSNPOnlyAlleles(6415650, "chr11");
            var allelesBackInInROI2 = CreateSNPOnlyAlleles(6415771, "chr11");
            var allelesAfterROI2    = CreateSNPOnlyAlleles(6415773, "chr11");


            Assert.True(CheckFiltered(filter, allelesWrongChr, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBeforeROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesStartROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesEndROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesNotInROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBackInInROI2, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesAfterROI2, GeometricFilterParameters.ExclusionModel.Prune, false));


            //ROI
            //chr11   6415642 6415648
            //chr11   6415768 6415772

            allelesWrongChr = CreateAllelesWith3baseDeletion(6415643, "chr4");   //will still be on wrong chr
            var snpsBeforeROI1 = CreateSNPOnlyAlleles(6415641, "chr11");         // not in the interval yet - the deletion has not caused it to be expanded

            allelesBeforeROI = CreateAllelesWith3baseDeletion(6415639, "chr11"); //3 base deletion starts on 39, and has deleted bases 40,41,42
            var snpsBeforeROI2 = CreateSNPOnlyAlleles(6415641, "chr11");         //the deletion upstream should make it included in the interval when it was not before.

            allelesStartROI     = CreateAllelesWith3baseDeletion(6415642, "chr11");
            allelesEndROI       = CreateAllelesWith3baseDeletion(6415648, "chr11");
            allelesNotInROI     = CreateAllelesWith3baseDeletion(6415650, "chr11");
            allelesBackInInROI2 = CreateAllelesWith3baseDeletion(6415771, "chr11");
            allelesAfterROI2    = CreateAllelesWith3baseDeletion(6415773, "chr11");

            Assert.True(CheckFiltered(filter, allelesWrongChr, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, snpsBeforeROI1, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBeforeROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, snpsBeforeROI2, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesStartROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesEndROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesNotInROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBackInInROI2, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesAfterROI2, GeometricFilterParameters.ExclusionModel.Prune, false));

            //make a new filter to reset the intervals to the original positions.
            filter = new GeometricFilter(parameters);
            var mnvBeforeROI       = CreateAllelesWith2baseMNV(6415640, "chr11"); //2 base MNV starts on 40 and extends to 41, so still out of the interval
            var mnvCrossingIntoROI = CreateAllelesWith2baseMNV(6415641, "chr11"); //2 base MNV starts on 41 and extends to 42, so goes into interval + forces it to expand
            var mnvInsideROI       = CreateAllelesWith2baseMNV(6415648, "chr11"); //2 base MNV starts on 648
            var mnvAfterROI        = CreateAllelesWith2baseMNV(6415766, "chr11"); //2 base MNV starts on 766

            Assert.True(CheckFiltered(filter, allelesWrongChr, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, mnvBeforeROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, snpsBeforeROI1, GeometricFilterParameters.ExclusionModel.Prune, false));    //SNP on pos 641
            Assert.True(CheckFiltered(filter, mnvCrossingIntoROI, GeometricFilterParameters.ExclusionModel.Prune, true)); //now position 641 is IN the interval
            Assert.True(CheckFiltered(filter, snpsBeforeROI2, GeometricFilterParameters.ExclusionModel.Prune, true));     //SNP on pos 641
            Assert.True(CheckFiltered(filter, allelesStartROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, allelesEndROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, mnvInsideROI, GeometricFilterParameters.ExclusionModel.Prune, true));
            Assert.True(CheckFiltered(filter, mnvAfterROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesNotInROI, GeometricFilterParameters.ExclusionModel.Prune, false));
            Assert.True(CheckFiltered(filter, allelesBackInInROI2, GeometricFilterParameters.ExclusionModel.Prune, true));
        }