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;
        }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
 public BedParser(BedColumns columns) : base(columns, new PeakConstructor())
 {
 }
Beispiel #4
0
        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);
            }
        }