练习_对fastq文件进行读写

news/2024/7/8 2:41:57 标签: python, fastq, 文件处理, 测序fastq文件

fastq_0">练习_对fastq文件进行读写

利用python脚本对fastq文件进行处理

  • 首先读取fastq文件,由于该文件为压缩的二进制文件,调用gzip模块打开
  • 其次,根据fastq文件格式特点,对文件进行分离处理,第一行为序列id信息,紧接着的三行与第一行为对应关系,即采用字典的键值对应
  • 定义函数,对fastq文件进行读写
  • 后续增加文件处理函数,并进行调整
import gzip

# 定义函数读取fastq文件
def read_fastq(seq):
    with gzip.open(r'*.fastq.gz','rb') as input_file:
        NR = 0 # NR 读取数据的行数数值,初始化值为0
        for line in input_file:
            if NR %4 == 0:  # 根据行数进行判断
                seq_id = line.decode()  # 对二进制文件解码
                seq[seq_id] = ""  # 将该id对应的初始值设为空
            else:
                seq[seq_id] += line.decode()  # 将对应的序列+以及质量值信息添加到该id键对应的值
            NR += 1
    input_file.close()


# 定义函数写入fastq
def write_fastq(seq):
    with gzip.open(r'*.fastq.gz','wb') as output_file:
        for key, value in seq.items():  # 遍历上一步得到的字典,并将其写入到新的文件中
            # print(key,value)
            output_file.write(key.encode())  # 将str转换为二进制文件
            output_file.write(value.encode())

    output_file.close()


if __name__ == "__main__":
    seq = {}  # 建立空字典键存储序列id信息,值存储剩下三行信息(包括“序列”、“+”、“质量值”)
    read_fastq(seq)
    write_fastq(seq)

记录一下,后续继续根据需求继续增删


http://www.niftyadmin.cn/n/1721990.html

相关文章

从excel文件读取数据写入csv文件笔记记录

在之前使用的几个版本的脚本中,发现由于读取的数据和index信息不一致导致写入的结果变少,故增加判断,在生成文件过程中方便直接发现异常,并进行调整输入的文件信息。 此版本是在之前的只做了修改,未进行优化&#xff1…

参考序列中组装级别低得污染序列去除

NCBI数据库中存放着大量得WGS测序数据,随着二代测序得发展,测序成本得降低以及各种微生物组计划得实施,越来越多得测序数据得以存储,各种组装级别得参考基因组(complete genome, chromosome, scaffold, contigs&#x…

NCBI中assembly_summary.txt文件下载

最近准备下载微生物的参考基因组序列,由于是初入生信,折腾了一段时间,对NCBI中ftp中数据库结构有初步的认识,查看数据库中的一些文档,整理了assembly_summary.txt,taxonomy/文件下载的脚本,用于…

bwa、bowtie2、tophat、hisat2 比对软件学习中的笔记整理

对常用的比对软件学习进行用法整理记录。记录的内容相对简单,详细说明及用法还得参考软件使用说明书 bwa、bowtie2、tophat、hisatbwabwa(Burrows-Wheeler Aligner) bwa文档说明 http://bio-bwa.sourceforge.net/bwa.shtmlBWA用于将低差异的序列映射到一个大的参考…

fastp使用

fastpfastp 下载及安装# fastp只依赖于zlib(如果在编译fastp过程中出现“undefined reference to gzbuffer”错误,可更新zlib进行处理)#安装方式一: 下载编译好二进制(仅适用于linux系统)wget http://opengene.org/fastp/fastpchm…

python进行信息匹配

最近需要根据样本编号比对信息,故写了脚本进行处理,满足日常的匹配需求,初步编写的脚本如下: # —*—coding:utf-8_*_ # date: 2020-05-04import xlrd import csv import argparse,os,io def pre_prepration(cur_path,sample_lis…

数据可视化--表格融合练习

数据可视化--表格融合练习pd.merge()函数说明代码演练参考书籍pd.merge()函数说明 使用共有列作为两个数据框数据融合的依据,主要使用pd.merge()函数: 参数说明: left: 传递左表数据right: 传递右表数据how: 数据融合方式 left:保留左表的数…

练习系列:Python字典:一键对应多值

需求: 遍历文本文件,生成一键对应多值的字典,如下所示: 文本文件内容("\t"分割字符串): “”" A 1 A 2 A 3 B c B d C 4 C 5 C e “”" 目标生成文件格式: target_dict {“A”:[1,2,3…