CN117795855A - Fastq数据的处理方法及装置、电子设备和存储介质 - Google Patents

Fastq数据的处理方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN117795855A
CN117795855A CN202280054965.1A CN202280054965A CN117795855A CN 117795855 A CN117795855 A CN 117795855A CN 202280054965 A CN202280054965 A CN 202280054965A CN 117795855 A CN117795855 A CN 117795855A
Authority
CN
China
Prior art keywords
sequence
preset
line
row
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280054965.1A
Other languages
English (en)
Inventor
邓天全
姜三杰
陈世璇
贺丽娟
杨鑫
黎剑波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Huada Gene Technology Service Co ltd
BGI Technology Solutions Co Ltd
Original Assignee
Wuhan Huada Gene Technology Service Co ltd
BGI Technology Solutions Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Huada Gene Technology Service Co ltd, BGI Technology Solutions Co Ltd filed Critical Wuhan Huada Gene Technology Service Co ltd
Publication of CN117795855A publication Critical patent/CN117795855A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开公开了FASTQ数据的处理方法及装置、电子设备和存储介质,将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识,按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。与相关技术中直接触发gzip命令压缩FASTQ文件的方式相比,本公开利用FASTQ文件中序列单元中每行的相似性,进行按行分类存储,即按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,分别对四个预设文件执行预设无损压缩,进一步节省了FASTQ文件的存储空间。

Description

FASTQ数据的处理方法及装置、电子设备和存储介质 技术领域
本公开涉及数据处理技术领域,尤其涉及一种FASTQ数据的处理方法及装置、电子设备和存储介质。
背景技术
近年来,随着测序技术的发展,测序价格越来越低,导致测序产出的数据正在激增中,如何有效降低测序数据的存储空间已经成为了一个急需解决的难题。
为了缓解FASTQ文件的存储压力,常将测序原始下机的FASTQ文件,通过gz ip命令直接对FASTQ文件进行压缩处理,其中,gzip的压缩原理为:当FASTQ数据中有两块内容相同时,只要获取前一块的位置和大小,就可以确定后一块的内容,即可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以FASTQ文件得到压缩。
通过上述方法压缩虽然能在一定程度上缓解存储压力,但是,其压缩空间的的缓存仍没有达到预期。
发明内容
本公开提供了一种FASTQ数据的处理方法、装置、电子设备和存储介质。其主要目的在于利用FASTQ文件中序列单元中每行的相似性,进行按行分类存储,对分类存储的文件进行预设无损压缩,进一步节省了FASTQ文件的存储空间。
根据本公开的第一方面,提供了一种FASTQ数据的处理方法,包括:
将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识;
按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;
触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
可选的,所述按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中包括:
从所述待处理FASTQ文件的第一个序列单元到最后一个序列单元,依次读取不同序列单元中的相同行序列标识的行序列;
按照读取顺序将读取到的所述相同行序列标识的行序列写入同一预设文件中。
可选的,所述按照所述行序列标识将四个行序列分别储存于对应的四个预设文件 中包括:
读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行,并添加预设分隔符,其中,所述至少一个序列单元包含第一序列单元及第二序列单元,所述第一序列单元为所述待处理FASTQ文件的第一个序列单元,所述第二序列单元为所述待处理FASTQ文件的第N个序列单元,N为大于1的整数;
读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行,并添加预设分隔符;
直到将所述待处理FASTQ文件的所有序列单元依次写入所述第一预设文件、第二预设文件、第三预设文件及第四预设文件。
可选的,所述触发预设无损压缩命令分别将所述四个预设文件进行压缩处理包括:
响应于触发的第一预设无损压缩命令,对所述第一预设文件执行压缩;
响应于触发的第二预设无损压缩命令,对所述第二预设文件执行压缩;
响应于触发的第三预设无损压缩命令,对所述第三预设文件执行压缩;
响应于触发的第四预设无损压缩命令,对所述第四预设文件执行压缩。
可选的,所述预设无损压缩命令包括gzip压缩命令或pigz压缩命令。
可选的,所述读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行包括:
将读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行。
可选的,所述读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行包括:
将读取到的所述第N序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行。
可选的,所述读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行包括:
将读取到的所述第一序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行。
可选的,所述读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行包括:
将读取到的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行。
可选的,所述读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行包括:
将读取到的所述第一序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行。
可选的,所述读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行包括:
将读取到的所述第二序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行。
可选的,所述读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行包括:
将读取到的第一序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行。
可选的,所述读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行包括:
将读取到的第N序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行。
可选的,所述触发预设无损压缩命令分别将所述四个预设文件进行压缩处理包括:
分别判断所述四个预设文件中是否包含已压缩的行序列;
若包含,则将已压缩的行序列不再执行压缩处理,对未压缩的行序列执行预设无损压缩。
可选的,在触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,所述方法还包括:
依次从压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第一行开始,依次读取所述行序列标识及相关的描述信息,其中,读取所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的顺序,与所述序列单元的四个行序列顺序一致;
根据读取到的每一行的所述行序列标识及相关的描述信息,组成一个目标序列单元;
将所述目标序列单元写入同一目标FASTQ文件中;
直到读取完所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第N行的行序列标识及相关的描述信息,以将所述目标FASTQ文件为还原后的待处理FASTQ文件。
可选的,在触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,包括:
控制同步对压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件,从第一行开始到最后一行的读取方式读取所述行序列标识及相关的描述信息;
每读取一行,依次将所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的读取结果,写入同一目标FASTQ文件中。
可选的,所述方法还包括:
对所述待处理FASTQ文件按照预设加密算法进行计算,得到第一加密秘钥;
使用所述预设无损压缩对应的解压方式对所述目标FASTQ文件进行解压,得到解压后的目标FASTQ文件;
对所述解压后的目标FASTQ文件采用所述预设加密算法进行加密计算,得到第二加密秘钥;
根据所述第一加密秘钥与所述第二加密秘钥的是否一致性,确定所述待处理 FASTQ数据的存储及还原处理是否存在损失。
根据本公开的第二方面,提供了一种FASTQ数据的处理装置,包括:
拆分单元,用于将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识;
存储单元,用于按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;
压缩单元,用于触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
可选的,所述存储包括:
第一读取模块,用于从所述待处理FASTQ文件的第一个序列单元到最后一个序列单元,依次读取不同序列单元中的相同行序列标识的行序列;
第一写入模块,用于按照读取顺序将读取到的所述相同行序列标识的行序列写入同一预设文件中。
可选的,所述存储单元包括:
第一处理模块,用于读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行,并添加预设分隔符,其中,所述至少一个序列单元包含第一序列单元及第二序列单元,所述第一序列单元为所述待处理FASTQ文件的第一个序列单元,所述第二序列单元为所述待处理FASTQ文件的第N个序列单元,N为大于1的整数;
第二处理模块,用于读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行,并添加预设分隔符;
第三处理模块,用于读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行,并添加预设分隔符;
第四处理模块,用于读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行,并添加预设分隔符;
第五处理模块,用于读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行,并添加预设分隔符;
第六处理模块,用于读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行,并添加预设分隔符;
第七处理模块,用于读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行,并添加预设分隔符;
第八处理模块,用于读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行,并添加预设分隔符;
直到将所述待处理FASTQ文件的所有序列单元依次写入所述第一预设文件、第二预设文件、第三预设文件及第四预设文件。
可选的,所述压缩单元,还用于:
响应于触发的第一预设无损压缩命令,对所述第一预设文件执行压缩;
响应于触发的第二预设无损压缩命令,对所述第二预设文件执行压缩;
响应于触发的第三预设无损压缩命令,对所述第三预设文件执行压缩;
响应于触发的第四预设无损压缩命令,对所述第四预设文件执行压缩。
可选的,所述预设无损压缩命令包括gzip压缩命令或pigz压缩命令。
可选的,所述第一处理模块,还用于:
将读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行。
可选的,所述第二处理模块,还用于:
将读取到的所述第N序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行。
可选的,所述第三处理模块,还用于:
将读取到的所述第一序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行。
可选的,所述第四处理模块,还用于包括:
将读取到的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行。
可选的,所述第五处理模块,还用于:
将读取到的所述第一序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行。
可选的,所述第六处理模块,还用于:
将读取到的所述第二序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行。
可选的,所述第七处理模块,还用于:
将读取到的第一序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行。
可选的,所述第八处理模块,还用于:
将读取到的第N序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行。
可选的,所述压缩单元包括:
判断模块,用于分别判断所述四个预设文件中是否包含已压缩的行序列;
压缩模块,用于当确定所述四个预设文件中包含已压缩的行序列时,将已压缩的行序列不再执行压缩处理,对未压缩的行序列执行预设无损压缩。
可选的,所述装置还包括:
读取单元,用于在所述压缩单元触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,依次从压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第一行开始,依次读取所述行序列标识及相关的描述信息,其中,读取所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的顺序,与所述序列单元的四个行序列顺序一致;
组成单元,用于根据读取到的每一行的所述行序列标识及相关的描述信息,组成一个目标序列单元;
写入单元,用于将所述目标序列单元写入同一目标FASTQ文件中;
直到读取完所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第N行的行序列标识及相关的描述信息,以将所述目标FASTQ文件为还原后的待处理FASTQ文件。
可选的,所述装置还包括:
控制单元,用于在所述压缩单元触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,控制同步对压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件,从第一行开始到最后一行的读取方式读取所述行序列标识及相关的描述信息;
读写单元,用于每读取一行,依次将所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的读取结果,写入同一目标FASTQ文件中。
可选的,所述装置还包括:
第一加密单元,用于对所述待处理FASTQ文件按照预设加密算法进行计算,得到第一加密秘钥;
解密单元,用于使用所述预设无损压缩对应的解压方式对所述目标FASTQ文件进行解压,得到解压后的目标FASTQ文件;;
第二加密单元,用于对所述解压后的目标FASTQ文件采用所述预设加密算法进行加密计算,得到第二加密秘钥;
确定单元,根据所述第一加密秘钥与所述第二加密秘钥的是否一致性,确定所述待处理FASTQ数据的存储及还原处理是否存在损失。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
本公开提供的FASTQ数据的处理方法、装置、电子设备和存储介质,将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识,按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。与相关技术中直接触发预设无损压缩FASTQ文件的方式相比,本公开实施例利用FASTQ文件中序列单元中每行的相似性,进行按行分类存储,即按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,分别对四个预设文件执行预设无损压缩,进一步节省了FASTQ文件的存储空间。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例所提供的一种FASTQ数据的处理方法的流程示意图;
图2为本公开实施例提供的一种FASTQ文件的格式的示意图;
图3本公开实施例提供一种第一预设文件存储行序列的示意图;
图4本公开实施例提供一种第二预设文件存储行序列的示意图;
图5本公开实施例提供一种第三预设文件存储行序列的示意图;
图6本公开实施例提供一种第四预设文件存储行序列的示意图;
图7为本公开实施例提供的一种将四个行序列分别储存于对应的四个预设文件的方法流程图;
图8为本公开实施例提供的一种对压缩后的FASTQ数据执行还原处理的流程示意图;
图9为本公开实施例提供的一种对压缩后的FASTQ数据执行还原处理的流程示意图;
图10为本公开实施例提供的一种FASTQ数据的处理装置的结构示意图;
图11为本公开实施例提供的另一种FASTQ数据的处理装置的结构示意图;
图12为本公开实施例提供的示例电子设备1200的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本公开实施例的FASTQ数据的处理方法、装置、电子设备和存储介质。
图1为本公开实施例所提供的一种FASTQ数据的处理方法的流程示意图。
如图1所示,该方法包含以下步骤:
步骤101,将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识。
为了便于更好的理解,本公开实施例对待处理FASTQ文件的格式进行说明,图2为本公开实施例提供的一种FASTQ文件的格式的示意图,FASTQ文件是存储原始测序数据的标准文件,每四行为一个独立的序列单元(或序列存储单元),如图2所示,每四行代表1条序列单元,共4条序列单元,每一个序列单元的预设数据格式如下:
第一行序列标识以及相关的描述信息,以‘@’开头,是每一个序列单元的唯一标识符;
第二行是序列由A,C,G,T和N构成,其中A,C,G,T是碱基信息,N为测序失败时用来替补的补位码;
第三行以‘+’开头,后面是行序列标识、相关的描述信息,或者什么也不加,本发明实施例的举例中所展示的数据该行只有「+」;
第四行,是序列的质量信息,和第二行序列中的碱基一一对应,每一个碱基对应一个质量值,质量值用ASCII码表示,用以衡量该测序碱基的可靠程度,质量值越高越可靠。
需要说明的是,图2仅为示例性的举例,本公开实施例对待处理FASTQ文件中序列单元的个数,及每个序列单元中每行的内容不做限定,图2仅为了便于对格式进行更好的理解,而给出的说明。
具体应用过程中,基于序列单元的预设数据格式,将待处理FASTQ文件拆分为至少一个序列单元,在本公开实施例中以序列单元为4个为例进行的说明,但该种说明方式并非作为对具体数量的限定。
步骤102,按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列。
对待处理FASTQ文件的每个序列单元中四行分类后,分别写到4个对应的预设文件中,即第1行序列标识以及相关描述信息写入到第一预设文件(文件1),第2行序列标识以及相关描述信息写入到第二预设文件(文件2),第3行序列标识以及相关描述信息写入到第三预设文件(文件3),第4行序列标识以及相关描述信息(质量信息)写入到第四预设文件(文件4)。
呈由步骤101的举例,在基于图2给出的待处理FASTQ文件的基础上,如图3至图6所示,图3至图6所示分别为本公开实施例提供一种第一预设文件存储行序列的示意图、第二预设文件存储行序列的示意图、第三预设文件存储行序列的示意图、及第四预设文件存储行序列的示意图,由图3至图6可以看出,在第一预设文件中存储的数据是不同序列单元中第一行相关的内容,在第二预设文件中存储的数据是不同序列单元中第二行相关的内容,在第三预设文件中存储的数据是不同序列单元中第三行相关的内容,在第四预设文件中存储的数据是不同序列单元中第四行相关的内容。
步骤103,触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
本公开实施例中,利用了四个预设文件中写入的每行行序列之间的相似性,结合gzip的压缩原理,能够进一步缩小存储FASTQ数据的空间。
作为本申请实施例的可行方式,所述预设无损压缩命令包括gzip压缩命令或pigz压缩,后续实施例以gzip压缩命令为例进行说明,但是该种说明方式并非意在限定压缩方式仅能为gzip压缩命令。
gzip的压缩原理为:当FASTQ数据中有两块内容相同时,只要获取前一块的位置和大小,就可以确定后一块的内容,即可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以FASTQ文件得到压缩。
请继续参阅5,由图5可以看出第三预设文件仅包含序列单元的第三行的开头‘+’,在进行压缩时,触发gzip命令执行压缩处理,同样的,由于序列单元下每个行序列的相似性较高,使得四个预设文件中存储的行序列相似度高,因此在触发gzip 命令执行压缩处理,通过分类来缩短相同模块内容距离来以达到节省空间的目的。
本公开提供的FASTQ数据的处理方法,将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识,按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。与相关技术中直接触发gzip命令压缩FASTQ文件的方式相比,本公开实施例利用FASTQ文件中序列单元中每行的相似性,进行按行分类存储,即按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,分别对四个预设文件执行预设无损压缩,进一步节省了FASTQ文件的存储空间。
在实际应用中,在步骤102执行按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,可采用下述两种方式实现:
方式一:从所述待处理FASTQ文件的第一个序列单元到最后一个序列单元,依次读取不同序列单元中的相同行序列标识的行序列,按照读取顺序将读取到的所述相同行序列标识的行序列写入同一预设文件中。
作为一个示例,待处理FASTQ文件包含N个序列单元(N大于1),在执行分类存储时,读取序列单元进行读取,读取序列单元1中的第一行,写入第一预设文件第一行,读取序列单元1中的第二行写入第二预设文件中的第一行,读取序列单元1中的第三行,写入第三预设文件中的第一行,读取序列单元1中的第四行,写入第四预设文件中的第一行,待序列单元1完成读取后,采用同样的方式读取序列N,直到读取完所有的序列单元,完成待处理FASTQ文件的分类存储。
方式二:读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行,并添加预设分隔符,其中,所述至少一个序列单元包含第一序列单元及第二序列单元,所述第一序列单元为所述待处理FASTQ文件的第一个序列单元,所述第二序列单元为所述待处理FASTQ文件的第N个序列单元,N为大于1的整数;
读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行,并添加预设分隔符;
读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行,并添加预设分隔符;
读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行,并添加预设分隔符;
直到将所述待处理FASTQ文件的所有序列单元依次写入所述第一预设文件、第二预设文件、第三预设文件及第四预设文件。
本公开实施例提供了一种分别将四个预设文件压缩处理的方法,图7为本公开实施例提供的一种将四个行序列分别储存于对应的四个预设文件的方法流程图,该方法可以单独被执行,也可以结合本公开中的任一个实施例或是实施例中的可能的实现方式一起被执行,还可以结合相关技术中的任一种技术方案一起被执行。该方法作为执行步骤101的一种可行方式包括:
步骤701,读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息;
将读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行。
步骤702,读取第N序列单元中的第一行序列的行序列标识及相关的描述信息;
将读取到的所述第N序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行。
步骤703,读取第一序列单元中的第二行序列的行序列标识及相关的描述信息;
将读取到的所述第一序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行。
步骤704,读取第N序列单元中的第二行序列的行序列标识及相关的描述信息。
将读取到的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行。
步骤705,读取第一序列单元中的第三行序列的行序列标识及相关的描述信息;
将读取到的所述第一序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第三行序列的行序列标识及相关的描述信息写入 第三预设文件中的第一行。
步骤706,读取第N序列单元中的第三行序列的行序列标识及相关的描述信息;
将读取到的所述第N序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行。
步骤707,读取第一序列单元中的第四行序列的行序列标识及相关的描述信息;
将读取到的第一序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行。
步骤708,读取第N序列单元中的第四行序列的行序列标识及相关的描述信息;
将读取到的第N序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行。
需要说明的是,图7所示的方法,可以作为一个完成的示例执行步骤701至步骤708,也可以单独执行步骤701至步骤708中的任一步骤,也可以选择执行至少2个步骤,具体的,本公开实施例对此不进行限定。
作为本公开实施例的可行方式,为了能够将压缩后待处理FASTQ文件无损还原,在进行压缩处理时,仅进行一次压缩处理,因此在触发预设无损压缩命令分别将所述四个预设文件进行压缩处理包括:分别判断所述四个预设文件中是否包含已压缩的行序列,若包含,则将已压缩的行序列不再执行压缩处理,对未压缩的行序列执行预设无损压缩。该种处理方式能够确保无损还原。
图7所示的方法为在读取到每个序列单元中的一个行序列,便执行一次压缩处理,将压缩后的行序列写入对应的预设文件中。下述实施例还提供执行步骤104的另一种可行方式,即通过上述任一实施例按照所述行序列标识将四个行序列分别储存于对应的四个预设文件后,对不同的预设文件进行分别压缩,具体为:
响应于触发的第一预设无损压缩命令,对所述第一预设文件执行压缩;
响应于触发的第二预设无损压缩命令,对所述第二预设文件执行压缩;
响应于触发的第三预设无损压缩命令,对所述第三预设文件执行压缩;
响应于触发的第四预设无损压缩命令,对所述第四预设文件执行压缩。
本公开实施例对具体的压缩的实现方式不进行限定。
本公开实施例提供了一种分别将四个预设文件执行压缩还原的方法,图8为本公开实施例提供的一种对压缩后的FASTQ数据执行还原处理的流程示意图,该方法可以单独被执行,也可以结合本公开中的任一个实施例或是实施例中的可能的实现方式一 起被执行,还可以结合相关技术中的任一种技术方案一起被执行,包括:
步骤801,依次从压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第一行开始,依次读取所述行序列标识及相关的描述信息,其中,读取所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的顺序,与所述序列单元的四个行序列顺序一致。
分别从第一预设文件中的第一行、读取第二预设文件中的第一行,读取第三预设文件中的第一行,读取第四预设文件中的第一行。
继续读取第一预设文件第N行、读取第二预设文件中的第N行,读取第三预设文件中的第N行,读取第四预设文件中的第N行,直到其中N大于1。
直到读取完所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第N行的行序列标识及相关的描述信息,以将所述目标FASTQ文件为还原后的待处理FASTQ文件。
步骤802,根据读取到的每一行的所述行序列标识及相关的描述信息,组成一个目标序列单元。
步骤803,将所述目标序列单元写入同一目标FASTQ文件中。
图8所示的方法是依次读取第一预设文件、第二预设文件、第三预设文件及第四预设文件中的每一行,读取效率上相对较慢,为了提高还原待处理FASTQ文件的效率,还可采用下述方式进行,如图9所示,图9为本公开实施例提供的另一种对压缩后的FASTQ数据执行还原处理的流程示意图,该方法可以单独被执行,也可以结合本公开中的任一个实施例或是实施例中的可能的实现方式一起被执行,还可以结合相关技术中的任一种技术方案一起被执行,包括:
步骤901,控制同步对压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件,从第一行开始到最后一行的读取方式读取所述行序列标识及相关的描述信息;通过程序控制第一预设文件、第二预设文件、第三预设文件及第四预设文件读取时的同步性,能够提高读取效率,进而提高了还原FASTQ文件的效率。
步骤902,每读取一行,依次将所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的读取结果,写入同一目标FASTQ文件中。
作为本公开实施例的可行方式,为了判断上述方式是否是可靠的处理方式,本公开实施例通过下述方式进行验证。包括:对所述待处理FASTQ文件按照预设加密算法进行计算,得到第一加密秘钥,使用所述预设无损压缩对应的解压方式对所述目标FASTQ文件进行解压,得到解压后的目标FASTQ文件,对所述解压后的目标FASTQ文件采用所述预设加密算法进行加密计算,得到第二加密秘钥,根据所述第一加密秘钥与所述第二加密秘钥的是否一致性,确定所述待处理FASTQ数据的存储及还原处理是否存在损失。
作为实例1,下面提供本发明方法将一个大小为21789495522bp,文件名为“V350027954_L01_read_1.fq.gz”的FASTQ压缩文件用上述FASTQ数据的处理方法节 省存储空间的应用例,其解压后文件”V350027954_L01_read_1.fq”的MD5信息摘要算法(MD5Message-Digest Algorithm)MD5值为“ca4168a17d0510a5d3f51fa6856d1888”,此MD5值可以用作判定使用本发明分类压缩存储,再通过还原方法后,检验MD5是否保持一致,来验证上述实现方法的可靠性。
在本示例中,实现FASTQ数据的有效压缩,程序语言为perl,具体实现代码如下:
在本发送实施例中,我们将V350027954_L01_read_1.fq.gz的每个序列单元分类并分别压缩写入到文件Row1.gz、Row2.gz、Row3.gz、Row4.gz(四个预设文件)中,其大小分别为1330794994bp、6725867471bp、978835bp和8702582307bp,四个文件总大小为16760223607bp,其大小只为原文件V350027954_L01_read_1.fq.gz的76.92%,FASTQ数据得到了有效压缩。
示例2,下面提供本发明实施例的方法将上述示例1分类存储得到的压缩文件Row1.gz、Row2.gz、Row3.gz和Row4.gz还原为原文件V350027954_L01_read_1.fq.gz的应用例。在本示例2中,程序语言为perl,具体实现代码如下:
在本示例2中,我们同时读取Row1.gz、Row2.gz、Row3.gz、Row4.gz中的第n行(1到最后一行),并压缩输出到文件名为“V350027954_L01_read_1.fq.gz“的文件。
进一步的,我们对文件“V350027954_L01_read_1.fq.gz”解压后得到文件”V350027954_L01_read_1.fq“,并用命令”md5sum V350027954_L01_read_1.fq”得到其MD5值为“ca4168a17d0510a5d3f51fa6856d1888”,其与示例1中的MD5值是一样,证明本发明实施例提供的压缩方法和还原方法是有效可行的。
与上述的FASTQ数据的处理方法相对应,本发明还提出一种FASTQ数据的处理装置。由于本发明的装置实施例与上述的方法实施例相对应,对于装置实施例中未披露的细节可参照上述的方法实施例,本发明中不再进行赘述。
本公开实施例提供一种FASTQ数据的处理装置,如图10所示,包括:
拆分单元1001,用于将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识;
存储单元1002,用于按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;
压缩单元1003,用于触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
本公开提供的FASTQ数据的处理装置,将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行 序列标识,按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。与相关技术中直接触发gzip命令压缩FASTQ文件的方式相比,本公开实施例利用FASTQ文件中序列单元中每行的相似性,进行按行分类存储,即按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,分别对四个预设文件执行预设无损压缩,进一步节省了FASTQ文件的存储空间。
进一步地,在本实施例一种可能的实现方式中,如图11所示,所述存储单元1002包括:
第一读取模块,用于从所述待处理FASTQ文件的第一个序列单元到最后一个序列单元,依次读取不同序列单元中的相同行序列标识的行序列;
第一写入模块,用于按照读取顺序将读取到的所述相同行序列标识的行序列写入同一预设文件中。
进一步地,在本实施例一种可能的实现方式中,所述存储单元包括:
第一处理模块,用于读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行,并添加预设分隔符,其中,所述至少一个序列单元包含第一序列单元及第二序列单元,所述第一序列单元为所述待处理FASTQ文件的第一个序列单元,所述第二序列单元为所述待处理FASTQ文件的第N个序列单元,N为大于1的整数;
第二处理模块,用于读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行,并添加预设分隔符;
第三处理模块,用于读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行,并添加预设分隔符;
第四处理模块,用于读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行,并添加预设分隔符;
第五处理模块,用于读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行,并添加预设分隔符;
第六处理模块,用于读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行,并添加预设分隔符;
第七处理模块,用于读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行,并添加 预设分隔符;
第八处理模块,用于读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行,并添加预设分隔符;
直到将所述待处理FASTQ文件的所有序列单元依次写入所述第一预设文件、第二预设文件、第三预设文件及第四预设文件。
进一步地,在本实施例一种可能的实现方式中,所述压缩单元1003,还用于:
响应于触发的第一预设无损压缩命令,对所述第一预设文件执行压缩;
响应于触发的第二预设无损压缩命令,对所述第二预设文件执行压缩;
响应于触发的第三预设无损压缩命令,对所述第三预设文件执行压缩;
响应于触发的第四预设无损压缩命令,对所述第四预设文件执行压缩。
进一步地,在本实施例一种可能的实现方式中,所述预设无损压缩命令包括gzip压缩命令或pigz压缩命令。
进一步地,在本实施例一种可能的实现方式中,所述第一处理模块,还用于:
将读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行。
进一步地,在本实施例一种可能的实现方式中,所述第二处理模块,还用于:
将读取到的所述第N序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行。
进一步地,在本实施例一种可能的实现方式中,所述第三处理模块,还用于:
将读取到的所述第一序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行。
进一步地,在本实施例一种可能的实现方式中,所述第四处理模块,还用于包括:
将读取到的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行。
进一步地,在本实施例一种可能的实现方式中,所述第五处理模块,还用于:
将读取到的所述第一序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行。
进一步地,在本实施例一种可能的实现方式中,所述第六处理模块,还用于:
将读取到的所述第二序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行。
进一步地,在本实施例一种可能的实现方式中,所述第七处理模块,还用于:
将读取到的第一序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行。
进一步地,在本实施例一种可能的实现方式中,所述第八处理模块,还用于:
将读取到的第N序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
将压缩后的第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行。
进一步地,在本实施例一种可能的实现方式中,如图11所示,所述压缩单元1003包括:
判断模块10031,用于分别判断所述四个预设文件中是否包含已压缩的行序列;
压缩模块10032,用于当确定所述四个预设文件中包含已压缩的行序列时,将已压缩的行序列不再执行压缩处理,对未压缩的行序列执行预设无损压缩。
进一步地,在本实施例一种可能的实现方式中,如图11所示,所述装置还包括:
读取单元1004,用于在所述压缩单元1003触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,依次从压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第一行开始,依次读取所述行序列标识及相关的描述信息,其中,读取所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的顺序,与所述序列单元的四个行序列顺序一致;
组成单元1005,用于根据读取到的每一行的所述行序列标识及相关的描述信息,组成一个目标序列单元;
写入单元1006,用于将所述目标序列单元写入同一目标FASTQ文件中;
直到读取完所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第N行的行序列标识及相关的描述信息,以将所述目标FASTQ文件为还原后的待处理FASTQ文件。
进一步地,在本实施例一种可能的实现方式中,如图11所示,包括:
控制单元1007,用于在所述压缩单元触发预设无损压缩命令分别将所述四个预设 文件进行压缩处理之后,控制同步对压缩后的所述第一预设文件、第二预设文件、第三预设文件及第四预设文件,从第一行开始到最后一行的读取方式读取所述行序列标识及相关的描述信息;
读写单元1008,用于每读取一行,依次将所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的读取结果,写入同一目标FASTQ文件中。
进一步地,在本实施例一种可能的实现方式中,如图11所示,所述装置还包括:
第一加密单元1009,用于对所述待处理FASTQ文件按照预设加密算法进行计算,得到第一加密秘钥;
解密单元10010,用于使用所述预设无损压缩对应的解压方式对所述目标FASTQ文件进行解压,得到解压后的目标FASTQ文件;;
第二加密单元10011,用于对所述解压后的目标FASTQ文件采用所述预设加密算法进行加密计算,得到第二加密秘钥;
确定单元10012,根据所述第一加密秘钥与所述第二加密秘钥的是否一致性,确定所述待处理FASTQ数据的存储及还原处理是否存在损失。
需要说明的是,前述对方法实施例的解释说明,也适用于本实施例的装置,原理相同,本实施例中不再限定。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在ROM(Read-Only Memory,只读存储器)1202中的计算机程序或者从存储单元1208加载到RAM(Random Access Memory,随机访问/存取存储器)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。I/O(Input/Output,输入/输出)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元12012,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算 单元1201的一些示例包括但不限于CPU(Central Processing Unit,中央处理单元)、GPU(Graphic Processing Units,图形处理单元)、各种专用的AI(Artificial Intelligence,人工智能)计算芯片、各种运行机器学习模型算法的计算单元、DSP(Digital Signal Processor,数字信号处理器)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如FASTQ数据的处理方法。例如,在一些实施例中,FASTQ数据的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由计算单元1201执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行前述FASTQ数据的处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、FPGA(Field Programmable Gate Array,现场可编程门阵列)、ASIC(Application-Specific Integrated Circuit,专用集成电路)、ASSP(Application Specific Standard Product,专用标准产品)、SOC(System On Chip,芯片上系统的系统)、CPLD(Complex Programmable Logic Device,复杂可编程逻辑设备)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM(Electrically Programmable Read-Only-Memory,可擦除可编程只读存储器)或快闪存储器、光纤、CD-ROM(Compact Disc Read-Only Memory,便捷式紧凑盘只读存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode-Ray Tube,阴极射线管)或者LCD(Liquid Crystal Display,液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:LAN(Local Area Network,局域网)、WAN(Wide Area Network,广域网)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

  1. 一种FASTQ数据的处理方法,其特征在于,包括:
    将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识;
    按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;
    触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
  2. 根据权利要求1所述的处理方法,其特征在于,所述按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中包括:
    从所述待处理FASTQ文件的第一个序列单元到最后一个序列单元,依次读取不同序列单元中的相同行序列标识的行序列;
    按照读取顺序将读取到的所述相同行序列标识的行序列写入同一预设文件中。
  3. 根据权利要求1-2中任一项所述的处理方法,其特征在于,所述按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中包括:
    读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行,并添加预设分隔符,其中,所述至少一个序列单元包含第一序列单元及第二序列单元,所述第一序列单元为所述待处理FASTQ文件的第一个序列单元,所述第二序列单元为所述待处理FASTQ文件的第N个序列单元,N为大于1的整数;
    读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行,并添加预设分隔符;
    读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行,并添加预设分隔符;
    读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行,并添加预设分隔符;
    读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行,并添加预设分隔符;
    读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行,并添加预设分 隔符;
    读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行,并添加预设分隔符;
    读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行,并添加预设分隔符;
    直到将所述待处理FASTQ文件的所有序列单元依次写入所述第一预设文件、第二预设文件、第三预设文件及第四预设文件。
  4. 根据权利要求1-3中任一项所述的处理方法,其特征在于,所述触发预设无损压缩命令分别将所述四个预设文件进行压缩处理包括:
    响应于触发的第一预设无损压缩命令,对第一预设文件执行压缩;
    响应于触发的第二预设无损压缩命令,对第二预设文件执行压缩;
    响应于触发的第三预设无损压缩命令,对第三预设文件执行压缩;
    响应于触发的第四预设无损压缩命令,对第四预设文件执行压缩。
  5. 根据权利要求1-4中任一项所述的处理方法,其特征在于,所述预设无损压缩命令包括gzip压缩命令或pigz压缩命令。
  6. 根据权利要求3所述的处理方法,其特征在于,所述读取所述待处理FASTQ文件第一序列单元中的第一行序列,将所述第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行包括:
    将读取到的所述第一序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第一序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第一行。
  7. 根据权利要求3所述的处理方法,其特征在于,所述读取第N序列单元中的第一行序列,将所述第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行包括:
    将读取到的所述第N序列单元中的第一行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第N序列单元中的第一行序列的行序列标识及相关的描述信息写入第一预设文件中的第N行。
  8. 根据权利要求3所述的处理方法,其特征在于,所述读取第一序列单元中的第二行序列,将所述第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行包括:
    将读取到的所述第一序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第一序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第一行。
  9. 根据权利要求3所述的处理方法,其特征在于,所述读取第N序列单元中的第二行序列,将所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行包括:
    将读取到的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的所述第N序列单元中的第二行序列的行序列标识及相关的描述信息写入第二预设文件中的第N行。
  10. 根据权利要求3所述的处理方法,其特征在于,所述读取第一序列单元中的第三行序列,将所述第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行包括:
    将读取到的所述第一序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第一序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第一行。
  11. 根据权利要求3所述的处理方法,其特征在于,所述读取第N序列单元中的第三行序列,将所述第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行包括:
    将读取到的所述第二序列单元中的第三行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第二序列单元中的第三行序列的行序列标识及相关的描述信息写入第三预设文件中的第N行。
  12. 根据权利要求3所述的处理方法,其特征在于,所述读取第一序列单元中的第四行序列,将所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行包括:
    将读取到的第一序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的所述第一序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第一行。
  13. 根据权利要求3所述的处理方法,其特征在于,所述读取第N序列单元中的第四行序列,将所述第N序列单元中的第四行序列的行序列标识及相关的描述信息写入第四预设文件中的第N行包括:
    将读取到的第N序列单元中的第四行序列的行序列标识及相关的描述信息,执行预设无损压缩;
    将压缩后的第N序列单元中的第四行序列的行序列标识及相关的描述信息 写入第四预设文件中的第N行。
  14. 根据权利要求6-13中任一项所述的方法,其特征在于,所述触发预设无损压缩命令分别将所述四个预设文件进行压缩处理包括:
    分别判断所述四个预设文件中是否包含已压缩的行序列;
    若包含,则将已压缩的行序列不再执行压缩处理,对未压缩的行序列执行预设无损压缩。
  15. 根据权利要求1-14中任一项所述的处理方法,其特征在于,在触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,所述方法还包括:
    依次从压缩后的第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第一行开始,依次读取所述行序列标识及相关的描述信息,其中,读取所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的顺序,与所述序列单元的四个行序列顺序一致;
    根据读取到的每一行的所述行序列标识及相关的描述信息,组成一个目标序列单元;
    将所述目标序列单元写入同一目标FASTQ文件中;
    直到读取完所述第一预设文件、第二预设文件、第三预设文件及第四预设文件中的第N行的行序列标识及相关的描述信息,以将所述目标FASTQ文件为还原后的待处理FASTQ文件。
  16. 根据权利要求1-14中任一项所述的处理方法,其特征在于,在触发预设无损压缩命令分别将所述四个预设文件进行压缩处理之后,包括:
    控制同步对压缩后的第一预设文件、第二预设文件、第三预设文件及第四预设文件,从第一行开始到最后一行的读取方式读取所述行序列标识及相关的描述信息;
    每读取一行,依次将所述第一预设文件、第二预设文件、第三预设文件及第四预设文件的读取结果,写入同一目标FASTQ文件中。
  17. 根据权利要求15或16所述的处理方法,其特征在于,所述方法还包括:
    对所述待处理FASTQ文件按照预设加密算法进行计算,得到第一加密秘钥;
    使用所述预设无损压缩对应的解压方式对所述目标FASTQ文件进行解压,得到解压后的目标FASTQ文件;
    对所述解压后的目标FASTQ文件采用所述预设加密算法进行加密计算,得到第二加密秘钥;
    根据所述第一加密秘钥与所述第二加密秘钥的是否一致性,确定所述待处理FASTQ数据的存储及还原处理是否存在损失。
  18. 一种FASTQ数据的处理装置,其特征在于,包括:
    拆分单元,用于将待处理FASTQ文件按照预设数据格式,拆分为至少一个序列单元,每个序列单元包括四个行序列,不同行序列对应不同的行序列标识;
    存储单元,用于按照所述行序列标识将四个行序列分别储存于对应的四个预设文件中,其中,一个预设文件用于存储不同序列单元的、相同行序列标识的行序列;
    压缩单元,用于触发预设无损压缩命令分别将所述四个预设文件进行压缩处理。
  19. 一种电子设备,其特征在于,包括:
    至少一个处理器;以及
    与所述至少一个处理器通信连接的存储器;其中,
    所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-17中任一项所述的方法。
  20. 一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-17中任一项所述的方法。
  21. 一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-17中任一项所述的方法。
CN202280054965.1A 2022-05-27 2022-05-27 Fastq数据的处理方法及装置、电子设备和存储介质 Pending CN117795855A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/095757 WO2023226036A1 (zh) 2022-05-27 2022-05-27 Fastq数据的处理方法及装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN117795855A true CN117795855A (zh) 2024-03-29

Family

ID=88918251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280054965.1A Pending CN117795855A (zh) 2022-05-27 2022-05-27 Fastq数据的处理方法及装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN117795855A (zh)
WO (1) WO2023226036A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2608096B1 (en) * 2011-12-24 2020-08-05 Tata Consultancy Services Ltd. Compression of genomic data file
WO2014089753A1 (zh) * 2012-12-11 2014-06-19 华为技术有限公司 一种文件压缩方法,文件解压缩方法、装置及服务器
CN104657627B (zh) * 2013-11-18 2017-12-05 广州中国科学院软件应用技术研究所 Fastq格式读段开头的寻找和判断方法以及系统
CN106100641A (zh) * 2016-06-12 2016-11-09 深圳大学 针对fastq数据的多线程快速存储无损压缩方法及其系统
CN107565975A (zh) * 2017-08-30 2018-01-09 武汉古奥基因科技有限公司 Fastq格式文件无损压缩的方法

Also Published As

Publication number Publication date
WO2023226036A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
CN113963110B (zh) 纹理图生成方法、装置、电子设备及存储介质
CN113378855A (zh) 用于处理多任务的方法、相关装置及计算机程序产品
CN114495102A (zh) 文本识别方法、文本识别网络的训练方法及装置
CN115631273A (zh) 一种大数据的去重方法、装置、设备及介质
CN113810765B (zh) 视频处理方法、装置、设备和介质
CN104484132A (zh) 数据缩减的方法及装置
CN114416284A (zh) 分布式作业系统控制方法、装置、设备、介质及程序产品
CN112529161A (zh) 生成对抗网络训练方法、生成对抗网络、人脸图像翻译方法和装置
CN117795855A (zh) Fastq数据的处理方法及装置、电子设备和存储介质
CN113868254B (zh) 图数据库中的实体节点去重方法、设备和存储介质
CN115639966A (zh) 一种数据写入方法、装置、终端设备及存储介质
CN113377391B (zh) 镜像文件的制作和烧录的方法、装置、设备和介质
CN112860376B (zh) 一种快照链的制作方法、装置、电子设备及存储介质
CN113127058B (zh) 数据标注方法、相关装置及计算机程序产品
CN114943995A (zh) 人脸识别模型的训练方法、人脸识别方法及装置
CN113556575A (zh) 用于压缩数据的方法、装置、设备、介质和产品
CN113327194A (zh) 图像风格迁移方法、装置、设备和存储介质
CN114218166A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN114708580A (zh) 文本识别、模型训练方法、装置、设备、存储介质及程序
WO2024020746A1 (zh) 处理fastq数据的方法及装置、电子设备和存储介质
CN113204665A (zh) 图像检索方法、装置、电子设备及计算机可读存储介质
CN113887435A (zh) 人脸图像处理方法、装置、设备、存储介质及程序产品
CN114386577A (zh) 用于执行深度学习模型的方法、设备和存储介质
CN113032071A (zh) 页面元素定位方法、页面测试方法、装置、设备和介质
CN116881485B (zh) 生成图像检索索引的方法及装置、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination