import pysam
import sys
from tqdm import tqdm
def extract_records_by_ch(bam_file, output_bam, ch_value):
with pysam.AlignmentFile(bam_file, "rb", check_sq=False, threads=40) as input_bam:
with pysam.AlignmentFile(output_bam, "wb", template=input_bam, check_sq=False, threads=40) as output_bam:
for read in tqdm(input_bam, desc=f"reading {bam_file}"):
if read.has_tag('ch') and read.get_tag('ch') == ch_value:
output_bam.write(read)
if __name__ == "__main__":
extract_records_by_ch("/data-slow/md0-backup/data/ccs_data/data2025Q1/S_aureus_2h/20250207_Sync_Y0003_08_H01_Run0001_called.adapter.bam",
"test-data/channel_340564_subreads.bam", 340564)