public RegionGenerator() { // NOTE // The following default column indexes must match the // BED file type specifications. These specifications can // be obtained from various resources such as Ensemble: // https://uswest.ensembl.org/info/website/upload/bed.html Columns = new BedColumns() { Chr = 0, Left = 1, Right = 2, Name = 3, Value = 4, Strand = -1, Summit = -1 }; Chr = "chr1"; Left = 10; Right = 20; Summit = 15; Name = "GeUtilities_01"; Value = 0.12345; Strand = '.'; Culture = CultureInfo.CurrentCulture.Name; }
/// <summary> /// Parse standard Browser Extensible Data (BED) format. /// </summary> /// <param name="sourceFilePath">Full path of source file name.</param> public BedParser(BedColumns columns, IPeakConstructor <I> constructor) : base(columns) { _constructor = constructor; _nameColumn = columns.Name; _valueColumn = columns.Value; _summitColumn = columns.Summit; _mostStringentPeak = _constructor.Construct(0, 2, 1); _mostPermissivePeak = _constructor.Construct(0, 2, 0); DefaultValue = 1E-8; DropPeakIfInvalidValue = true; ValidatePValue = true; PValueFormat = PValueFormats.SameAsInput; }
public BedParser(BedColumns columns) : base(columns, new PeakConstructor()) { }
public void ParseBasedOnGivenParserConfig() { // Arrange string rep1Path = Path.GetTempPath() + Guid.NewGuid().ToString() + ".bed"; string rep2Path = Path.GetTempPath() + Guid.NewGuid().ToString() + ".bed"; FileStream stream = File.Create(rep1Path); using (StreamWriter writter = new StreamWriter(stream)) { writter.WriteLine("ABC\t____\t10\t+++++\t100.0\tchr1\t___====____\tmspc_peak_1\t20"); writter.WriteLine("ABC\t____\t25\t+++++\t123.4\tchr1\t___====____\tmspc_peak_2\t35"); } stream = File.Create(rep2Path); using (StreamWriter writter = new StreamWriter(stream)) { writter.WriteLine("ABC\t____\t11\t+++++\t31.4\tchr1\t___====____\tmspc_peak_3\t18"); writter.WriteLine("ABC\t____\t22\t+++++\t21.4\tchr1\t___====____\tmspc_peak_4\t28"); writter.WriteLine("ABC\t____\t30\t+++++\t99.9\tchr1\t___====____\tmspc_peak_5\t40"); } var cols = new BedColumns() { Chr = 5, Left = 2, Right = 8, Name = 7, Strand = -1, Summit = -1 }; var path = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "MSPCTests_" + new Random().NextDouble().ToString(); using (StreamWriter w = new StreamWriter(path)) w.WriteLine(JsonConvert.SerializeObject(cols)); // Act string console = null; using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); Program.Main(string.Format("-i {0} -i {1} -r bio -w 1E-1 -s 1E-4 -c 1 -p {2}", rep1Path, rep2Path, path).Split(' ')); File.Delete(rep1Path); File.Delete(rep2Path); console = sw.ToString(); } // Assert Assert.Contains("Read peaks#:\t2", console); Assert.Contains("Read peaks#:\t3", console); Assert.Contains("Max p-value:\t1.000E-100", console); Assert.Contains("Min p-value:\t3.981E-124", console); Assert.Contains("Min p-value:\t1.259E-100", console); Assert.Contains("Max p-value:\t3.981E-022", console); // Clean up File.Delete(rep1Path); File.Delete(rep2Path); foreach (var p in Directory.GetDirectories(Environment.CurrentDirectory, "session_*")) { Directory.Delete(p, true); } }