private static Dictionary <string, List <Interval> > LoadBedRegions(IFileLocation bedFile,
                                                                     GenomeMetadata genomeMetadata)
 {
     return(File.ReadAllLines(bedFile.FullName)
            .Select(line =>
     {
         var bits = line.Split('\t');
         return (Chromosome: bits[0], Interval: new Interval(int.Parse(bits[1]) + 1, int.Parse(bits[2])));
     })
            .GroupByAdjacent(bedEntry => bedEntry.Chromosome)
            .Where(kvp => genomeMetadata.GetSequence(kvp.Key) != null)
            .ToDictionary(
                chromosomeElements => chromosomeElements.Key,
                chromosomeElements => GetValidatedIntervals(chromosomeElements.Value,
                                                            genomeMetadata.GetSequence(chromosomeElements.Key).Length).ToList()));
 }
Esempio n. 2
0
        public ChrReference GetChrReference(string chrName)
        {
            var sequenceSource = _genomeSource.GetSequence(chrName);

            if (sequenceSource == null)
            {
                return(null);
            }

            return(new ChrReference
            {
                Name = chrName,
                Sequence = sequenceSource.GetBases(true),
                FastaPath = sequenceSource.FastaPath
            });
        }