private void InitializeReader(string chromosomeFilter = null) { _bamReader = new BamReader(_bamFilePath); _references = _bamReader.GetReferences().OrderBy(r => r.Index).ToList(); _bamIsStitched = CheckIfBamHasBeenStitched(_bamReader.GetHeader()); if (!string.IsNullOrEmpty(chromosomeFilter)) { var chrReference = _references.FirstOrDefault(r => r.Name == chromosomeFilter); if (chrReference == null) { throw new Exception(string.Format("Cannot set chr filter to '{0}'. This chr is not in the bam.", chromosomeFilter)); } _bamIndexFilter = chrReference.Index; } var chrToStart = !string.IsNullOrEmpty(chromosomeFilter) ? chromosomeFilter : _references.First().Name; var position = 0; if (_remainingIntervals != null && _remainingIntervals.ContainsKey(chrToStart)) { position = _remainingIntervals[chrToStart][0].StartPosition - 1; } Jump(chrToStart, position); }
private void InitializeReader(string chromosomeFilter = null) { _bamReader = new BamReader(_bamFilePath); _references = _bamReader.GetReferences().OrderBy(r => r.Index).ToList(); if (!_bamIsStitched) { _bamIsStitched = CheckBamHeaderIfBamHasBeenStitched(_bamReader.GetHeader()); } SourceIsCollapsed = CheckIfBamHasBeenCollapsed(_bamReader.GetHeader()); if (!string.IsNullOrEmpty(chromosomeFilter)) { var chrReference = _references.FirstOrDefault(r => r.Name == chromosomeFilter); if (chrReference == null) { throw new InvalidDataException(string.Format("Cannot set chr filter to '{0}'. This chr is not in the bam.", chromosomeFilter)); } _bamIndexFilter = chrReference.Index; } var chrToStart = !string.IsNullOrEmpty(chromosomeFilter) ? chromosomeFilter : _references.First().Name; Jump(chrToStart); }
private void Initialize() { var baseReader = new BamReader(_inputBam); _chroms = baseReader.GetReferenceNames(); _header = baseReader.GetHeader(); _references = baseReader.GetReferences(); }
private BamWriter GetWriter(string outputFile) { using (var reader = new BamReader(_inputFile)) { var genome = reader.GetReferences(); string originalSamHeader = reader.GetHeader(); var updatedHeader = UpdateBamHeader(originalSamHeader); return(new BamWriter(outputFile, updatedHeader, genome)); } }
private List <GenomeMetadata.SequenceMetadata> GetReferences(string inBam) { List <GenomeMetadata.SequenceMetadata> bamReferences; var refIdMapping = new Dictionary <int, string>(); using (var reader = new BamReader(inBam)) { bamReferences = reader.GetReferences(); foreach (var referenceName in reader.GetReferenceNames()) { refIdMapping.Add(reader.GetReferenceIndex(referenceName), referenceName); } } return(bamReferences); }
public void Initialize() { var outputDirectory = Path.GetDirectoryName(_outputFile); if (!Directory.Exists(outputDirectory)) { Directory.CreateDirectory(outputDirectory); } using (var reader = new BamReader(_inputFile)) { var genome = reader.GetReferences(); _bamWriter = new BamWriter(_temp1File, reader.GetHeader(), genome); } }
private IBamWriter CreateBamWriter() { string bamHeader; List <GenomeMetadata.SequenceMetadata> bamReferences; var refIdMapping = new Dictionary <int, string>(); using (var reader = new BamReader(_inBam)) { bamReferences = reader.GetReferences(); var oldBamHeader = reader.GetHeader(); bamHeader = UpdateBamHeader(oldBamHeader); foreach (var referenceName in reader.GetReferenceNames()) { refIdMapping.Add(reader.GetReferenceIndex(referenceName), referenceName); } } return(new BamWriterWrapper(new BamWriter(_outBam, bamHeader, bamReferences))); }
private IBamWriterMultithreaded CreateBamWriter() { string bamHeader; List <GenomeMetadata.SequenceMetadata> bamReferences; var refIdMapping = new Dictionary <int, string>(); using (var reader = new BamReader(_inBam)) { bamReferences = reader.GetReferences(); var oldBamHeader = reader.GetHeader(); bamHeader = UpdateBamHeader(oldBamHeader); foreach (var referenceName in reader.GetReferenceNames()) { refIdMapping.Add(reader.GetReferenceIndex(referenceName), referenceName); } } if (_options.SortMemoryGB <= 0) { return(new BamWriterMultithreaded(_outBam, bamHeader, bamReferences, _options.NumThreads, 1)); } return(new BamWriterInMem(_outBam, bamHeader, bamReferences, _options.SortMemoryGB, _options.NumThreads, 1)); }