本发明专利技术公开了一种FASTQ格式读段开头的寻找和判断方法,包括以下步骤:根据用户输入参数定位文件,确定查找的起始位置;从起始位置开始逐字读取字符,寻找到以‘@’字符开头的行,并记录‘@’字符在文件中的位置;从‘@’字符开始连续读取,并将读取的字符依次存储至字符数组title、sequence、plus、quality、end中;判断记录的位置是否为一个读段的开头,如果判断为是,则将记录的位置作为读段开头的位置返回,如果判断为否,将原起始位置所在行的行尾确定为新的起始位置,重复上述寻找和判断步骤。本发明专利技术能从FASTQ格式文件的任意位置开始,向后准确的寻找到邻近的读段开头,并返回这一位置,满足各种对FASTQ读段读取的需求,从而大幅提高处理数据的速度和效率。
【技术实现步骤摘要】
FASTQ格式读段开头的寻找和判断方法以及系统
本专利技术涉及一种并行处理测序数据的方法及系统,具体地说,涉及一种寻找和判断以FASTQ格式存储的读段的开头的技术。
技术介绍
随着高通量、低成本的二代测序平台的出现,生物医药领域越来越多的应用这一平台进行生物大分子测序。为了方便测序数据的发布和共享,高通量测序平台所测的碱基及其质量分数数据大多以FASTQ格式存储。FASTQ格式是常见的基因测序数据,以读段为单位存储,携带有碱基测序的质量信息,是下游分析软件最常见的格式。NCBI(美国国立生物技术信息中心)等生物信息中心建立了SRA(SociologicalResearchinAmerica)数据库来存放共享的高通量测序数据,近几年这一数据规模呈现指数增长。为了快速有效的处理这些海量数据,通常需要使用并行的处理方法。同时,由于测序数据的处理一般以读段为单位,因此在FASTQ文件内部准确判断一个读段的开头,是并行处理测序数据的一个关键。由于测序平台的不同,FASTQ的格式会有一定不同,但是一般而言它的一个读段由四行组成,首行是以‘@’字符开头的title行,第二行是sequence行,第三行是以‘+’字符开头的plus行,第四行是quality行。其中quality行采用ASCII码值表示,‘@’字符可能发生在quality行开头或中间的任何地方,因此任何分析器不能仅以此作为读段开头的判断标准。另一方面一些工具在输出FASTQ文件时自动给sequence和quality行换行,这一情况影响了FASTQ格式数据读段开头准确寻找。现有一些程序(如fastq_groomer_parallel、GNUparallel等)常利用FASTQ读段一般由四行组成这一特性,根据文件的行数判断读段开头的位置。如文件的第i行是4的倍数,那么i+1至i+4行组成一个完整的读段,读段的开头为i+1行的开头。这种判断方法对文件格式有严格要求,若一个读段不是四行就会产生错误判断,例如sequence行或者quality行被输出工具换行后一个读段将超过4行。而且当文件行数不能确定时,通过这种方法也不能快速有效的寻找到读段开头。另外仅利用读段开头为‘@’字符开头的title行这一特性,以文件行首是否为‘@’字符来判断读段开头,这一方法也会产生错误判断,因为有可能quality行以‘@’开头或quality行发生换行之后的行首也为‘@’字符。对读段开头的错判,会影响数据的后续处理,而且这些判断方法不能从FASTQ文件任意位置开始寻找到一个读段的开头,具有局限性。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术中所存在的上述不足,而提供一种FASTQ格式读段开头的寻找和判断方法,能从FASTQ文件任意位置开始,准确寻找到一个读段的开头,并返回读段的开头位置。本专利技术所要解决的技术问题是克服现有技术中所存在的上述不足,而提供一种FASTQ格式读段开头的寻找和判断系统,能从FASTQ文件任意位置开始,准确寻找到一个读段的开头,并返回读段的开头位置。为了实现上述目的,本专利技术所采用的技术方案如下:一种FASTQ格式读段开头的寻找和判断方法,包括以下步骤:根据用户输入参数定位文件,确定查找的起始位置;从起始位置开始逐字读取字符,寻找到以‘@’字符开头的行,并记录‘@’字符在文件中的位置;从‘@’字符开始连续读取,并将读取的字符依次存储至字符数组title、sequence、plus、quality、end中,其中,将从‘@’字符开始到第一个换行符前读取的字符存储至字符数组title中,将第一个换行符至‘+’字符前读取的字符存储至字符数组sequence中,并把字符数组sequence的长度记为length,将‘+’字符到下一个换行符前读取的的字符存储至字符数组plus中,将字符数组plus之后读取的length个字符存储至字符数组quality中,最后读取紧邻的两个字符并将其存储至字符数组end中;判断记录的位置是否为一个读段的开头,即根据字符数组title、sequence、plus、quality中存储的内容,判断获取的title、sequence、plus、quality四个字符串是否能组成一个完整的读段,如果判断为是,则将记录的位置作为读段开头的位置返回,如果判断为否,将原起始位置所在行的行尾确定为新的起始位置,重复上述寻找和判断步骤。进一步,获取的title、sequence、plus、quality四个字符串能组成一个完整读段,必须满足以下条件:一是字符数组title与字符数组plus的内容相同,或者字符数组plus长度为1;二是end字符数组中第一个字符是换行符,第二个字符为‘@’字符。进一步,字符数组sequence、quality中存储的内容去除读取时遇到的换行符。进一步,用户输入参数包括FASTQ格式的文件、指定的文件起始查找位置。一种FASTQ格式读段开头的寻找和判断系统,包括依次连接的寻找单元、读取信息单元和判断单元,寻找单元根据FASTQ格式读段的title行均为‘@’字符开头的特性,寻找以‘@’字符开头的行,并记录‘@’字符在文件中的位置;读取信息单元从‘@’字符开始连续读取,并将读取的字符依次存储至字符数组title、sequence、plus、quality、end中;其中,读取信息单元将从‘@’字符开始到第一个换行符前读取的字符存储至字符数组title中,将第一个换行符至‘+’字符前读取的字符存储至字符数组sequence中,并把字符数组sequence的长度记为length,将‘+’字符到下一个换行符前读取的的字符存储至字符数组plus中,将字符数组plus之后读取的length个字符存储至字符数组quality中,最后读取紧邻的两个字符并将其存储至字符数组end中;判断单元根据读取信息单元字符数组title、sequence、plus、quality中存储的内容,判断寻找单元记录的‘@’字符在文件中的位置是否为一个读段的开头位置。进一步,读取信息单元根据FASTQ格式读段的sequence行后紧跟‘+’字符开头的plus行、sequence行与quality行长度一致以及读段后紧跟‘@’字符开头的下一读段的特性,对读取的内容进行分类存储。进一步,判断单元根据字符数组title、sequence、plus、quality中存储的内容,判断获取的title、sequence、plus、quality四个字符串是否能组成一个完整的读段。进一步,获取的title、sequence、plus、quality四个字符串组成一个完整读段,必须满足以下条件:一是字符数组title与字符数组plus的内容相同,或者字符数组plus长度为1;二是end字符数组中第一个字符是换行符,第二个字符为‘@’字符。与现有技术相比,本专利技术可以从FASTQ格式文件的任意位置开始,向后准确的寻找到邻近的读段开头,并返回这一位置,为后续的读取工作奠定基础,满足各种对FASTQ读段读取的需求,同时,所返回的读段开头位置,还可用于多个进程的读取,每个进程可以通过返回的读段开头位置调整读取范围,以保证读取内容包含完整的读段,最终大幅提高处理数据的速本文档来自技高网...
【技术保护点】
一种FASTQ格式读段开头的寻找和判断方法,其特征在于,包括以下步骤:根据用户输入参数定位文件,确定查找的起始位置;从起始位置开始逐字读取字符,寻找到以‘@’字符开头的行,并记录‘@’字符在文件中的位置;从‘@’字符开始连续读取,并将读取的字符依次存储至字符数组title、sequence、plus、quality、end中,其中,将从‘@’字符开始到第一个换行符前读取的字符存储至字符数组title中,将第一个换行符至‘+’字符前读取的字符存储至字符数组sequence中,并把字符数组sequence的长度记为length,将‘+’字符到下一个换行符前读取的的字符存储至字符数组plus中,将字符数组plus之后读取的length个字符存储至字符数组quality中,最后读取紧邻的两个字符并将其存储至字符数组end中;判断记录的位置是否为一个读段的开头,即根据字符数组title、sequence、plus、quality中存储的内容,判断获取的title、sequence、plus、quality四个字符串是否能组成一个完整的读段,如果判断为是,则将记录的位置作为读段开头的位置返回,如果判断为否,将原起始位置所在行的行尾确定为新的起始位置,重复上述寻找和判断步骤。...
【技术特征摘要】
1.一种FASTQ格式读段开头的寻找和判断方法,其特征在于,包括以下步骤:根据用户输入参数定位文件,确定查找的起始位置;从起始位置开始逐字读取字符,寻找到以‘@’字符开头的行,并记录‘@’字符在文件中的位置;从‘@’字符开始连续读取,并将读取的字符依次存储至字符数组title、sequence、plus、quality、end中,其中,将从‘@’字符开始到第一个换行符前读取的字符存储至字符数组title中,将第一个换行符至‘+’字符前读取的字符存储至字符数组sequence中,并把字符数组sequence的长度记为length,将‘+’字符到下一个换行符前读取的的字符存储至字符数组plus中,将字符数组plus之后读取的length个字符存储至字符数组quality中,最后读取紧邻的两个字符并将其存储至字符数组end中;判断记录的位置是否为一个读段的开头,即根据字符数组title、sequence、plus、quality中存储的内容,判断获取的title、sequence、plus、quality四个字符串是否能组成一个完整的读段,其中,获取的title、sequence、plus、quality四个字符串能组成一个完整读段,必须满足以下条件:一是字符数组title与字符数组plus的内容相同,或者字符数组plus长度为1;二是end字符数组中第一个字符是换行符,第二个字符为‘@’字符;如果判断为是,则将记录的位置作为读段开头的位置返回,如果判断为否,将原起始位置所在行的行尾确定为新的起始位置,重复上述寻找和判断步骤。2.如权利要求1所述的FASTQ格式读段开头的寻找和判断方法,其特征在于:字符数组sequence、quality中存储的内容去除读取时遇到的换行符。3.如权利要求1所述的FASTQ格式读段开头的寻找和判断方法,其特征在于:用户输入参数包括FASTQ格式的文件、指定的文件起始查找位置。4.一种FASTQ格式读段开头的寻找和判断系统,包括依次连接的寻找单元、读取信息单元和判断单元,...
【专利技术属性】
技术研发人员:李家辉,何娜,王婷,罗海飙,
申请(专利权)人:广州中国科学院软件应用技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。