| Quantitative traits play an important role in most traits of animals and plants.Genome-wide association analysis(GWAS)is an effective method to analyze these complex quantitative traits,which is widely used in the genetic analysis of animals,plants and humans.Therefore,it is very important to study GWAS methods and develop software for these methods.In recent years,more and more applications of GWAS have been conducted with the advancement of sequencing technology.At present,the common GWAS methods are mainly single-marker genome-wide scanning,and there are few reports on the QTN × QTN interaction(QQI)detection.However,QQI is an extremely important genetic basis for quantitative traits.Recently,our laboratory proposed a new method 3Vmr MLM for the detection of main effect QTNs,QTN × environment interactions and QQIs.In order to make the application workers more convenient to use the 3Vmr MLM method,our laboratory has developed the R software package IIIVmr MLM.My subject is based on the 3Vmr MLM method to rewrite the QQI detection module of the R software package IIIVmr MLM into a C++ software package module.In order to improve the calculation speed,relevant computer technologies are used,such as bit operation,high-performance matrix operation library and parallel processing.Monte Carlo simulation and real rice dataset are used to verify the correctness of the C++ software module.The main results are as follows:1)Use C++ language and several computer technologies to develop IIIVmr MLM software module for QQI detection.Firstly,the software module introduces a highly optimized BOOST program library and uses BOOST’s binary bit operation to speed up the computation of sparse matrices.Secondly,the C++ software uses Open MP technology and Eigen linear algebra library for the calculation of kinship matrix and single-marker scanning stage.Besides,this C++ module implements block computing and parallel processing,and changes the single-core computing to a multi-data stream parallel computing structure which can make full use of the central processing unit and greatly reduce computation time.Finally,the C++ software uses QT framework to realize the separation of interface design and calculation functions.This method can not only ensure the security of the code,but also complete the design of a concise graphical user interface.Users can upload data sets by clicking the mouse,and select the corresponding calculation module to complete the association analysis,which significantly reduces the threshold for using the software module.2)In personal computer,Monte Carlo simulation datasets and real rice datasets are carried out to test the performance and accuracy of the C++ software module for QQI detection.QQI detection module of C++ and R software are used to analyze the simulation datasets with dimensions of 200 markers × 400 individuals,578 markers × 262 individuals,1000 markers × 400 individuals,and 3000 markers × 200 individuals.The results show that the C++ software module takes 13,38,117,and 548 seconds,and the R software takes 30,172,717,and 4462 seconds,respectively.Then using the C++ software to analyze the real datasets of rice grain number and panicle length trait with dimensions of 15943 markers × 1439 individuals.The results show that the C++software module takes 47878 and 43687 seconds respectively,and the R software module takes 122764 and 134206 seconds respectively.This shows that the calculation speed of C++ software is significantly higher than R software,which can greatly reduce the calculation time.Use C++ and R software package modules analyzing the above two sets of simulated datasets of 1000 markers × 400 individuals,3000 markers × 200 individuals and the real rice dataset.The results show that: 1)In the simulated datasets,the C++software module detected 7 and 2 main-effect QTNs,and 16 and 17 pairs of QQIs respectively;the R software package detected 7 and 2 main-effect QTNs,and 15 and17 pairs of QQIs;the main-effect QTNs and QQIs detected by the C++ software package module include all of the main-effect QTNs and QQIs detected by the R software package module,and the same main-effect QTNs and QQIs detected by the two software packages are in the same location,and their types of significance are exactly same,but their LOD values,P values and effect estimates differed at the 1e-3level.The above-mentioned data sets of grain number and panicle length are analyzed,and the results showed that: the C++ software package module detected 4 and 7main-effect QTNs,and 33 and 33 pairs of QQIs respectively;the R software package module also detected 4 and 7 main-effect QTNs,and 33 and 33 pairs of QQIs,respectively;the positions of each main-effect QTNs and QQIs detected by the C++and R software modules are consistent,and their types of significance are exactly the same,but the corresponding LOD values,P values and effect estimates are different at the 1e-4 level.This shows that the C++ software module detection results and effect estimates are almost consistent with the R software module results,ensuring the correctness of the C++ software package module.The difference in the results of the R and C++ software package modules is mainly due to the different implementation of the Newton iteration function between different programming languages.In conclusion,the C++ version of QQI detection module in the IIIVmr MLM software package provides a new tool for QQI detection of quantitative traits in GWAS,and provides conditions for further analysis of the genetic basis of quantitative traits. |