Пример #1
0
        public void CreateBamReader()
        {
            // Should return a fully functional bam reader
            var tempPath = $"TemporaryBamFile_{Guid.NewGuid()}.bam";

            if (File.Exists(tempPath))
            {
                File.Delete(tempPath);
            }

            using (var bamWriter = new BamWriter(tempPath, "header", new List <GenomeMetadata.SequenceMetadata>()))
            {
                var bamWriterHandle = new BamWriterHandle(bamWriter);
                bamWriterHandle.WriteAlignment(TestHelpers.CreateBamAlignment("ATCG", 8, 10, 30, true));
                bamWriterHandle.WriteAlignment(null);
            }

            Assert.True(File.Exists(tempPath));

            var stitcherOptions = new StitcherOptions();
            var factory         = new GeminiDataSourceFactory(stitcherOptions, "fakeGenomePath", false);

            using (var bamReader = factory.CreateBamReader(tempPath))
            {
                BamAlignment alignment = new BamAlignment();
                var          getNext   = bamReader.GetNextAlignment(ref alignment, true);
                Assert.True(getNext);
                Assert.Equal(7, alignment.Position);
            }

            File.Delete(tempPath);
        }
Пример #2
0
        public void HappyPath()
        {
            var tempPath = $"TemporaryBamFile_{Guid.NewGuid()}.bam";

            if (File.Exists(tempPath))
            {
                File.Delete(tempPath);
            }

            using (var bamWriter = new BamWriter(tempPath, "header", new List <GenomeMetadata.SequenceMetadata>()))
            {
                var bamWriterHandle = new BamWriterHandle(bamWriter);
                bamWriterHandle.WriteAlignment(TestHelpers.CreateBamAlignment("ATCG", 1, 10, 30, true));
                bamWriterHandle.WriteAlignment(null);
            }

            Assert.True(File.Exists(tempPath));

            File.Delete(tempPath);
        }