I am having trouble trying to understand how GISTIC discretize copy number variation to values -2, -1, 0, 1, 2. I am using TCGA copy number variation for ColoRectal Adenocarcinoma.

In cBioPortal FAQ it is written that:

For TCGA studies, the table in all_thresholded.by_genes.txt (which is the part of the GISTIC output that is used to determine the copy-number status of each gene in each sample in cBioPortal) is obtained by applying both low- and high-level thresholds to to the gene copy levels of all the samples. The entries with value +/- 2 exceed the high-level thresholds for amps/dels, and those with +/- 1 exceed the low-level thresholds but not the high-level thresholds. The low-level thresholds are just the 'amp_thresh' and 'del_thresh' noise threshold input values to GISTIC (typically 0.1 or 0.3) and are the same for every thresholds.

By contrast, the high-level thresholds are calculated on a sample-by-sample basis and are based on the maximum (or minimum) median arm-level amplification (or deletion) copy number found in the sample. The idea, for deletions anyway, is that this level is a good approximation for hemizygous given the purity and ploidy of the sample.

The low-level thresholds are quite clear, while the high-level threshold not (the ones used to label +/-2 values).

I tried to reverse engineer the discretization function (the cutoffs are not available on firebrowse). The best solution I found is, for each sample, to:

  • split the copy number values in two groups (amplified - positive values, deleted - negative values)

  • for each group (amplified - deleted)

    • compute the median copy number value inside each chromosome arm
    • take the maximum (minimum for deleted group) median value across arms and use it as higher (lower) threshold

I tested it using the files:

  • all_data_by_genes.txt
  • all_thresholded.by_genes.txt

trying to get the correct discretized value (-2, -1, 0, 1, 2) of the second file from the first. However, a small part of the values are not correctly mapped. Am I missing something?


1 Answer 1


The best solution is to use only the broad alterations, using the file broad_values_by_arm.txt.

In particular, for each sample, the highest threshold is computed as the sum of the noise (low-level) threshold (e.g. 0.1) plus the maximum value of copy number variation for the sample over all the arms. Similarly, the lowest threshold is the minimum value for the sample over all the arms plus the negative noise (low-level) threshold (e.g. -0.1).

  • $\begingroup$ if: Total copy number (major + minor allele copy number by SCAT R) for SMAD4 in a sample = 4 Th estimated ploidy by SCAT for this sample = 4.043696 So, the segment mean (required for GISTIC) for SMAD4 = log2(2/4.043696) = -1.015675 If I put -td threshold in GISTIC as 1.25, do I miss this loss for SMAD4 in GISTIC output because this is > -1.015675? In the other word, does -td = 1.25 is the same when I ignore any segment mean < -1.25? $\endgroup$
    – Zizogolu
    Commented Mar 25, 2020 at 6:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .