一种运行于多核计算机平台的并行通用序列的比对方法

文档序号:6628030阅读:662来源:国知局
一种运行于多核计算机平台的并行通用序列的比对方法
【专利摘要】本发明公开了一种运行于多核计算机平台的并行通用序列的比对方法,首先利用聚类方法(Cluster)对待比对序列集进行分类,得到大小不等的子序列集合(C1,C2,……,Cm)。然后,应用分配方法(Distribute)将待比对的子序列集合分配到各计算核上(Core1,Core2,……,Coren),以各个核上的负载平衡为分配的最终目标。接着,应用现有的序列比对方法对各子序列集合分别进行比对(Align)。最后,应用合并方法(Merge),将已比对的子序列集合合并,得到待比对序列集的最终比对结果。本发明基于多核计算平台,充分利用了数据并行的计算策略,从而显著提高生物序列比对的处理效率。
【专利说明】—种运行于多核计算机平台的并行通用序列的比对方法

【技术领域】
[0001]本发明属于计算机软件【技术领域】,涉及一种运行于多核计算机平台的并行通用序列的比对方法。

【背景技术】
[0002]序列是生物信息的载体,包括DNA (脱氧核糖核酸)、RNA (核糖核酸)和蛋白质等。生物序列比对(sequence alignment)是以序列为研究对象,通过比较序列中各字符间的对应关系或字符的对比排列,发现序列之间的相似性,辨别序列之间的差异,从而推测其结构、功能以及进化上的联系。序列比对是生物序列分析领域最重要的研究方向之一,已被广泛应用于进化分析、功能预测、相似性搜索、生物制药、疾病诊断与治疗等方面。
[0003]高性能计算的发展现状表明,计算机体系结构已朝着单核到多核、同构到异构体系结构快速发展。有关并行的序列比对方法主要分成二种思路。
[0004]第一种思路是在经典体系结构上提出并行序列比对解决方法,经典体系结构包括总线网、Mesh网、机群和众核计算机等计算平台。在国内,中科院计算技术研究所在DAWING2000-1机群系统上开发了并行S-W方法,通过应用分而治之策略,有效地降低了内存需求,实现了大规模序列比对数据的并行处理。还有应用64核Tile64平台实现的N-W序列比对方法,获得了 20倍的加速效果。另外,还采用了 Amazon Elastic Cloud(EC2)平台实现了T-COFFEE序列比对方法。
[0005]另一种思路是鉴于通用计算平台处理生物序列比对的局限性,目前国内外大多采用硬件加速部件与通用微处理器组成异构处理结构,对生物序列比对的应用进行加速。硬件加速部分包括GPU(Graphic Processing Unit)、FPGA (Field Programmable Gate Array)和Cell BE (Cell Broadband Engine)。自2006年最早提出GPU加速S-W方法以来,已提出了许多GPU在序列比对领域的应用。采用的GPU类型大部分基于NVIDIA GPU的实现,2011年,中国首先采用AMD ATI HD4850实现多序列比对的加速,也是迄今为止唯一将AMD GPU应用于序列比对领域的方法。除了单GPU上实现序列比对外,也提出了多GPU协同实现序列比对的方法。自1998年首次应用FPGA加速序列比对应用以来,已有许多采用线性脉动阵列处理器的序列比对方法。2007年,Sachdeva等第一次将Cell BE平台应用到序列比对领域,随后提出了 FASTA、Clustalff, BLASTP等方法的Cell BE加速方法。
[0006]通用计算平台和异构计算平台加速序列比对的方法各有优劣。具体分析如下:
[0007]虽然采用通用计算平台对序列比对的并行计算取得了明显的加速效果,但从并行效率上分析,通用计算平台对序列比对这类数据相关性较强的计算密集型应用,并行效率一般不超过60%。而且随着序列比对问题规模的增大和处理器数量的增加,并行效率呈明显下降趋势。
[0008]鉴于异构体系结构能够适应序列比对算法多样性的同时保持系统软件兼容,并且随着GPU、FPGA和Cell BE性能提升和价格、功耗的不断降低,基于异构体系结构的并行序列比对方法是序列比对领域正在探索的重要发展方向。虽然GPU等加速部件拥有强大的计算能力和卓越的性价比,但是由于其硬件结构固定,拥有有限的内存,不能在运算粒度、存储调度、计算适应度方面适应序列比对具体应用的特点,限制了实际计算性能。因此,异构计算平台序列比对加速方法研究目前急需解决以下问题:
[0009](I)异构平台的高效协同方式。CPU与加速部件(GPU、FPGA和Cell BE)之间的高效协同计算是提升序列比对性能的关键因素。必须根据硬件加速部件的计算能力和执行特点,确定合理的协同方式,以保证CPU与加速部件之间的负载平衡,降低各种交互开销,进而提高并行方法的执行效率。
[0010](2)序列比对程序的性能优化。对采用硬件加速部件加速的序列比对并行计算程序而言,影响其性能的因素主要有:计算的组织方式、寄存器和缓存的使用、存储器访问特点、同步以及数据传输等。如何优化这些影响性能的主要因素,是研究序列比对硬件加速方法的难点。


【发明内容】

[0011]本发明的所要解决的技术问题是提供一种运行于多核计算机平台的并行通用序列的比对方法,以克服现有技术中序列比对的执行效率不高的问题。
[0012]一种运行于多核计算机平台的并行通用序列的比对方法,首先应用聚类方法对待比对序列集合以已知功能序列作为聚类中心进行划分得到多个序列子集;然后将多个序列子集分配到各计算机核上独立地与各自的聚类中心进行比对,得到序列子集的比对结果;最后应用渐进式方法对序列子集的比对结果进行合并,得到待比对序列集合的比对结果矩阵A,完成序列比对;
[0013]所述矩阵A满足以下条件:
[0014](I)矩阵 A 中的元素 Bij e Σ U {.};
[0015]其中,Σ表示生物序列字母表,若为DNA序列,则Σ = {A、C、G、T};若为蛋白质序列,则Σ为20个简单氨基酸分子;{.}表示在序列比对过程中插入的空格;
[0016](2)若删除空格,矩阵A中的行a, = anai2…an(l彡i彡η)即为待比对序列集合中的某一序列;
[0017](3)矩阵A中不存在全为空格的列。
[0018]所述将序列子集分配到各计算机核上独立地进行比对的具体过程如下:
[0019]I)计算每个序列子集Ci所需的比对时间WCi),i表示第i个序列子集;
[0020]2)根据序列子集的比对时间,以各个核的负载平衡为分配目标,采用最长处理时间优先的启发式序列子集分配方法,将序列子集分配到各个计算机核上执行比对操作。
[0021]所述序列子集所需的比对时间计算方法包括以下两种:
[0022]Dt(Ci) ~ NX L,比对时间 t (Ci)正比于 NXL;
[0023]2) t (Ci) aN4+bNL2,比对时间 t (Ci)正比于 aN4+bNL2 ;
[0024]其中,其中N和L分别为序列子集Ci所包含的序列数目和所有序列的平均长度;
[0025]a和b均为拟合系数,从序列相似度在90%以上的已知序列中,随机挑选序列构建序列子集,利用现有比对工具获得序列子集的比对时间,采用最小二乘法进行非线性数据拟合求得a和b。
[0026]所述最长处理时间优先的启发式序列子集分配方法具体过程如下:
[0027]步骤1:将多个序列子集IC1, C2,…,CJ按序列子集的比对时间进行非升序排列,即 WC1) ^ t(C2) >,...,> t(Cx);
[0028]步骤2:令Uj = Φ,Lj = 0,其中,Uj是J的子集,Lj是Uj中所有子集的比对时间之和,j = I,2,......,m, m表示计算机核数;
[0029]步骤3:令i = I, U1(m) = Um, L1 (m) = Lm, U1(m)表示序号为m的计算机核上所分配的序列子集的集合;
[0030]步骤4 -.U1 ⑴=U1(1) U Ci, L1(1) = L1(1) U ^t(Ci),并将 U1 ⑴,U1 ⑵,......,U1(m)按照
Liw的大小进行非降序排列,得到新的U' 1(1),U' 1(2),……’U, 1(ffl);
[0031 ] 步骤5:将U' i (m)赋值给U1 (m),使得 Li ⑴ < L1 ⑵......,< L1 (m);
[0032]步骤6:判断i是否为X,若不是,则i = i+Ι,返回步骤4 ;若是,贝U按照l_m的顺序将仏(111)依次分配到序号为Ι-m的核上进行序列比对。
[0033]所述聚类方法为Cchhit和UCLUST。
[0034]所述应用渐进式方法对序列子集的比对结果进行合并是指:
[0035]首先进行核内的序列比对,然后进行核与核之间的序列比对,直到得到η条序列的比对结果;
[0036]其中,序列比对的顺序按照序列所在序列子集的编号和核编号从小到大的顺序。
[0037]矩阵A是最后序列比对呈现的结果,在得到矩阵A以后,需计算Q得分或TC得分来评价序列比对的结果(即矩阵Α),评价序列的相似性。
[0038]有益效果
[0039]本发明的技术主要构思是应用数据并行的思想充分挖掘多核计算平台的性能,提出多序列比对的并行解决方法。通过将输入序列集合划分为小的序列子集,并将这些子集分配到计算机核上并行地、独立地执行比对操作,最后将子集的比对结果进行合并,得到输入序列集合的比对结果。在此过程中,充分考虑了数据并行对多核计算平台的计算性能的影响,通过设计负载平衡的核间比对任务分配方法,以及有效的渐进式序列谱一序列谱比对方法对序列子集的合并结果进行合并,显著提高整个系统的比对处理效率。
[0040]另外,本发明所述方法是针对当前流行的多核计算平台而设计,运行于Windows操作系统之上,包括Windows XP, Windows Vista,和Win7。用户只需要一台多核计算机而不需要增加任何硬件成本即可应用此方法比对高达3万条的生物序列。应用本发明所述方法比采用计算机集群、GPU、FPGA或Cell BE等对硬件有特殊要求的方法有无可比拟的优势。

【专利附图】

【附图说明】
[0041]图1为本发明所述方法示意图;
[0042]图2为渐进式序列一序列比对方法;
[0043]图3为应用本发明所述方法在4个核上的进行序列比对所需运行时间比较;
[0044]图4为本发明所述方法CDAM与方法MUSCLE的比对精度对比示意图;
[0045]图5为本发明所述方法CDAM (U⑶LST)与方法MUSCLE的加速比对比示意图。

【具体实施方式】
[0046]下面将结合附图和实施例对本发明做进一步的说明。
[0047]一种运行于多核计算机平台的并行通用序列的比对方法,首先应用聚类方法对待比对序列集合以已知功能序列作为聚类中心进行划分得到多个序列子集;然后将多个序列子集分配到各计算机核上独立地与各自的聚类中心进行比对,得到序列子集的比对结果;最后应用渐进式方法对序列子集的比对结果进行合并,得到待比对序列集合的比对结果矩阵A,完成序列比对;
[0048]所述矩阵A满足以下条件:
[0049](I)矩阵 A 中的元素 aiJ; Bij e Σ U {.};
[0050]其中,Σ表示生物序列字母表,若为DNA序列,则Σ = {A、C、G、T};若为蛋白质序列,则Σ为20个简单氨基酸分子;{.}表示在序列比对过程中插入的空格;
[0051](2)若删除空格,矩阵A中的行a, = anai2…an(l彡i彡η)即为待比对序列集合中的某一序列;
[0052](3)矩阵A中不存在全为空格的列。
[0053]所述将序列子集分配到各计算机核上独立地进行比对的具体过程如下:
[0054]I)计算每个序列子集Ci所需的比对时间t (Ci),i表示第i个序列子集;
[0055]2)根据序列子集的比对时间,以各个核的负载平衡为分配目标,采用最长处理时间优先的启发式序列子集分配方法,将序列子集分配到各个计算机核上执行比对操作。
[0056]3.根据权利要求2所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述序列子集所需的比对时间计算方法包括以下两种:
[0057]Dt(Ci) a NX L,比对时间 t (Ci)正比于 NXL;
[0058]2) t (Ci) ο- aN4+bNL2,比对时间 t (Ci)正比于 aN4+bNL2 ;
[0059]其中,其中N和L分别为序列子集Ci所包含的序列数目和所有序列的平均长度;
[0060]a和b均为拟合系数,从序列相似度在90%以上的已知序列中,随机挑选序列构建序列子集,利用现有比对工具获得序列子集的比对时间,采用最小二乘法进行非线性数据拟合求得a和b。
[0061]使用PS1-BLAST搜索工具在NCBI非冗余蛋白质序列数据库搜索与RovA(NCBI:AAD51968, Yersinia enterocolitica)序列相似度得分最高的400条序列。这400条序列的平均长度为143个残基,最长序列262个残基,平均序列对之间的相似度为90%。在这些序列中随机地选择50、100、150、…、400条序列构成8个序列集,利用CDAM所选用的比对方法分别测量这8个序列集的比对时间,已知N和L,使用最小二乘法进行非线性数据拟合,求出系数a和b。
[0062]为了比较这两种方法的性能,使用Rose序列生成器生成8个数据集,它们的平均序列长度为100,序列间的平均距离为150,序列的数目分别从1,000至8,000。通过在一台多核计算机上测量CDAM选用的比对方法比对这些数据集的时间,记录各个核上的运行时间。选择两种方法中各个核运行时间大致相等的作为CDAM序列子集比对时间的计算方法。
[0063]所述最长处理时间优先的启发式序列子集分配方法具体过程如下:
[0064]步骤1:将多个序列子集IC1, C2,…,CJ按序列子集的比对时间进行非升序排列,即 WC1) ^ t(c2) >,...,> t(cx);
[0065]步骤2:令Uj = Φ,Lj = 0,其中,Uj是J的子集,Lj是Uj中所有子集的比对时间之和,j = I,2,......,m, m表示计算机核数;
[0066]步骤3:令i = I, U1(m) = Um, L1 (m) = Lm, U1(m)表示序号为m的计算机核上所分配的序列子集的集合;
[0067]步骤4:U1(1) = U1 ⑴ U Ci, L1⑴=L1 ⑴ U t (Ci),并将 U1 ⑴,U1 ⑵,……,U1 (m)按照L1(m)的大小进行非降序排列,得到新的U' 1(1),U' 1(2),……’U, 1(ffl);
[0068]步骤5:将U' I (m)赋值给U1 (m),使得 Li ⑴ < L1 ⑵......,< L1 (m);
[0069]步骤6:判断i是否为X,若不是,则i = i+Ι,返回步骤4 ;若是,贝U按照l_m的顺序将仏(111)依次分配到序号为Ι-m的核上进行序列比对。
[0070]举例说明如下:
[0071]假定有八个序列子集,三个核,序列子集C1-C8的比对时间依次为8、8、7、5、3、2、2、1 ;
[0072]最后得到三个核上的序列子集为:核I包含Cl、C5、C8,核2包含C2、C6、C7,核3包含C3、C4。
[0073]所述聚类方法为Cd-hit和UCLUST。
[0074]聚类是生物信息学中常用的序列分类手段,为了提高CDAM方法的性能(即比对精度和比对时间),先定义出满足其应用需求的特性。通过定义序列聚类方法所具备的基本特征,来评估聚类方法与CDAM应用的适合度。
[0075]可扩展性:聚类时间与算法的内存需求不能随着序列数目的增加而呈指数形式增长,算法应在较短的时间内完成大规模序列的聚类工作。另一方面,CDAM策略是为当代流行的多核计算平台而设计,通常多核计算机只有有限的计算资源,这就要求聚类算法必须具有可扩展性。
[0076]并行性:聚类算法可并行地运行,这样才能在有限的时间内处理大规模的序列数据。
[0077]聚类大规模序列数据的能力:如果聚类算法能在一定的时间内聚类几千条序列,则该算法适合于处理大规模的序列数据。
[0078]根据以上聚类算法必须满足的基本特征,选择5种聚类算法Cd-hit、UCLUST、SiLiXXLUSS和BLASTClust应用到CDAM策略。虽然这5种算法均能进行序列聚类,但仅前三种算法能处理大规模的序列聚类。这样选择的目的是通过比较这些算法的优点和不足,得到选择适合CDAM策略的聚类算法的标准。
[0079]分别将这5种聚类方法应用到CDAM的数据预处理阶段,选用BAl iBASE3.0、OXBenchl.3、IRMBASE2.0和PREFAB4.0等4个基准多序列比对库来评估聚类算法的性能。各CDAM程序比对基准多序列比对库的实验结果清晰地表明,Cd-hit和UCLUST比SiLiX、CLUSS和BLASTClust具有更好的兼容性,更容易移植到CDAM方法中,建议采用Cd-hit和UCLUST作为CDAM默认的聚类方法。
[0080]所述应用渐进式方法对序列子集的比对结果进行合并是指:
[0081]首先进行核内的序列比对,然后进行核与核之间的序列比对,直到得到η条序列的比对结果;
[0082]其中,序列比对的顺序按照序列所在序列子集的编号和核编号从小到大的顺序。
[0083]矩阵A是最后序列比对呈现的结果,在得到矩阵A以后,需计算Q得分或TC得分来评价序列比对的结果(即矩阵A),评价序列的相似性。
[0084]为测评CDAM的性能,选用MUSCLE方法作为各个核的序列子集的比对。定义Q得分、TC得分以及加速比来评估CDAM方法的性能。Q得分定义为比对结果中正确比对的字符对的数目与所有字符对的数目的商。TC得分定义为比对结果中正确比对的列数与所有列数的商。加速比定义为:加速比=T?saE/Tp,其中TmsaE为MUSCLE方法的比对时间,Tp为CDAM方法应用P个计算机核的比对时间。
[0085]实施例1:
[0086]实验分别测试两组数据,一组为传统的序列比对Benchmarks,包括BAliBASE3.0、IRMBASE2.0、PREFAB4.0和OXBenchl.3,其目的用于计算CDAM方法的Q/TC得分,以评估其比对精度。一组为使用Rose序列产生器生成大规模序列集合,用于计算CDAM方法与MUSCLE方法的加速比,以评估CDAM方法处理大规模序列比对的效率。
[0087]测试例1:分别运行MUSCLE和CDAM两种方法,实验数据为4组Benchmarks,收集两种方法在4组Benchmarks下的Q得分和TC得分。实验结果如附图4所示,结果表明,CDAM与MUSCLE方法具有接近的比对精度。这是因为CDAM方法采用MUSCLE方法作为各个核的序列子集的比对方法,所以获得了与MUSCLE方法接近的比对精度,这也验证了 CDAM方法比对序列的有效性。
[0088]测试例2:分别运行MUSCLE和CDAM两种方法,实验数据为由Rose序列产生器产生的28个序列集合。分别使用1、2、4和8个核,计算这两种方法下的序列比对时间,求出加速比。Rose的参数设置为:序列数目为1000?8000,序列的平均长度为200 — 2000,序列的平均距离为150?1050。实验结果如附图5所示,当序列集数目小于6000时,加速比线性上升,而当序列数目大于6000时,加速比线性减小。这是因为当序列数目增加时,应用渐进序列谱一序列谱比对方法合并序列子集的比对结果时,最后合并仅能由一个核执行,合并的时间会随着序列的数目慢慢增大。
[0089]在两种测试例下本发明所述方法CDAM的各核的运行时间(图3)、比对精度(图4)、和加速比(图5)。
[0090]图3列出了基于WCi) ~ NXL这种假设的计算机内核的运行时间。对比图中各个核的运行时间可以得出,各个核的运行时间大致相同,取得了较好的负载平衡。因此,本发明选择t (Ci) OC NXL作为LPT算法中运行时间的计算依据。
[0091]各类CDAM与方法MUSCLE的比对精度对比如图4所示。从图4可以看出,各CDAM方法取得了与方法MUSCLE接近的比对精度。“一”表示该CDAM程序不能比对该项数据,这是因为BLASTClust算法在聚类时将PREFAB4.0的序列标识(一个字符串)改变成了另一个名称,使得CDAM算法在比对时找不到相应的序列,CDAM(BLASTClust)不能正常比对PREFAB4.0。另外,由于CLUSS程序中存在的错误,CDAM(CLUSS)不能比对OXBenchl.3。
[0092]CDAM(UCLUST)与MUSCLE的加速比如图5所示。从图中可以看出,当序列数目少于6000时,CDAM(UCLUST)表现了超线性加速。当序列数目大于6000时,加速比呈下降趋势,但使用8个核的加速比仍达150。
[0093]实验结果表明,另外,结合图3 - 5可知,LPT分配方法能根据序列子集的运行时间分配任务,能达到各核的运行时间的基本一致。CDAM方法在维持与方法MUSCLE接近的比对精度的同时,最大能获得219倍的速度提升。随着比对序列集合的增加,数据并行策略的优势不断扩大,CDAM方法的优势将更为明显。本发明为高吞吐量的基因时代提供了一种高效处理序列比对数据的方法。
【权利要求】
1.一种运行于多核计算机平台的并行通用序列的比对方法,其特征在于,首先应用聚类方法对待比对序列集合以已知功能序列作为聚类中心进行划分得到多个序列子集;然后将多个序列子集分配到各计算机核上独立地与各自的聚类中心进行比对,得到序列子集的比对结果;最后应用渐进式方法对序列子集的比对结果进行合并,得到待比对序列集合的比对结果矩阵A,完成序列比对; 所述矩阵A满足以下条件: (1)矩阵A中的元素aij;aij e Σ U {.}; 其中,Σ表示生物序列字母表,若为DNA序列,则Σ = {A、C、G、T};若为蛋白质序列,则Σ为20个简单氨基酸分子;{.}表示在序列比对过程中插入的空格; (2)若删除空格,矩阵A中的行=anai2…an(l彡i彡η)即为待比对序列集合中的某一序列; (3)矩阵A中不存在全为空格的列。
2.根据权利要求1所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述将序列子集分配到各计算机核上独立地进行比对的具体过程如下: 1)计算每个序列子集Ci所需的比对时间t(Ci),i表示第i个序列子集; 2)根据序列子集的比对时间,以各个核的负载平衡为分配目标,采用最长处理时间优先的启发式序列子集分配方法,将序列子集分配到各个计算机核上执行比对操作。
3.根据权利要求2所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述序列子集所需的比对时间计算方法包括以下两种: Dt(Ci) ο- NXL,比对时间t (Ci)正比于NXL ;
2)t (Ci) ο- aN4+bNL2,比对时间 t (Ci)正比于 aN4+bNL2 ; 其中,其中N和L分别为序列子集Ci所包含的序列数目和所有序列的平均长度; a和b均为拟合系数,从序列相似度在90%以上的已知序列中,随机挑选序列构建序列子集,利用现有比对工具获得序列子集的比对时间,采用最小二乘法进行非线性数据拟合求得a和b。
4.根据权利要求2所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述最长处理时间优先的启发式序列子集分配方法具体过程如下: 步骤1:将多个序列子集IC1, C2,…,CJ按序列子集的比对时间进行非升序排列,即WC1) ^ t (C2)彡,…,彡 t (Cx); 步骤2:令% = Φ,Lj = 0,其中,%是J的子集,Lj是Uj中所有子集的比对时间之和,j = 1,2,......,m,m表示计算机核数; 步骤3:令i = I, U1(m) = Um, L1(m) = Lm, Uiw表示序号为m的计算机核上所分配的序列子集的集合;
步骤 4:U1(1) = U1⑴ U Ci, L1 ⑴=L1⑴ U t (Ci),并将 U1 ⑴,U1(2),......,U1(m)按照 L1(m)的大小进行非降序排列,得到新的U, 1(1),U I ⑵,......,U Km); 步骤5:将U' 1(m)赋值给U1 (m),使得 Li ⑴ < L1 ⑵......,< L1 (m); 步骤6:判断i是否为X,若不是,则i = i+Ι,返回步骤4 ;若是,则按照Ι-m的顺序将Uiw依次分配到序号为Ι-m的核上进行序列比对。
5.根据权利要求1-4任一项所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述聚类方法为Cd-hit和UCLUST。
6.根据权利要求1-4所述的运行于多核计算机平台的并行通用序列的比对方法,其特征在于,所述应用渐进式方法对序列子集的比对结果进行合并是指: 首先进行核内的序列比对,然后进行核与核之间的序列比对,直到得到η条序列的比对结果; 其中,序列比对的顺序按照序列所在序列子集的编号和核编号从小到大的顺序。
【文档编号】G06F19/00GK104239732SQ201410491798
【公开日】2014年12月24日 申请日期:2014年9月24日 优先权日:2014年9月24日
【发明者】李肯立, 朱香元, 唐卓, 徐雨明, 李克勤, 肖正 申请人:湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1