A method of assigning a relative risk of adverse clinical outcome to a prostate cancer patient, comprising: (a) measuring, in a biological sample containing cancer cells obtained from the patient, levels of RNA transcripts of the following genes: BGN, COL1A1, SFRP4, FLNC, GSN, TPM2, GSTM2, FAM13C, KLK2, AZGP1, SRD5A2, and TPX2; (b) normalizing the levels of the RNA transcripts of the genes to obtain normalized gene expression levels; (c) calculating a quantitative score for the patient, wherein the quantitative score is calculated as follows, wherein the gene symbols below represent the normalized gene expression levels for each respective gene: (i) calculating an unscaled quantitative score (QSu) as follows: QSu = 0.735 * Stromal Response group score − 0.368 * Cellular Organization group score − 0.352 * Androgen group score + 0.095 * Proliferation group score Where: The Stromal Response group score = 0.527 ∗ BGN + 0.457 ∗ COL1A1 + 0.156 ∗ SFRP4 The Cellular Organization group score = 0.163 ∗ FLNC + 0.504 ∗ GSN + 0.421 ∗ TPM2 + 0.394 ∗ GSTM2 The Androgen group score = 0.634 ∗ FAM13C + 1.079 ∗ KLK2 + 0.642 ∗ AZGP1 + 0.997 ∗ SRD5A2 Thresh The Proliferation group score = TPX2 Thresh where the SRD5A2 Thresh and TPX2 Thresh are calculated via thresholding as follows: SRD5A2 Thresh = { 5.5 if SRD5A2 < 5.5 SRD5A2 otherwise TPX2 Thresh = { 5.0 if TPX2 < 5.0 TPX2 otherwise (ii) calculating a scaled quantitative score where: QS scaled { 0 13.4 × QSu + 10.5 100 if 13.4 × QSu + 10.5 < 0 if 0 ≤ 13.4 × QSu + 10.5 ≤ 100 if 13.4 × QSu + 10.5 > 100 (d) assigning the patient to a quantitative score group, wherein (i) the patient is assigned to a lower score group if the patient's QS is ≤ a threshold of 18, 19, 20, 21, or 22; and (ii) the patient is assigned to a high score group if the patient's QS is ≥ a threshold of 38, 39, 40, 41, or 42; and (iii) the patient is assigned to an intermediate score group if the patient's QS is >a threshold of 18, 19, 20, 21, or 22 and if the patient does not fall within the high score group. (a) measuring, in a biological sample containing cancer cells obtained from the patient, levels of RNA transcripts of the following genes: BGN, COL1A1, SFRP4, FLNC, GSN, TPM2, GSTM2, FAM13C, KLK2, AZGP1, SRD5A2, and TPX2; (b) normalizing the levels of the RNA transcripts of the genes to obtain normalized gene expression levels; (c) calculating a quantitative score for the patient, wherein the quantitative score is calculated as follows, wherein the gene symbols below represent the normalized gene expression levels for each respective gene: (i) calculating an unscaled quantitative score (QSu) as follows: QSu = 0.735 * Stromal Response group score − 0.368 * Cellular Organization group score − 0.352 * Androgen group score + 0.095 * Proliferation group score Where: The Stromal Response group score = 0.527 ∗ BGN + 0.457 ∗ COL1A1 + 0.156 ∗ SFRP4 The Cellular Organization group score = 0.163 ∗ FLNC + 0.504 ∗ GSN + 0.421 ∗ TPM2 + 0.394 ∗ GSTM2 The Androgen group score = 0.634 ∗ FAM13C + 1.079 ∗ KLK2 + 0.642 ∗ AZGP1 + 0.997 ∗ SRD5A2 Thresh The Proliferation group score = TPX2 Thresh where the SRD5A2 Thresh and TPX2 Thresh are calculated via thresholding as follows: SRD5A2 Thresh = { 5.5 if SRD5A2 < 5.5 SRD5A2 otherwise TPX2 Thresh = { 5.0 if TPX2 < 5.0 TPX2 otherwise (ii) calculating a scaled quantitative score where: QS scaled { 0 13.4 × QSu + 10.5 100 if 13.4 × QSu + 10.5 < 0 if 0 ≤ 13.4 × QSu + 10.5 ≤ 100 if 13.4 × QSu + 10.5 > 100 (i) calculating an unscaled quantitative score (QSu) as follows: QSu = 0.735 * Stromal Response group score − 0.368 * Cellular Organization group score − 0.352 * Androgen group score + 0.095 * Proliferation group score Where: The Stromal Response group score = 0.527 ∗ BGN + 0.457 ∗ COL1A1 + 0.156 ∗ SFRP4 The Cellular Organization group score = 0.163 ∗ FLNC + 0.504 ∗ GSN + 0.421 ∗ TPM2 + 0.394 ∗ GSTM2 The Androgen group score = 0.634 ∗ FAM13C + 1.079 ∗ KLK2 + 0.642 ∗ AZGP1 + 0.997 ∗ SRD5A2 Thresh The Proliferation group score = TPX2 Thresh where the SRD5A2 Thresh and TPX2 Thresh are calculated via thresholding as follows: SRD5A2 Thresh = { 5.5 if SRD5A2 < 5.5 SRD5A2 otherwise TPX2 Thresh = { 5.0 if TPX2 < 5.0 TPX2 otherwise The Stromal Response group score = 0.527 ∗ BGN + 0.457 ∗ COL1A1 + 0.156 ∗ SFRP4 The Cellular Organization group score = 0.163 ∗ FLNC + 0.504 ∗ GSN + 0.421 ∗ TPM2 + 0.394 ∗ GSTM2 The Androgen group score = 0.634 ∗ FAM13C + 1.079 ∗ KLK2 + 0.642 ∗ AZGP1 + 0.997 ∗ SRD5A2 Thresh The Proliferation group score = TPX2 Thresh (ii) calculating a scaled quantitative score where: QS scaled { 0 13.4 × QSu + 10.5 100 if 13.4 × QSu + 10.5 < 0 if 0 ≤ 13.4 × QSu + 10.5 ≤ 100 if 13.4 × QSu + 10.5 > 100 (d) assigning the patient to a quantitative score group, wherein (i) the patient is assigned to a lower score group if the patient's QS is ≤ a threshold of 18, 19, 20, 21, or 22; and (ii) the patient is assigned to a high score group if the patient's QS is ≥ a threshold of 38, 39, 40, 41, or 42; and (iii) the patient is assigned to an intermediate score group if the patient's QS is >a threshold of 18, 19, 20, 21, or 22 and if the patient does not fall within the high score group.