TCGA provide CNV data for each cases like this.

I want to know, how can I calculate CNVs from this data? What are standard algorithms and methods used?

  • $\begingroup$ Hi. The link your provided cannot be accessed any more. Can you provide information about what or which files did you use to extract CNVs? $\endgroup$ Commented Aug 13, 2019 at 6:17

3 Answers 3


Copy number variation (CNV) has traditionally been detected in the wet lab via FISH, fluorescent in-situ hybridization. By combining targeted DNA oligos to fluorescent reporter proteins, a region with high CNV will "glow more brightly" than a region that doesn't have as many repeats.

More recently, with next-generation sequencing, a common approach is to align sequencing reads to the reference genome. If a particular region in the sequenced sample has a large CNV, then there should be disproportionately many reads (2x, 3x, etc) reads mapping to the CNV locus in the reference genome compared to the rest of the genome.

For example, if our sequenced sample has a 3-CNV for region B:


then aligning our sequenced reads to the reference genome, which is:


will yield 1x coverage at region A, 3x coverage at region B, and 1x coverage at region C.

There are, of course, more sophisticated approaches. For a good review, refer to http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0059128

  • $\begingroup$ Thanks for the reply. In my link of TCGA, each CNV file contains a column num_probes, do you know what does this column means or what would be the interpretation of this column? $\endgroup$ Commented Apr 8, 2017 at 6:47
  • $\begingroup$ Yes - the data are most likely from high resolution SNP chip arrays (mostly affymetrix) , and these have probes for specific genomic coordinates. The intensities then get combined into distinct segments with similar copy number estimates to produce the segmented files you have. The number of probes on the array that lie in a given segment is the num_probes column. What particularly are you planning to do in terms of downstream analyses? $\endgroup$ Commented Apr 9, 2017 at 7:02

The files you're referencing are completely processed files in the SEG format. The basic files are calculated using both germline and somatic CNV, whereas files denoted nocnv are only somatic (the numbers will differ because they are calculated either together or not together, so don't mix and match).

Among many tools you can use IGV from Broad Instutute to view SEG files at somewhat of a high level, or you can use various R packages i.e. Bioconductor to do your own analysis. You will probably need to do this anyways to annotate the gene names to the data. You can find somewhat of a how-to here or here. IGV will know what genes it's looking at based on chromosome assembly, and you can open it rather easily using java web start. I'm far from an expert, however.

Beyond that, you do need to make some additional considerations based on your expertise. For example, in this article, the authors set cutoffs for INDELS by filtering out seg.mean values between -0.2 and 0.2 (ref). They also filter out any markers for which 'num.mark' < 10, where 'num.mark' is the number of actual affymetrix probes detected, to account for false positives.

And so what you're left with then is the chromosome, the segment the probe spans, and the log2 mean of the microarray intensities calculated. So for that region of the chromosome, loc.start to loc.end, a seg.mean of 2 would mean 4-fold change in copy numbers over the reference for that region.

I think the take home point is the leg work on the data has been done, and level 3 TCGA data like .seg files are ready-to-go sources of CNV data. You significant tasks will be annotating, visualizing and assigning biological/statistical significance to your data.

  • $\begingroup$ Thanks for nice explanation. Just to clarify, should I ignore the data if num_probes < 10 OR segment_mean between -0.2 and 0.2? $\endgroup$ Commented Apr 10, 2017 at 19:46
  • 1
    $\begingroup$ It depends on what you're intending to analyze. If you have a significant segment mean but barely any probes, it could just be noise or an actual SNP as opposed to a CNV. Then for segment means, they set cutoffs: If your mean is below your reference, it could be a deletion (negative expression), and you aren't analyzing deletions. They chose >0.2 because anything lower may be noise or no amplification (you could argue different numbers. The idea would be to filter for BOTH to obtain high-quality data. $\endgroup$
    – CKM
    Commented Apr 10, 2017 at 21:24

Also consider , in addition to CMosychuk's suggestions, sticking things through ABSOLUTE (particularly if you also have a mutation MAF file, which you can grab from the MC3 project on SAGE Synapse). The advantage of this is the ability to estimate and account for purity and derive absolute copy number values. EXPANDS is another R package that can do absolute copy number estimation.

  • $\begingroup$ What is absolute copy number? How it would be helpful? Sorry, I am from computer background $\endgroup$ Commented Apr 10, 2017 at 17:47
  • $\begingroup$ Usually copy number data is relative, you get a ratio in terms of tumour vs normal; this does not tell you how many copies of a given gene are actually present in a tumour, and if so, in how many cells in a tumour. Absolute copy number is the actual number of copies per cell. ABSOLUTE builds a probabilistic model and fits combinations of purity and ploidy to derive absolute copy number. $\endgroup$ Commented Apr 29, 2017 at 19:58

You must log in to answer this question.

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