def test_shard_bam_file(): filename = utils.get_test_data('10x-example/possorted_genome_bam.bam') bam_file = tenx.read_bam_file(filename) assert isinstance(bam_file, bs.AlignmentFile) expected_alignments = sum(1 for _ in bam_file) with utils.TempDirectory() as location: bam_shard_files = tenx.shard_bam_file(filename, expected_alignments, location) assert len(bam_shard_files) == 1 num_shards = 2 with utils.TempDirectory() as location: bam_shard_files = tenx.shard_bam_file( filename, expected_alignments // num_shards, location) assert len(bam_shard_files) == 2 total_alignments = 0 for bam_file in bam_shard_files: total_alignments += sum(1 for _ in tenx.read_bam_file(bam_file)) assert total_alignments == expected_alignments whole_bam_file = tenx.read_bam_file(filename) for bam_file in bam_shard_files: for line in tenx.read_bam_file(bam_file): assert line == next(whole_bam_file)
def test_pass_alignment_qc_filtered(): bam = tenx.read_bam_file( utils.get_test_data('10x-example/possorted_genome_bam_filtered.bam')) total_alignments = sum(1 for _ in bam) bam = tenx.read_bam_file( utils.get_test_data('10x-example/possorted_genome_bam_filtered.bam')) assert total_alignments == 1500 total_pass = sum(1 for alignment in bam if tenx.pass_alignment_qc(alignment, None)) assert total_pass == 192
def test_pass_alignment_qc(): barcodes = tenx.read_barcodes_file( utils.get_test_data('10x-example/barcodes.tsv')) bam = tenx.read_bam_file( utils.get_test_data('10x-example/possorted_genome_bam.bam')) total_pass = sum(1 for alignment in bam if tenx.pass_alignment_qc(alignment, barcodes)) assert total_pass == 439
def test_read_bam_file(): filename = utils.get_test_data('10x-example/possorted_genome_bam.bam') bam_file = tenx.read_bam_file(filename) assert isinstance(bam_file, bs.AlignmentFile) total_alignments = sum(1 for _ in bam_file) assert total_alignments == 1714