Table 2.
tensorQTL |
LiteQTL |
|||||||
---|---|---|---|---|---|---|---|---|
Full matrix |
Filtered P-value |
Full matrix |
Filtered max |
|||||
CPU only | CPU and GPU | CPU only | CPU and GPU | CPU only | CPU and GPU | CPU only | CPU and GPU | |
Data transfer | 0.015 | 0.561 | 0.018 | 0.069 | 0.000 | 0.660 | 0.000 | 0.020 |
Core computation | 0.940 | 0.055 | 1.601 | 0.029 | 1.022 | 0.054 | 0.536 | 0.030 |
Post processing | 9.865 | 8.060 | 0.777 | 0.719 | 0.000 | 0.785 | 0.000 | 0.030 |
Elapsed | 10.820 | 8.676 | 2.396 | 0.817 | 1.022 | 1.499 | 0.536 | 0.080 |
Full matrix timings are done without any filtering threshold. Filtering threshold is different for tensorQTL and LiteQTL. For tensorQTL, the MAF (Minor Allele Frequency) threshold is 0.05, and the P-value threshold is . For LiteQTL, the MAF threshold is 0.05, and the maximum LOD score for each transcript. The main conclusion is that the core computation and data transfer between tensorQTL and LiteQTL is very similar. The difference lies in post processing, which varies a lot depending on filtering threshold, and user-defined output.