一种二维码转换的方法及装置与流程

文档序号:12365815阅读:601来源:国知局
一种二维码转换的方法及装置与流程

本发明涉及中药质量追溯领域,尤其涉及一种二维码转换的方法及装置。



背景技术:

中药的质量和安全直接关系到中药的发展,越来越受到各界的重视,需要建立切实可行的制度体系来进行保证。其中,对中药生产和流通等各环节进行质量检测,建立完善的中药质量追溯体系是一个亟待解决的难题。

目前,一般采用中药DNA序列来鉴别其真假,采用化学指纹图谱来评价药材的质量的优劣。

条码技术是现代化物流管理的重要技术手段,可以快速准确的对流通信息进行数字化提取并批量管理。其中,DNA条码技术是采用一段标准的DNA序列进行物种鉴定,已经得到了分类专家的广泛认可,在中药真伪鉴别上应用越来越广泛。

化学指纹图谱是一种综合的、可量化的检定手段,它主要建立在化学成分系统研究的基础上,用于评价中药材以及中药制剂半成品质量的真实性、优良性和稳定性,是目前中药质量检测的主要手段。

但是,DNA条码技术中DNA分子序列不能通过直接扫描自动识别,并且,打印输出的尺寸大,不方便把DNA条形码应用于流通管理。

而化学指纹图谱在实践应用中,尤其是中药质量追溯过程中,存在诸多限制,例如,一、化学指纹图谱为图片格式,数据容量大,信息压缩难度大,难以输出进行批量信息管理;二、化学指纹图谱不能通过扫描直接获取所包含的质量信息,难以在中药不同生产和流通环节之间进行信息的共享和管理。

二维码是目前使用广泛的一种全新的信息存储、传递和识别技术,可以直接通过扫描获得相应的信息,非常方便且易于管理。现有技术下,将中药DNA序列转换为二维码的方法为,对DNA序列进行有效压缩,进而将压缩后的DNA序列转换为二维码,其中,有效的压缩方法包括:BioCompress-2,Gen Compress,CTW+LZ,DNA Compress,DNAPack,DNADP,GeNML等。

将化学指纹图谱转换为二维码的方法为,将获得化学指纹图谱数据通过寻找拐点的过滤处理后,进而将过滤处理后的化学指纹图谱数据转换为二维码。

但是,现有技术下的转换为二维码的方法,对于DNA序列,压缩算法比较复杂,并且,对于化学指纹图谱数据,仅仅进行了过滤处理,还未有有效的压缩方法。



技术实现要素:

本发明实施例提供一种二维码转换的方法及装置,以提高中药的DNA序列和化学指纹图谱数据的压缩率,使其能成功地转换为二维码。

本发明实施例提供的具体技术方案如下:

一种二维码转换的方法,包括:

分别获取中药的DNA序列和化学指纹图谱数据;

从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组;

将所述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合;

将组合后的DNA序列和化学指纹图谱数据转换为二维码。

较佳的,分别获取中药的DNA序列和化学指纹图谱数据之后,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据之前,进一步包括:

将化学指纹图谱数据保存为excel格式文件,其中,化学指纹图谱数据包括时间和所述时间对应的吸收度值。

较佳的,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,具体包括:

依次读取化学指纹图谱数据的数据点,每读取一个数据点,判断当前读取的一个数据点是否为第一个数据点或最后一个数据点,若是,则直接将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,否则,进一步判断当前读取的一个数据点是否满足预设条件,并在确定满足预设条件时,将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,所述预设条件为:

当前读取的一个数据点的吸收度值不小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值大于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值不大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值。

较佳的,将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组,具体包括:

依次读取筛选出的化学指纹图谱数据的数据点,每读取一个数据点,根据当前读取的一个数据点中的时间和吸收度值的精度,分别将所述当前读取的一个数据点中的时间和吸收度值放大相应的倍数,并根据放大后的时间和吸收度值的大小,将放大后的时间和吸收度值合并为存储所需的最小字节大小的数组,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,将所述DNA序列按照第一预设的压缩算法进行处理,具体包括:

根据所述DNA序列中包含的碱基的种类,确定每一个种类的碱基对应的二进制;

根据确定的每一个种类的碱基对应的二进制,分别将所述DNA序列的每一个碱基转换为对应的二进制,获得所述DNA序列对应的二进制序列;

在所述二进制序列的预设位置添加所述DNA序列的长度。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合,具体包括:

采用特征分隔符,将处理后的DNA序列和合并后的化学指纹图谱数据进行组合。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合之后,将组合后的DNA序列和化学指纹图谱数据转换为二维码之前,进一步包括:

使用第二预设的压缩算法,将组合后的DNA序列和化学指纹图谱数据进行压缩。

一种二维码转换的装置,包括:

获取单元,用于分别获取中药的DNA序列和化学指纹图谱数据;

第一处理单元,用于从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组;

第二处理单元,用于将所述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合;

转换单元,用于将组合后的DNA序列和化学指纹图谱数据转换为二维码。

较佳的,分别获取中药的DNA序列和化学指纹图谱数据之后,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据之前,进一步包括:

保存单元,用于将化学指纹图谱数据保存为excel格式文件,其中,化学指纹图谱数据包括时间和所述时间对应的吸收度值。

较佳的,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据时,第一处理单元具体用于:

依次读取化学指纹图谱数据的数据点,每读取一个数据点,判断当前读取的一个数据点是否为第一个数据点或最后一个数据点,若是,则直接将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,否则,进一步判断当前读取的一个数据点是否满足预设条件,并在确定满足预设条件时,将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,所述预设条件为:

当前读取的一个数据点的吸收度值不小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值大于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值不大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值。

较佳的,将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组时,第一处理单元具体用于:

依次读取筛选出的化学指纹图谱数据的数据点,每读取一个数据点,根据当前读取的一个数据点中的时间和吸收度值的精度,分别将所述当前读取的一个数据点中的时间和吸收度值放大相应的倍数,并根据放大后的时间和吸收度值的大小,将放大后的时间和吸收度值合并为存储所需的最小字节大小的数组,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,将所述DNA序列按照第一预设的压缩算法进行处理时,第二处理单元具体用于:

根据所述DNA序列中包含的碱基的种类,确定每一个种类的碱基对应的二进制;

根据确定的每一个种类的碱基对应的二进制,分别将所述DNA序列的每一个碱基转换为对应的二进制,获得所述DNA序列对应的二进制序列;

在所述二进制序列的预设位置添加所述DNA序列的长度。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合时,第二处理单元具体用于:

采用特征分隔符,将处理后的DNA序列和合并后的化学指纹图谱数据进行组合。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合之后,将组合后的DNA序列和化学指纹图谱数据转换为二维码之前,进一步包括:

压缩单元,用于使用第二预设的压缩算法,将组合后的DNA序列和化学指纹图谱数据进行压缩。

本发明的有益效果如下:

本发明实施例中,分别获取中药的DNA序列和化学指纹图谱数据;从上述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组;将上述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合;将组合后的DNA序列和化学指纹图谱数据转换为二维码,这样,分别将化学指纹图谱数据和DNA序列进行了压缩,提高了压缩率,中药的信息量大的难题,由于二维码的容量非常有限,进行压缩处理后,能够成功地转换为二维码;并且,将中药的化学指纹图谱数据和DNA序列组合,转换为一个二维码,这样,通过扫描二维码,可以直接获知中药的真伪和质量信息,更便于进行中药质量追溯。

附图说明

图1为本发明实施例中,二维码转换的方法概述流程图;

图2为本发明实施例中,化学指纹图谱数据进行筛选时的预设条件的示意图;

图3为本发明实施例中,二维码转换的方法详细流程图;

图4为本发明实施例中,人参ITS2序列;

图5为本发明实施例中,人参xu-2样本数据和人参ITS2序列转换成的二维码;

图6为本发明实施例中,人参zhu-2样本数据和人参ITS2序列转换成的二维码;

图7为本发明实施例中,人参xu-6样本数据和人参ITS2序列转换成的二维码;

图8为本发明实施例中,人参zhu-6样本数据和人参ITS2序列转换成的二维码;

图9为本发明实施例中,二维码转换的装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高中药的DNA序列和化学指纹图谱数据的压缩率,使其能成功地转换为二维码,本发明实施例中,将获取的化学指纹图谱数据经过筛选和数字合并压缩处理,并将DNA序列根据第一预设的压缩算法进行压缩处理,以及将处理后的化学指纹图谱数据和DNA序列,按照预设格式进行组合,进而将组合后的数据转换为二维码,其中,数字合并压缩处理,表示将数据进行整形化处理,并将整形化处理后的数据进行合并。

下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。

参阅图1所示,本发明实施例中,二维码转换的方法的具体流程如下:

步骤100:分别获取中药的DNA序列和化学指纹图谱数据。

实际中,对于中药的DNA序列,由于中药的ITS2序列更加方便易用、更适于中药种属鉴别,因此,本发明实施例中,较佳的,DNA序列采用ITS2序列。

对于中药的化学指纹图谱数据,通过相关的设备检测后导出,可能有多种文件格式,例如,TXT、DIF等格式,本发明实施例中,进一步地,将化学指纹图谱数据保存为excel格式文件,其中,化学指纹图谱数据包括时间和上述时间对应的吸收度值,也就是说,化学指纹图谱数据包含多个数据点,每一个数据点为(Time,Value),Time表示当时的检测持续时间,例如,以分钟为单位,Value表示该时间检测出的吸收度值。

本发明实施例中,需要都获取中药的DNA序列和化学指纹图谱数据,这是因为,实际中,一般采用DNA序列来鉴别中药的真假,采用化学指纹图谱来评价中药的质量的优劣,为了对中药的质量和安全进行全面的检测,建立更完善的中药质量追溯体系,本发明实施例中,不再是仅仅单独将DNA序列或化学指纹图谱数据转换为二维码,而是将中药的DNA序列和化学指纹图谱数据同时转换为一个二维码。

步骤110:从上述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组。

执行步骤110时,具体包括:

首先,从化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据。

具体为:依次读取化学指纹图谱数据的数据点,每读取一个数据点,判断当前读取的一个数据点是否为第一个数据点或最后一个数据点,若是,则直接将上述当前读取的一个数据点作为筛选出的化学指纹图谱数据,否则,进一步判断当前读取的一个数据点是否满足预设条件,并在确定满足预设条件时,将上述当前读取的一个数据点作为筛选出的化学指纹图谱数据,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

其中,预设条件,可以有以下几种情况:

第一种情况:当前读取的一个数据点的吸收度值不小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值大于后一个数据点的吸收度值。

第二种情况:当前读取的一个数据点的吸收度值不大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值小于后一个数据点的吸收度值。

第三种情况:当前读取的一个数据点的吸收度值大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值。

第四种情况:当前读取的一个数据点的吸收度值小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值。

也就是说,满足上述任意一种情况的预设条件的数据点,即为筛选出的化学指纹图谱数据,也可以将筛选出的数据点认为是化学指纹图谱数据的特征点。

参阅图2所示,为预设条件的示意图。

例如,将Y[n+1]作为当前读取的一个数据点的吸收度值,Y[n]作为前一个数据点的吸收度值,Y[n+2]作为后一个数据点的吸收度值,则预设条件可以根据图2描述如下:

1)(Y[n+1]-Y[n])*(Y[n+2]-Y[n+1])<0

2)(Y[n+1]=Y[n])&&(Y[n+2]-Y[n+1])<0

3)(Y[n+1]=Y[n])&&(Y[n+2]-Y[n+1])>0

4)(Y[n+1]=Y[n+2])&&(Y[n+1]-Y[n])<0

5)(Y[n+1]=Y[n+2])&&(Y[n+1]-Y[n])>0

为便于算法的实现,在实际中,可以将上述条件同等地描述为:

1)(Y[n+1]≥Y[n]&&(Y[n+1]>Y[n+2])

2)(Y[n+1]≤Y[n]&&(Y[n+1]<Y[n+2])

3)(Y[n+1]>Y[n]&&(Y[n+1]≥Y[n+2])

4)(Y[n+1]<Y[n]&&(Y[n+1]≤Y[n+2])

即对应于上述预设条件的四种情况的文字描述。

这样,先对化学指纹图谱数据进行筛选,得到最能表征化学指纹图谱数据的特征点,大大减少了化学指纹图谱数据的数据量。

然后,将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组。

具体为:依次读取筛选出的化学指纹图谱数据的数据点,每读取一个数据点,根据当前读取的一个数据点中的时间和吸收度值的精度,分别将上述当前读取的一个数据点中的时间和吸收度值放大相应的倍数,并根据放大后的时间和吸收度值的大小,将放大后的时间和吸收度值合并为存储所需的最小字节大小的数组,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

也就是说,分别对化学指纹图谱数据的每一个数据点进行整形化处理和合并,下面,针对一个数据点,进行进一步地详细说明:

(1)将该数据点进行整形化处理。

具体为:根据该数据点中的时间和吸收度值的精度,分别将该数据点中的时间和吸收度值放大相应的倍数。

这样,将该数据点中的时间和吸收度值的小数点位都去掉了,即进行了取整处理,转换成了整形数据。

例如,该数据点中的时间的精度为小数点后两位,吸收度值的精度为小数点后一位,则为了去掉小数点位,将时间放大100倍,吸收度值放大10倍,处理成相应的整形数据。

例如,该数据点为(1.55,2.1),则将其进行整形化处理后,得到的整形数据为(155,21)。

(2)将整形化处理后的数据点进行合并。

具体为:根据整形化处理后的时间和吸收度值的大小,将整形化处理后的时间和吸收度值合并为存储所需的最小字节大小的数组。

实际中,1个字节有8位,即1Byte(字节)=8bit(位),每个位有两种状态“1”和“0”,1个字节能够存储的最大数为255。

因此,将整形化处理后的数据点进行合并时,具体可以采用以下方式:

例如,分别判断整形化处理后的时间和吸收度值的大小,若都不大于255,则将整形化处理后的时间和吸收度值合并为2字节大小的数组,若时间不大于255,吸收度值大于255且不大于65535,则将整形化处理后的时间和吸收度值合并为3字节大小的数组,若都大于255且都小于65535,则将整形化处理后的时间和吸收度值合并为4字节大小的数组。

例如,整形化处理后的数据点为(155,21),对应的二进制为(10011011,10101),合并后为(1001101110101),由于155<255且21<255,因此,只需合并为2字节大小的数组即可,也就是用2字节存储该数据点。

这样,将数据点处理为整形数据,去掉了小数点位,但进行存储时,一般都用统一的字节大小进行存储,例如4个字节,占用的存储空间比较大,因此,将数据点中的时间和吸收度值进行合并,合并为存储所需的最小字节大小的数组,这样,对于不同大小的数据点,采用不同大小的字节进行存储,实现了对化学指纹图谱数据的压缩,大大减少了化学指纹图谱数据所占的字节数。

为便于后续的描述,本发明实施例中,可以将整型处理和合并的算法,即上述(1)-(2)步骤的算法,定义为数字合并压缩(Digital Merger Compression,DMC)算法。

步骤120:将上述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合。

执行步骤120时,具体包括:

首先,将DNA序列按照第一预设的压缩算法进行处理,具体为:

1)根据DNA序列中包含的碱基的种类,确定每一个种类的碱基对应的二进制。

例如,实际中,一般有四种碱基(G、T、C、A),这样,用2bit二进制就可以表示所有种类的碱基,例如,用00表示G、用01表示T、用10表示C、用11表示A。

2)根据每一个种类的碱基对应的二进制,分别将上述DNA序列的每一个碱基转换为对应的二进制,获得上述DNA序列对应的二进制序列。

例如,对于一段DNA序列“CGCATCGC”,可以转换为“1000101101100010”,这样,原始的DNA序列,每一个字符都需占用一个字节,共需占用8个字节,转换后的序列只需占用两个字节,减少了数据量。

3)在上述二进制序列的预设位置添加上述DNA序列的长度。

其中,较佳的,预设位置为转换后的DNA序列,即对应的二进制序列的最开始的位置。

例如,将DNA序列的长度添加在转换后的DNA序列的最开始的位置上,可以用两个字节来存储DNA序列的长度,这样,最长能够处理65535个碱基序列。

添加DNA序列的长度,是为了后续能正确对转换后的DNA序列进行复原,能够正确识别出原始的DNA序列。

例如,对于“CGATCTG”序列,转换之后为“10001101100100”,8位为一个字节,四个碱基可以用一个字节存储,但是最后剩余三个碱基,即剩余6位,因此,需要在最后六位前面补充两位“00”,则为“1000110100100100”,但这样在之后解析时,会出现解析错误,会把补充的两位“00”误认为是“G”,因此,需要在转换后的序列中添加DAN序列的长度,对于该序列长度为7,将7转换为二进制后,添加在最开始的位置,这样,可以根据该长度,能正确解析出DNA序列。

实际中,一个字符需要占用一个字节,用两位二进制来表示一个字符时,四个字符仅占用一个字节,减少了数据量。

进一步地,当然也可以采用现有技术中的DNA序列的压缩算法,对DNA序列进行压缩处理,例如,BioCompress-2,Gen Compress,CTW+LZ,DNA Compress,DNAPack,DNADP,GeNML等。

本发明实施例中,对DNA序列进行处理的压缩算法,直接将DNA序列的碱基转换为二进制,更为简单,也能达到很好的压缩效果。而现有技术下的DNA序列的压缩算法,虽然也可以达到很好的压缩效果,但对于数据量较小的DNA序列,比较复杂,使用本发明实施例中的DNA序列的压缩算法更为方便简单。

然后,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合。

为了确保转换后的二维码能够被识别并能够被还原,需要将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定的数据格式进行组合。

具体为:采用特征分隔符,将处理后的DNA序列和合并后的化学指纹图谱数据进行组合。

例如,合并后的化学指纹图谱数据得到:2字节的数组、3字节的数组和4字节的数组,选用特征分隔符“||”进行分隔,则可以按照如下格式进行组合:

处理后的DNA序列||化学指纹图谱数据2字节的数组||化学指纹图谱数据3字节的数组||化学指纹图谱数据4字节的数组

进一步地,当然也可以采用现有技术下的数据标准格式,例如XML、JSON等进行组合。

但是,现有技术下的组合格式,需要增加额外的字节,而相对二维码承载的数据能力来讲,追求更少的字节数非常重要。本发明实施例中的组合格式,更加简单,不需要要额外增加字节。

步骤130:将组合后的DNA序列和化学指纹图谱数据转换为二维码。

本发明实例中,具体如何将组合后的DNA序列和化学指纹图谱数据转换为二维码,并不进行限制,可以采用现有技术中的方法。

例如,现有的二维码类型有,Data Matrix、Aztec Code、QR Code、Vericode、PDF 417,PDF417 Truncated、Codablock F、Code One等。

实际中,由于中药化学指纹图谱的存储数据基本上为数字字符,而上述二维码类型中最适合存储数字字符的是以下三种:QR Code,Data Matrix和PDF 417。较佳的,QR Code最适合承载中药化学指纹图谱数据。

例如,本发明实施例中,采用QR Code,通过现有技术下的工具,可以直接将组合后的DNA序列和化学指纹图谱数据转换为二维码QR Code。

进一步地,执行完步骤120之后,执行步骤130之前,使用第二预设的压缩算法,将组合后的DNA序列和化学指纹图谱数据进行压缩。

其中,第二预设的压缩算法,可以采用现有技术中的压缩算法,这里本发明实施例中并不进行限定。

现有技术下,压缩算法可以分为有损和无损压缩两大类,本发明实施例中,由于需要无损还原,因此采用无损压缩算法,较佳的,采用zlib(DEFLATE RFC 1951,LZ77算法的变种)无损压缩算法,这是因为,相比较其它压缩算法,该算法具有压缩效率高,免费开源等特点。

这样,通过第二压缩算法的进一步的压缩处理,可以进一步减少数据量,便于后续二维码的转换。

这样,通过上述步骤100-步骤130,就可以成功地将中药的DNA序列和化学指纹图谱数据转换成了二维码,本发明实施例中,解决了中药的化学指纹图谱数据信息量大的难题,将DNA序列和化学指纹图谱结合起来,用二维码进行呈现,方便进行中药的质量追溯,转换后的二维码通过识别,可以被复原为原始的DNA序列和化学指纹图谱数据,过程是可逆的,这样,用户可以直接通过扫描二维码,就能获得中药的相关信息,也更便于对中药的质量和安全进行管理。

下面采用一个具体的应用场景对上述实施例作出进一步详细说明。具体参阅图3所示,本发明实施例中,二维码转换的方法的执行过程具体如下:

例如,选取中国东北的人参2~6年生根和须共十组化学指纹图谱数据,同时选取人参的ITS2序列作为其种属DNA序列。

步骤300:分别获取中药的DNA序列和化学指纹图谱数据。

其中,人参的化学指纹图谱原始数据来源于安捷伦设备输出文件,由于输出文件为文本格式,需要将输出文件中表征化学指纹图谱的关键数据点(Time-Value)保存为Excel格式文件。

其中,Time的精度为小数点后两位,Value的精度为小数点后一位。

步骤301:对化学指纹图谱数据进行筛选。

具体为:从化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据。

中药的化学指纹图谱数据的数据量一般都非常大,远远超出了二维码的容量,筛选之后,数据量发生了很大的变化,参阅表1所示。

表1化学指纹图谱数据筛选后数据串长度与点数的变化表

通过步骤300获取的化学指纹图谱数据,每一组化学指纹图谱数据包含的数据点都较多,约5000个点,约104K字节,大大超出了现有的二维码的容量。通过步骤301筛选后的数据字符串长度范围为1113~1667,筛选后的数据字符串长度相比原始数据字符串长度压缩率为1.37%~2.08%,数据点的数量范围为121~178,筛选后的数据点的数量相比原始数据点的数量压缩率为2.68%~3.95%,大大减少了数据量,降低了所占的字节的大小。

步骤302:将筛选出的化学指纹图谱数据进行数字合并压缩处理。

也就是说,采用上述DMC算法,对筛选出的化学指纹图谱数据进行处理,具体为:将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组。

经过DMC算法的进一步处理,能够进一步提高化学指纹图谱数据的压缩率,参阅表2所示。

表2化学指纹图谱数据筛选以及DMC算法后字节数变化表

经过DMC算法处理后,化学指纹图谱数据所占的字节数进一步得到了压缩,相比筛选后化学指纹图谱数据的字节数,压缩率为30.23%~31.73%。

步骤303:将DNA序列按照第一预设的压缩算法进行处理。

具体为:将DNA序列中的碱基都转换为对应的二进制,得到DNA序列对应的二进制序列,并在二进制序列的预设位置上添加DNA序列的长度。

本发明实施例中,具体参阅图4所示,人参的ITS2序列中有230个碱基,共230个字节。处理之后,每4个碱基用一个字节,并用两个字节来保存DNA序列的长度,则处理之后,共58+2=60个字节。

由此可知,经过步骤303,DNA序列进行了压缩,所占的字节数大大减少。

步骤304:将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合。

步骤305:将组合后的数据使用zlib压缩算法进行压缩。

将化学指纹图谱数据和DNA序列组合后,数据量会增加,为进一步减少字节数,提高压缩率,使用zlib进行进一步的压缩,参阅表3所示。

表3 zlib压缩后字节变化表

采用zlib压缩算法,对组合后的数据进行进一步的压缩,相对与zlib压缩前的字节数,其压缩率为87.2%~94.85%。

步骤306:将经过zlib压缩后的数据转换为二维码QR Code。

经过步骤300-步骤306之后,DNA序列和化学指纹图谱数据被成功地转换为二维码,参阅图5-图8,分别为其中四组样本数据(xu-2、zhu-2、xu-6和zhu-6)和ITS2序列转换成的二维码的示意图。

基于上述实施例,参阅图9所示,本发明实施例中,二维码装换的装置,具体包括:

获取单元90,用于分别获取中药的DNA序列和化学指纹图谱数据;

第一处理单元91,用于从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组;

第二处理单元92,用于将所述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合;

转换单元93,用于将组合后的DNA序列和化学指纹图谱数据转换为二维码。

较佳的,分别获取中药的DNA序列和化学指纹图谱数据之后,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据之前,进一步包括:

保存单元94,用于将化学指纹图谱数据保存为excel格式文件,其中,化学指纹图谱数据包括时间和所述时间对应的吸收度值。

较佳的,从所述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据时,第一处理单元91具体用于:

依次读取化学指纹图谱数据的数据点,每读取一个数据点,判断当前读取的一个数据点是否为第一个数据点或最后一个数据点,若是,则直接将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,否则,进一步判断当前读取的一个数据点是否满足预设条件,并在确定满足预设条件时,将所述当前读取的一个数据点作为筛选出的化学指纹图谱数据,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,所述预设条件为:

当前读取的一个数据点的吸收度值不小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值大于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值不大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值大于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值;或,

当前读取的一个数据点的吸收度值小于前一个数据点的吸收度值,并且,当前读取的一个数据点的吸收度值不小于后一个数据点的吸收度值。

较佳的,将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组时,第一处理单元91具体用于:

依次读取筛选出的化学指纹图谱数据的数据点,每读取一个数据点,根据当前读取的一个数据点中的时间和吸收度值的精度,分别将所述当前读取的一个数据点中的时间和吸收度值放大相应的倍数,并根据放大后的时间和吸收度值的大小,将放大后的时间和吸收度值合并为存储所需的最小字节大小的数组,直到确定当前读取的一个数据点为最后一个数据点为止,停止读取。

较佳的,将所述DNA序列按照第一预设的压缩算法进行处理时,第二处理单元92具体用于:

根据所述DNA序列中包含的碱基的种类,确定每一个种类的碱基对应的二进制;

根据确定的每一个种类的碱基对应的二进制,分别将所述DNA序列的每一个碱基转换为对应的二进制,获得所述DNA序列对应的二进制序列;

在所述二进制序列的预设位置添加所述DNA序列的长度。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合时,第二处理单元92具体用于:

采用特征分隔符,将处理后的DNA序列和合并后的化学指纹图谱数据进行组合。

较佳的,将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合之后,将组合后的DNA序列和化学指纹图谱数据转换为二维码之前,进一步包括:

压缩单元95,用于使用第二预设的压缩算法,将组合后的DNA序列和化学指纹图谱数据进行压缩。

综上所述,本发明实施例中,分别获取中药的DNA序列和化学指纹图谱数据;从上述化学指纹图谱数据中筛选出符合预设规则的化学指纹图谱数据,并将筛选出的化学指纹图谱数据进行整形化处理,以及根据整形化处理后的化学指纹图谱数据的大小,将整形化处理后的化学指纹图谱数据合并为存储所需的最小字节大小的数组;将上述DNA序列按照第一预设的压缩算法进行处理,并将处理后的DNA序列和合并后的化学指纹图谱数据,按照设定格式进行组合;将组合后的DNA序列和化学指纹图谱数据转换为二维码,这样,分别将化学指纹图谱数据和DNA序列进行了压缩,提高了压缩率,中药的信息量大的难题,由于二维码的容量非常有限,进行压缩处理后,能够成功地转换为二维码;并且,将中药的化学指纹图谱数据和DNA序列组合,转换为一个二维码,这样,通过扫描二维码,可以直接获知中药的真伪和质量信息,更便于进行中药质量追溯。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1