Cbioportal: 'NA' in Entrez_Gene_Id in CNA data causing gene removal

Created on 15 Sep 2016  路  11Comments  路  Source: cBioPortal/cbioportal

In data_CNA.txt, if a gene has Hugo_Symbol but 'NA' in Entrez_Gene_Id col, this gene will be removed from the CNA mutation section for all samples (to be specific, the ones w/ CNAs ) on the cBioPortal. Leaving it blank in Entrez_Gene_Id is fine; the gene will go in.

help wanted

Most helpful comment

@zheins I agree we need to be consistent throughout the different formats 馃憤 It would be best if we deprecate logic like DaoGeneOptimized.guessGene() and use something new for all the Import... classes. This new approach could be in the form of two new well defined methods, e.g. getGeneByEntrezId() and getGeneByHugoSymbol() . Then getGeneByEntrezId() could return null if it is not a valid entrez, and we could fall back to getGeneByHugoSymbol()

All 11 comments

Indeed, I believe this is the convention we initially agreed on. Using NA to indicate that no gene information is available may lead to confusion (and incorrect loading and display of the data), as NA is a valid gene symbol: http://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id=HGNC:12811

This also applies to expression data and methylation data. RPPA data has a special case that says NA means that no gene symbol is available though, if I remember correctly this was necessary to load Firehose data.

Should we document this more clearly in File-Formats.md or do you propose to change the convention?

@fedde-s I think the issue is that NA is not a valid Entrez_Gene_Id, and as such should be allowed in that column. The correct behavior would be if NA is found in that column just look at the Hugo_Symbol instead.

Is this correct @chenh4?

@zheins: I have seen code, at least in DaoGeneOptimized, that attempts to a column as either an Entrez ID if it is numeric or as a symbol if not, not sure if that will lead to problems if we allow NA as a second way to express missing values.

If the Entrez ID is not missing but simply unknown to the Gene table of this portal installation, falling back on the gene symbol will sometimes load to the data as a different gene than was specified by the Entrez ID. That's why we agreed to ignore the symbol column if a value is given in the Entrez ID column.

@fedde-s that sounds like more of a data problem doesn't it? I would think you'd still want to check the symbol column in that case to try and salvage the record if the hugo symbol is valid. NA is pretty standard across our formats. If the entrez columns - which is supposed to be a number - has an NA in it, intuitively the import code should then try the hugo symbol.

The Gene table does vary between cBioPortal installations, as Entrez IDs are retracted and replaced over time as new insights are discovered, and gene symbols are revised and reused to refer to different genes. But if we can make sure that the column will never be parsed as a gene symbol, I would not mind adding NA as an alternative way to specify missing Entrez IDs in CNA, expression, and methylation data. Whether the column is consistent with the symbol column (which uses blanks) or with the data columns (which use NA) is up to the data curator then.

@zheins I agree we need to be consistent throughout the different formats 馃憤 It would be best if we deprecate logic like DaoGeneOptimized.guessGene() and use something new for all the Import... classes. This new approach could be in the form of two new well defined methods, e.g. getGeneByEntrezId() and getGeneByHugoSymbol() . Then getGeneByEntrezId() could return null if it is not a valid entrez, and we could fall back to getGeneByHugoSymbol()

Thanks all. @zheins, yes, if NA is found in that column just look at the Hugo_Symbol instead or replacing NA by a blank is also fine.

Is this still an issue, or can it be closed?

Was this page helpful?
0 / 5 - 0 ratings