| Literature DB >> 29086161 |
Alioune Schurz1, Bo-Han Su2, Yi-Shu Tu1, Tony Tsung-Yu Lu1, Olivia A Lin1, Yufeng J Tseng3,4,5.
Abstract
GPU acceleration is useful in solving complex chemical information problems. Identifying unknown structures from the mass spectra of natural product mixtures has been a desirable yet unresolved issue in metabolomics. However, this elucidation process has been hampered by complex experimental data and the inability of instruments to completely separate different compounds. Fortunately, with current high-resolution mass spectrometry, one feasible strategy is to define this problem as extending a scaffold database with sidechains of different probabilities to match the high-resolution mass obtained from a high-resolution mass spectrum. By introducing a dynamic programming (DP) algorithm, it is possible to solve this NP-complete problem in pseudo-polynomial time. However, the running time of the DP algorithm grows by orders of magnitude as the number of mass decimal digits increases, thus limiting the boost in structural prediction capabilities. By harnessing the heavily parallel architecture of modern GPUs, we designed a "compute unified device architecture" (CUDA)-based GPU-accelerated mixture elucidator (G.A.M.E.) that considerably improves the performance of the DP, allowing up to five decimal digits for input mass data. As exemplified by four testing datasets with verified constitutions from natural products, G.A.M.E. allows for efficient and automatic structural elucidation of unknown mixtures for practical procedures. Graphical abstract .Entities:
Keywords: GPU acceleration; Mass spectrum; Natural product; Structure elucidator
Year: 2017 PMID: 29086161 PMCID: PMC5602814 DOI: 10.1186/s13321-017-0238-7
Source DB: PubMed Journal: J Cheminform ISSN: 1758-2946 Impact factor: 5.514
Fig. 1The Algorithm 1 Kernel. The sharedMem variable is a pointer to the dynamically allocated shared memory. The push(X,y) function appends element y to array X and returns X. sort(X,R,i) returns the top R elements when the elements of X are sorted by their ith component. encode(X,s,y) writes the binary code of y at the sth offset of and returns X
Fig. 2Acceleration of G.A.M.E. relative to Su’s CPU DP as a function of the number of decimal digits, D. Each data point is obtained by averaging the running time of 1713 suitable scaffolds from the NPDBs. Fixed parameters: ThreadsPerBlock = 64
Fig. 3Running time of G.A.M.E. compared with Su’s CPU DP. Each bar was obtained by averaging the running time of the 500 different randomly selected scaffold configurations from the NPDBs, sharing the same number of threads per block. Fixed parameters: D = 5, w = 500
The percentage of feasible cases within all configurations of scaffolds of the NPDBs
| Number of decimal digits, | ≤5 | 6 | 7 |
|---|---|---|---|
| Proportion of feasible cases (%) | 99.28 | 32.94 | 1.06 |
The statistics were obtained from all scaffolds of the NPDBs. Fixed parameters: w = 500
Statistics on non-feasible cases
| Configurations with specific problem types | D ≤ 5 | D = 6 | D = 7 |
|---|---|---|---|
| Insufficient global memory (Supp. Eq. 1) | 0 | 34,209 | 50,646 |
| Compression impossible (Eqs. | 369 | 0 | 0 |
| Both problems | 0 | 369 | 369 |
| Total | 369 | 34,578 | 51,015 |
The statistics were obtained on the non-feasible configurations of Table 1. Fixed parameters: w = 500
Parameter constraints on the NVIDIA® Tesla K40c
| Resources | Constraints | Parameters |
|---|---|---|
| Target weight ( | ≤2499 Da |
|
| ≤749 Da |
| |
| Memory usage | 2.24 GB |
|
| 7.45 GB |
| |
| Number of threads per block ( | ≤512 |
|
| ≤256 |
| |
| ≤128 |
| |
| ≤64 |
| |
| ≤32 |
|
Fig. 4Acceleration of G.A.M.E. relative to Su’s CPU DP as a function of the number of decimal digits, D. Each data point is obtained by averaging the running time of 200 randomly sampled scaffolds and molecular mass combinations from the four natural products