Retrieving Official Gene Symbols From Full Length Protein Names Automatically
5
5
Entering edit mode
13.2 years ago

Hi,

I have a list of a few hundred protein names and I would like to be able to retrieve their names automatically. For example:

  • Dihydroorotate dehydrogenase, mitochondrial precursor
  • ubiquitin-protein ligase
  • AP-2 complex subunit mu-1-A
  • Proliferation-associated protein 2G4

Becomes:

  • Dhodh
  • Rnf19a
  • Ap2m1
  • MRPL4

I am presently using UniProtKB manually, but I would very much like to automatize it. Would anyone have a suggestion about the following:

  • What database to use?
  • What approach/program/package to query it?
  • Online vs. downloading the database?
  • Any other means of doing this?

I don't mind having to write a parser for a database if needed, but I don't know what source to start with.

Thanks!

annotation protein gene conversion • 4.1k views
ADD COMMENT
0
Entering edit mode

I think a better title for this question might be "Retrieving official gene/protein symbols from full length gene/protein names automatically"

ADD REPLY
0
Entering edit mode

@Casey: Done :)

ADD REPLY
0
Entering edit mode

Thank you all for your comments and suggestions! Having the latest hot computer --> 2500$; One full run of 454 sequencing --> 6000$; Biostar Forum --> Priceless ;)

ADD REPLY
10
Entering edit mode
13.2 years ago

You can use the STRING API for this, like so:

echo "Dihydroorotate dehydrogenase, mitochondrial precursor" | \
xargs -i wget -nv -O - \
'http://stitch.embl.de/api/tsv-no-header/resolve?identifier={}&species=9606&echo_query=1' \
>; protein_names.tsv

which gives you, among the Ensembl id, also the gene name DHODH:

Dihydroorotate dehydrogenase, mitochondrial precursor   9606.ENSP00000219240    9606    Homo sapiens    DHODH   Dihydroorotate dehydrogenase, mitochondrial precursor (EC 1.3.3.1) (Dihydroorotate oxidase) (DHOdehase)

Plus, now you have valid STRING identifiers you can use to query the network. :-)

ADD COMMENT
0
Entering edit mode

Thanks for this method, Micheal. I'll finish my boring manual annotation and will test against the results obtained with the STRING API. I'll try to automatize extraction of the results in the numerous cases where there are many, but that may be tricky. This may end up being 'Computer assisted manual annotation' :)

ADD REPLY
0
Entering edit mode

This is actually what I did a while ago when mapping a set of protein names (extracted from a collaborators Excel table...): pipe all names into the API, and then edit the protein_names.tsv file to prune mismatches.

ADD REPLY
3
Entering edit mode
13.2 years ago

Good question because this is a common task. In fact, it would be nice if someone could make available their table mapping protein name to gene/protein symbol because the task does not need to be repeated. I could definitely use this for human, mouse and rat.

You could try the HUGO / HGNC site for a list of the accepted or official names and symbols.

ADD COMMENT
1
Entering edit mode

The mapping tables that are used by STRING in the solution by Michael Kuhn are freely available from the STRING download page :-)

ADD REPLY
0
Entering edit mode

Thank you, Lars. This is exactly what I meant - and not knowing of the resource creates an obstacle to my work moving forward. That's solved!

ADD REPLY
2
Entering edit mode
13.2 years ago

The following java program use NCBI-Utilities to query the Gene database.

If only one item is found, it prints the official gene symbol to stdout.

Else there is an ambiguity: it displays an interactive table and asks the user to select the correct row.

Compilation:

javac Biostar5460.java

Execution:

java Biostar5460 "Dihydroorotate dehydrogenase, mitochondrial precursor" "ubiquitin-protein ligase" > output.tsv
ADD COMMENT
2
Entering edit mode
13.2 years ago

For some species, like D. melanogaster, there are look-up tables between full-length gene/protein name synonyms and their gene symbols that you could try to parse directly.

More generally, I think your problem is the same as the gene/protein name normalization (GNN) problem, which is currently a matter of active research in the text mining community. If so, then it appears there is no current solution to resolve full length gene/protein names to database identifiers and thence to official gene IDs, as in your case.

The state of the art methods in gene/protein name normalization problem are GNAT and geneTUKit, but they still may not do as well as you like. I also suspect that the same problems experienced by GNN will be experienced by the solutions proposed by Pierre and Michael (which I think are nevertheless both valid and worth trying). For example, running Michael's STRING approach yields the following promising, but not bullet-proof, results:

num_hits  official_name_found   full_gene_name 
1         Dhodh found           Dihydroorotate dehydrogenase, mitochondrial precursor 
193       Rnf19a not found *    ubiquitin-protein ligase 
3         Ap2m1 found           AP-2 complex subunit mu-1-A
1         MRPL4 not found       Proliferation-associated protein 2G4

* several other RNF family members found

Thus you may not get a single hit or the desired gene name with this approach or any other. Unfortunately, inherent variability in gene/protein name usage may be the enemy in the search for a fully automated solution to this problem.

ADD COMMENT
2
Entering edit mode
13.2 years ago
Neilfws 49k

It's good to learn that there are resources like STRING which can help solve this common problem.

I would just make a general point: "names" are inherently ambiguous. Not just because there are many - even many synonyms for one object - but because of factors beyond your control: misspelling, erratic use of upper versus lower case and so on. This makes any kind of name-based search very difficult, which is why identifiers (accessions, official symbols) are preferred. It's often easier to query using IDs and retrieve names than the other way around.

ADD COMMENT

Login before adding your answer.

Traffic: 1883 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6