本发明涉及量子计算和生物信息领域,尤其涉及基于量子的序列比对方法、量子线路化简与量子线路映射,具体涉及一种基于量子技术的基因搜索blast加速方法及系统,用于加速经典blast算法并降低其对应量子线路在物理量子计算机的运行要求。
背景技术:
::1、干扰素是免疫学研究领域中的关键因子,其对于多个免疫学中研究领域的发展具有重要作用。如它可以调节增强人类的免疫反应;抑制病毒的复制和传播;抑制肿瘤细胞的增殖和增长。目前对于干扰素的研究一般都基于注释信息。对于已注释的物种,可以非常方便的获取其在染色体上的位置;而对于未注释的物种,其全基因组信息是数以百万计的atcg字符组成的序列,这将为研究带来巨大的阻碍。为此,研究者需要使用已知干扰素序列去和全基因序列进行比对,来获得干扰素的具体信息。2、序列比对是一种在生物信息学中常用的关键分析方法。通过序列比对,研究者可以获得未注释物种中干扰素的位置等信息。当前应用最广泛的序列比对算法之一是blast。其在ncbi等多个知名数据库中都有使用。不仅如此,blast对基因注释、疾病研究、进化生物学及新基因的发现都起到了关键作用。随着生物数据量的快速增长,blast成为确保数据整合、解析和应用的必备工具。3、经典blast主要流程为三步,第一步根据查询序列query sequence生成固定长度的字段words;第二步通过words,在数据库中扫描索引,并得到位点hits;第三步以hits为中心向两端延伸从而寻找超过设定阈值的高分片段。blast算法中第一步和第三步的时间复杂度依赖于query sequence的长度l,为o(l),第二步的时间复杂度依赖于目标序列subject sequence的长度n,为o(n)。由于query sequence的长度远小于subjectsequence,所以经典blast算法的主要时间开销来源于第二步。4、目前,已经有许多针对blast的优化方法被提出,比如在第三步前进行剪枝,使用多核cpu或gpu进行并行运算。尽管这些方法较好地改善了经典blast的运行效率,但未从时间复杂度上改变经典blast算法的运行效率。近年来,量子计算的快速发展,为加速blast提供了一种新的可能。5、因为受制于物理量子计算机(物理机)的硬件缺陷,量子算法中的门操作会引入误差,所以针对量子线路的简化和等效替代对减少物理机上的计算误差具有重要作用。zx-calculus是一种通用量子电路的优化方法,但是,该方法的计算时间复杂度很高。6、在现有的物理机中,量子比特之间的纠缠效果较弱,且这种纠缠效果会随着距离的增加而进一步减弱。这意味着量子门仅在相邻的两个量子比特之间产生作用。相隔较远的量子比特在执行操作前,需要先进行多个swap操作使其相邻。然而这会引入额外门操作,增加量子计算误差。需要使用量子线路映射算法来将量子线路映射至物理机。然而,目前多数物理机缺乏线路映射方法,映射量子线路需要手动映射,较为困难,无法有效减少swap操作。7、有鉴于此,构建一种基于量子技术的基因搜索blast加速方法具有重要意义。技术实现思路1、本发明的目的在于针对传统方法无法改善经典blast算法的时间复杂度、通用线路化简方法化简基于量子计算的blast算法的量子线路的时间开销大以及如何方便的映射量子线路的问题,提供了基于量子技术的blast加速方案。本发明基于量子技术的量子基因序列比对方法qgsa(quantum gene sequence alignment)改进了经典blast算法的时间复杂度,基于真值表的量子线路化简方法oqcbtt(optimization of quantum circuit basedon truth table)降低了化简qgsa量子线路的时间开销,并基于神经布局的映射模型qcmm(quantum circuit mapping model)提供了一种简易的线路映射方法。2、具体而言,本发明提供了以下技术方案:3、一方面,本发明提供了一种基于量子技术的基因搜索blast加速方法,该方法包括:4、s1、对目标序列和字段进行量子比特编码,并构建初始状态,所述初始状态包括索引串比特、目标串比特和模式串比特;目标序列形成目标串比特,字段形成模式串比特;进行循环位移操作,依据索引串比特将目标串比特转换为各状态的叠加;寻找正确的解状态,并对解状态进行振幅放大;5、s2、基于s1循环位移操作中索引串比特状态与目标串比特状态的对应关系获得真值表并提取简化的真值表,根据简化的真值表获得目标串比特、模式串比特和索引串比特;遍历索引串(即遍历索引串比特状态)并更新计数表以完成量子线路的搭建,获得化简后量子线路;其中,每个目标比特维护一张计数表,所述目标比特指目标串比特中的一个比特;所述索引串指索引串比特状态对应二进制串,索引串可以指示出索引串比特的状态;6、s3、训练qcmm模型,将简化后的量子线路映射到物理机上。7、优选地,所述s1中,对目标序列和字段进行量子比特编码,在构建初始状态中,对于索引串比特用h门构建叠加态,对于目标串比特与模式串比特用x门构建量子状态。8、优选地,构建初始状态结束后,量子比特状态公式为:9、10、其中,ti为目标串比特第i位,pj为模式串比特第j位,t为目标串比特长度,p为模式串比特长度,k表示索引串比特对应的量子状态。11、优选地,所述s1中,循环位移操作具体为:利用索引串比特的叠加态对目标串比特进行位移,索引串比特的状态指示位移的位数,并对应不同的目标串比特状态;位移操作结束后量子比特的状态为:12、13、其中,ti为目标串比特第i位,pj为模式串比特第j位,t为目标串比特长度,p为模式串比特长度,k表示索引串比特对应的量子状态,表示索引串比特形成的均匀叠加态|s>,即各状态的叠加。14、优选地,所述s1中,寻找正确的解状态的方式为:使用cnot门实现xor操作,以识别均匀叠加态|s>中正确的解状态|w>,运算结束后量子比特的状态为:15、16、然后通过uw为|s>中正确的解状态|w>添加负相位,uw如下所示:17、18、其中,pi为模式串比特第i位,p为模式串比特长度。19、优选地,对状态uw|s>(即对均匀叠加态|s>施加uw操作后的状态)运用us进行振幅放大,其中:20、us=2|s><s|-i(关于状态|s>的反射)到状态uw|s>;21、i表示单位门。22、优选地,所述s2中还包括:23、对每个目标比特,维护一张n×logn的计数表,其中n表示目标序列长度;24、为计数表第i个索引串添加指针:若该索引串比特中1的数量为j,那么以计数表的第i行第j列为起点添加指针,指针指向计数表中同列位置,并且该位置对应索引串比特中为1的位置,必须包含第i个索引串比特中为1的位置。25、优选地,所述s2还包括:根据简化的真值表获取索引表,索引表第一列为索引串比特的不同状态,第二列为不同状态的索引串比特对应的目标串比特的前p个量子比特对应状态,其中p表示模式串比特长度;26、遍历索引串并更新计数表具体方式为:27、遍历索引表;28、index表示索引表第一列索引串比特的不同状态对应的十进制值。x表示目标串比特中的一个量子比特,称作目标比特。qxi表示index=i时,目标比特x在索引表中对应的状态,称作目标比特值。若索引表中索引index为0,且对应qx0为1,则在目标比特x对应的量子线路上施加x门;如果index不为0,则计算该行索引在目标比特x的计数表中对应行所有列的和sum;如果sum/2=0,则temp=qx0,否则,比较temp和目标比特值qxindex,如果temp≠qxindex,则根据索引串施加门;其中temp是一暂存数据的变量;29、如果在index=i时增加了一个门,则记录其对应索引串比特为1的位置end,并且以目标比特x的计数表第i+1行第end列为起点的指针所指向的记数表位置全部加1。30、优选地,所述qcmm模型结构包括:输入层、共享层、dropout层以及多个slot结构;31、所述输入层连接所述共享层,所述共享层连接所述dropout层,所述dropout层连接多个slot结构;32、单个slot结构包含dense1层,dense2层以及slot层;dense1层接收所述dropout层的输出数据;dense1层连接dense2层,dense2层连接slot层;33、每个slot结构产生一组结果,选取每个slot结构中概率最大的类别作为该slot结构的分类结果。34、优选地,所述s3还包括,处理各个slot结构之间的冲突:35、s3-1、记录slot结构数目num,每个slot结构输出的结果存放至slist列表中,slist=[plist0,…,plistnum-1],其中plist表示第i+1个slot结构输出的结果;flag=[flag0,…,flagnum-1],其中flagi=1表示第i+1个slot结构对应的物理比特已确定,flagi=0表示第i+1个slot结构对应的物理比特不确定;y=[y0,…,ynum-1],其中yi表示第i+1个slot结构对应的物理比特,初始y的每个位置都设置为-1;初始oknum=0,oknum的值表示已确定对应物理比特的slot结构数量;36、s3-2、如果oknum=num,则输出结果y,否则执行s3-3;37、s3-3、初始化一个空列表ntemp;依次遍历slist列表,寻找其中每一个plisti中最大的概率pmaxi;如果flagi≠1,则将pmaxi加入ntemp列表中,否则将-1加入ntemp末尾;38、s3-4、寻找ntemp中最大的值ntempmax,以及ntempmax在ntemp中的索引ntempindex,置yvalue的值为ntempmax在plistntempindex中的索引;39、s3-5、如果yvalue不在输出结果y中,那么将yntempindex的值置为yvalue,并将flagntempindex置1,oknum的值加1;否则,将plistntempindex[yvalue]的值置为-1。回到s3-2。40、另一方面,本发明还提供了一种基于量子技术的基因搜索blast加速系统,该系统包括:41、qgsa加速模块,用于对目标序列和字段进行量子比特编码,并构建初始状态,所述初始状态包括索引串比特、目标串比特和模式串比特;进行循环位移操作,依据索引串比特将目标串比特转换为各状态的叠加;寻找正确的解状态,并对解状态进行振幅放大;42、量子线路化简模块,用于基于qgsa加速模块循环位移操作中索引串比特状态与目标串比特状态的对应关系获得真值表并提取简化的真值表,根据简化的真值表获得目标串比特、模式串比特和索引串比特;遍历索引串并更新计数表以完成量子线路的搭建,获得化简后量子线路;其中,每个目标比特维护一张计数表,所述目标比特指目标串比特中的一个比特;所述索引串指索引串比特状态对应二进制串;43、映射模块,用于训练qcmm模型,将简化后的量子线路映射到物理机上。44、再一方面,本发明还提供了一种电子装置,所述电子装置包含处理器及存储设备,所述处理器调用所述存储设备中存储的指令,以执行如上所述的基于量子技术的基因搜索blast加速方法。45、与现有技术相比,本技术方案具有以下有益效果:46、(1)本发明提出的qgsa算法,通过将blast第二步的时间复杂度从o(n)优化至(n表示目标序列的长度),从而加快blast的运行效率。47、(2)本发明提出的oqcbtt量子线路简化算法,相比于通用的zx-calculus方法(最坏情况下的时间复杂度为o(s2n2),s代表zx图中节点的数量,n代表量子比特数量),不仅可以在更低的时间复杂度o(n)下获得qgsa算法等价的简化量子电路,还可以将其空间复杂度从o(n)降低至o(logn),从而减小计算规模,降低其在物理机上的运行要求。48、(3)本发明提出的qcmm模型,为物理机提供了一种简易的线路映射方法。当前第1页12当前第1页12