private void WriteSequenceAlignment(ISequenceAlignment sequenceAlignment, Stream writer, BAMIndexStorage indexStorage)
{
// validate sequenceAlignment.
SequenceAlignmentMap sequenceAlignmentMap = ValidateAlignment(sequenceAlignment);
// write bam struct to temp file.
using (var fstemp = PlatformManager.Services.CreateTempStream())
{
WriteUncompressed(sequenceAlignmentMap, fstemp, CreateSortedBAMFile);
fstemp.Seek(0, SeekOrigin.Begin);
// Compress and write to the specified stream.
CompressBAMFile(fstemp, writer);
}
// if index file need to be created.
if (indexStorage != null)
{
writer.Seek(0, SeekOrigin.Begin);
CreateBAMIndexFile(writer, indexStorage);
}
}