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())); }
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 }); }