2024-04-01

####根据个体ID,调取VCF文件


import vcf

# 读取个体ID

with open('171q.txt', 'r') as f:

    individual_ids = [line.strip() for line in f]

# 打开 VCF 文件

vcf_reader = vcf.Reader(filename='all_2229.vcf.gz')

# 获取 VCF 文件的 header

header = str(vcf_reader)

# 创建一个新的 VCF writer 对象,用于写入选定的个体数据

vcf_writer = vcf.Writer(open('filtered.vcf', 'w'), vcf_reader)

# 遍历 VCF 文件中的记录

for record in vcf_reader:

    # 检查每个记录中的个体 ID 是否在指定的个体 ID 列表中

    selected_samples = [sample.sample for sample in record.samples if sample.sample in individual_ids]

    # 如果该记录包含任何指定的个体,则将其写入新的 VCF 文件中

    if selected_samples:

        record.samples = [sample for sample in record.samples if sample.sample in selected_samples]

        vcf_writer.write_record(record)

# 关闭文件

vcf_writer.close()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。