Example #1
0
        public void ColumnsShuffle(byte chrColumn, byte leftColumn, sbyte rightColumn, byte nameColumn, byte valueColumn)
        {
            // Arrange
            var rg = new RegionGenerator
            {
                ChrColumn   = chrColumn,
                LeftColumn  = leftColumn,
                RightColumn = rightColumn,
                NameColumn  = nameColumn,
                ValueColumn = valueColumn
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser(
                    new BedColumns()
                {
                    Chr   = chrColumn,
                    Left  = leftColumn,
                    Right = rightColumn,
                    Name  = nameColumn,
                    Value = valueColumn
                });
                var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0];

                // Assert
                Assert.True(parsedPeak.CompareTo(rg.Peak) == 0);
            }
        }
Example #2
0
        public void ReadStrand()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // ACt
                var parser     = new BedParser();
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands.ContainsKey(rg.Strand));
            }
        }
        public void FullySetArguments()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser     = new BedParser(rg.Columns);
                var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0];

                // Assert
                Assert.True(parsedPeak.CompareTo(rg.Peak) == 0);
            }
        }
Example #4
0
        public void ReadValue()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser     = new BedParser();
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Value == rg.Value);
            }
        }
Example #5
0
        public void AssignHashKey()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser     = new BedParser();
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].GetHashCode() != 0);
            }
        }
        public void DefaultColumnsOrder()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator())
            {
                // Act
                var parser     = new BedParser();
                var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0];

                // Assert
                Assert.True(parsedPeak.CompareTo(rg.Peak) == 0);
            }
        }
Example #7
0
        public void BEDWithAllOptionalColumnsAndSomeExtraColumns()
        {
            // Arrange
            var rg = new RegionGenerator {
                SummitColumn = 10, StrandColumn = 11
            };

            using (var file = new TempFileCreator(rg, headerLineCount: 2, peaksCount: 10))
            {
                // Act
                var parser     = new BedParser();
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.Count == 10);
            }
        }
Example #8
0
        public void ReadNoPeak()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg, peaksCount: 4))
            {
                // Act
                var parser = new BedParser()
                {
                    MaxLinesToRead = 0
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes.Count == 0);
            }
        }
Example #9
0
        public void MaxLinesToRead(int numberOfPeaksToWrite, uint numberOfPeaksToRead)
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg, peaksCount: numberOfPeaksToWrite))
            {
                // Act
                var parser = new BedParser()
                {
                    MaxLinesToRead = numberOfPeaksToRead
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.Count == Math.Min(numberOfPeaksToWrite, numberOfPeaksToRead));
            }
        }
Example #10
0
        public void TestStrand(sbyte strandColumn, char strand)
        {
            // Arrange
            var rg = new RegionGenerator
            {
                Strand       = strand,
                StrandColumn = strandColumn
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser(rg.Columns);

                // Assert
                Assert.True(parser.Parse(file.Path).Chromosomes[rg.Chr].Strands.ContainsKey(strand));
            }
        }
        public void ThrowExceptionForInvalidCultureInfo()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var exception = Assert.Throws <ArgumentOutOfRangeException>(
                    () => new BedParser
                {
                    Culture = "invalid_culture"
                });

                // Assert
                Assert.False(string.IsNullOrEmpty(exception.Message));
                Assert.Contains("Invalid culture info", exception.Message);
            }
        }
Example #12
0
        public void TestSummit(sbyte summitColumn, int summit)
        {
            // Arrange
            var rg = new RegionGenerator {
                SummitColumn = summitColumn
            };

            rg.Summit = summit == -1 ? rg.Left + ((rg.Right - rg.Left) / 2) : summit;

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser     = new BedParser(rg.Columns);
                var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0];

                // Assert
                Assert.True(parsedPeak.Summit == rg.Summit);
            }
        }
Example #13
0
        public void PValueConversion(double originalValue, double convertedValue, PValueFormats pvalueFormat)
        {
            // Arrange
            var rg = new RegionGenerator {
                Value = convertedValue
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser()
                {
                    PValueFormat = pvalueFormat
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Value == originalValue);
            }
        }
Example #14
0
        public void PValueAssertion(double value, PValueFormats pvalueFormat, bool validate, bool expected)
        {
            // Arrange
            var rg = new RegionGenerator {
                Value = value
            };

            // Act
            using (var file = new TempFileCreator(rg))
            {
                var parser = new BedParser()
                {
                    PValueFormat   = pvalueFormat,
                    ValidatePValue = validate
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes.Any() == expected);
            }
        }
Example #15
0
        public void UseDefaultValueIfInvalidPValueColumn()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser(new BedColumns()
                {
                    Value = 9
                })
                {
                    DropPeakIfInvalidValue = false
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes.ContainsKey(rg.Chr));
            }
        }
Example #16
0
        public void TestExcessChrs(string chr)
        {
            // Arrange
            var rg = new RegionGenerator {
                Chr = chr
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                BedParser <Peak> parser = new BedParser()
                {
                    Assembly             = Assemblies.hg19,
                    ReadOnlyAssemblyChrs = false
                };
                parser.Parse(file.Path);

                // Assert
                Assert.True(parser.ExcessChrs.Count == 1);
            }
        }
Example #17
0
        public void TestMissingChrs()
        {
            // Arrange
            var rg = new RegionGenerator {
                Chr = "chr1"
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser()
                {
                    Assembly             = Assemblies.hg19,
                    ReadOnlyAssemblyChrs = false
                };
                parser.Parse(file.Path);

                // Assert
                Assert.True(parser.MissingChrs.Count == References.GetGenomeSizes(Assemblies.hg19).Count - 1);
            }
        }
Example #18
0
        public void DropLineIfInvalidChr(string chr)
        {
            // Arrange
            var rg = new RegionGenerator {
                Chr = chr
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser()
                {
                    Assembly             = Assemblies.hg19,
                    ReadOnlyAssemblyChrs = true
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes.Count == 0);
            }
        }
Example #19
0
        public void ParseIntervalChrWhenChrPrefixIsMissing(string chr)
        {
            // Arrange
            var rg = new RegionGenerator {
                Chr = chr
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser()
                {
                    Assembly             = Assemblies.hg19,
                    ReadOnlyAssemblyChrs = true
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes.ContainsKey("chr" + chr));
            }
        }
Example #20
0
        public void LogErrorIfFailedToReadALine()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser(new BedColumns()
                {
                    Value = 9
                })
                {
                    DropPeakIfInvalidValue = true
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Messages.Count > 0);
            }
        }
Example #21
0
        public void InvalidNameColumn()
        {
            // Arrange
            var rg = new RegionGenerator();

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser(new BedColumns()
                {
                    Name = 12
                })
                {
                    DropPeakIfInvalidValue = false
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Name == null);
            }
        }
Example #22
0
        public void TestDelimiter(char delimiter)
        {
            // Arrange
            string chr    = "chr1";
            char   strand = '*';
            var    rg     = new RegionGenerator {
                Chr = chr, Strand = strand
            };

            using (var file = new TempFileCreator(rg.GetSampleLine(delimiter)))
            {
                // Act
                var parser = new BedParser()
                {
                    Delimiter = delimiter
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[chr].Strands[strand].Intervals[0].CompareTo(rg.Peak) == 0);
            }
        }
        public void ReadValueInvariantCulture(double value, string culture)
        {
            // Arrange
            var rg = new RegionGenerator
            {
                Value   = value,
                Culture = culture
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser = new BedParser
                {
                    Culture = culture
                };
                var parsedData = parser.Parse(file.Path);

                // Assert
                Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0].Value == rg.Value);
            }
        }
Example #24
0
        public TempFileCreator(RegionGenerator columns, int headerLineCount = 0, int peaksCount = 1)
        {
            Path = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".bed";
            FileStream stream = File.Create(Path);

            using (StreamWriter writer = new StreamWriter(stream))
            {
                while (headerLineCount-- > 0)
                {
                    writer.WriteLine(columns.GetSampleHeader());
                }

                while (peaksCount-- > 0)
                {
                    writer.WriteLine(columns.GetSampleLine());
                    if (peaksCount > 0)
                    {
                        columns.Left  = columns.Right + 10;
                        columns.Right = columns.Right + 20;
                    }
                }
            }
        }
Example #25
0
        public void ColumnsSetters()
        {
            // Arrange
            var rg = new RegionGenerator
            {
                ChrColumn    = 2,
                LeftColumn   = 2,
                RightColumn  = 9,
                ValueColumn  = 0,
                SummitColumn = 2,
                NameColumn   = 2,
                StrandColumn = 0,
            };

            using (var file = new TempFileCreator(rg))
            {
                // Act
                var parser     = new BedParser(rg.Columns);
                var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0];

                // Assert
                Assert.True(parsedPeak.CompareTo(rg.Peak) == 0);
            }
        }