2
$\begingroup$

Subchains view.

I'm trying to programmatically construct a name for each protein subchain in any ribosome from Uniprot in accordance with Ban et. al's 2014 proposal (excerpt given below) using PDB's and Uniprot's APIs. This is to be a part of a bigger ribosomal analysis suite released next year and we would like to standardize the names as much as possible. Ban et. al's proposal: [https://bangroup.ethz.ch/research/nomenclature-of-ribosomal-proteins.html]


I'm however not remotely a biologist (I work in compilers) and would really appreciate some clarification on the way nomenclature works across domains of life and how homology plays into it. This is my naive approach thus far:

  • I get a ribosome from PDB let's say (3J9M or 5MYJ or any other for that matter) and split it into protein subchains. So on the order of 20-80 proteins.
  • For each protein subchain, I can get all the information in the world on it from Uniprot: names, sequence, organisms containing it, publications, synonymous names, you name it...
  • Right now (again, naively) for those proteins that don't already have a new name assigned to them, I take name-synonyms that PDB has plenty of (from various publications, I assume) and scan them with regexes (ex./[LS]\d{1,2}/g) for things like "L8" or "S15".
  • Thus, for each subchain, I end up with something like "L15" or "S28" in multiple copies (depending on the abundance of synonymous entries in PDB).
  • The rut i'm in right now is this: having something like "L15" to match it to a new "Ban-nomenclature" name: they provide the nomenclature look-up tables in terms of these three "historical" naming conventions(i.e "human", "yeast", "bacteria") and a taxonomic range while all the I have is the ribosomal structure(ex `` from which I got the subchain. I'm sure there's plenty of information that I can get

Could somebody elucidate to me which assumptions I can and cannot make in this field and how exactly to use the taxonomic range?

Say, (i) can I assume that all archean names are the same as bacterial homologs? If I draw a eukaryotic cytoplasmic ribosome, do I match its subchains against yeast column or human column (since both are eukaryotic)?


Somebody suggested that I start grouping these subchains based on sequence, not on a domain and I do have access to each protein's sequence, but I am not sure how to go about it. I was thinking to get each of Ban's new names' UniRef90 cluster, let's say, and then start checking which cluster a given subchain belongs to.

But I'm obviously guessing at this point. Any advice or pointers are very appreciated.

Excerpt from Ban

$\endgroup$
  • 1
    $\begingroup$ Uniprot90 is too limited, you'll likely get better results from pfam id (domain family annotation) —that is, part of your proteins will be annotated in a group and fusion protein (if any) will have two annotations. Alternatively, (original) COG groupings are really handy for this but aren't available from Uniprot. Then there's always the option of making your own psi-Blast motif on the NCBI website (there's a tactic to it for best results though) and using local blast with it. $\endgroup$ – Matteo Ferla Jan 6 at 8:05
  • $\begingroup$ @MatteoFerla thanks a ton, this is super informative! A bit too dense, actually. Rolling with your first suggestion: as i understand it, a "new name" (ex. "uS15") would be represented by a Pfam-group of homologs and then for a given protein with an old-name i would track it to its Pfam group? $\endgroup$ – tractatusviii Jan 6 at 22:36
  • 1
    $\begingroup$ Yes. Correct. What you are trying to do is find what genes are in what cluster, which is straightforward. You have given a researched questions as per guidelines, however, there is honestly too much to read for my lazy self (I skimmed and do not care to read the paper, which from the title reminds me of the XKCD about standard), so I am bound to be missing something. But here are my thoughts of 4 pitfalls: (cont'd) $\endgroup$ – Matteo Ferla Jan 6 at 23:56
  • 1
    $\begingroup$ (A) you may have two protein clusters that have a single PFAM, (B) you have gene fusions (one protein, 2 domains of interest), (C) the a names are meant to cover analogues, i.e. two protein that arose independently that have the same role (a lot of ribosomal protein are simply structural), (D) you have a very small protein which is poorly conserved, (E) a bacterium has evolved to have a different protein with that role, yet as it has never been studied it is a domain of unknown function (guilt by association is the common strategy, but that is beyond your scope here). $\endgroup$ – Matteo Ferla Jan 6 at 23:59
  • 1
    $\begingroup$ @MatteoFerla you're today's hero. Thank you very much, this well captures it even without the paper. $\endgroup$ – tractatusviii Jan 7 at 4:58
1
$\begingroup$

This is a copy-paste nearly verbatim of comments so that the question has an answer

What you are trying to do is find what genes are in what homology cluster. This is common problem and there are many solution each with some issues.

Uniprot90 is indeed a cluster of homologues but it is too limited. Whereas you require clusters that span all the domains (universal).

COG

The nearly original grouping, is COG (cluster of orthologous genes). It is really handy for this but aren't really available from Uniprot and NCBI (its curator) has been phasing COGs out. In Uniprot records, they are patchily present as its derivative eggNOG (which has varying degrees of "scope", LUCA being the universal one):

<dbReference type="eggNOG" id="COG0451">
<property type="taxonomic scope" value="LUCA"/>
</dbReference>

Pfam

Another option that is well mapped and always present when possible in Uniprot entries is Pfam ids. These are domain family annotations and are also good option. It is a domain fold group. So domains within protein with homologous folds are grouped into one. If a protein has two known domains, it will have two Pfam entries —repeat proteins have loads, but most protein have one domain. In Uniprot XML you will find these are:

<dbReference type="Pfam" id="PF01370">

Similarly there is InterPro, which is more narrow than Pfam, but generally overlaps.

DIY

Then there's always the option of making your own psi-Blast motif on the NCBI website (setting high number of hits, setting the database to refseq or even PDB and doing a few iterations), saving the motif pattern (PSSM) and using local blast with it.

Caveats

In general you may however encounter these pitfalls:

  1. you may have two protein clusters that share a single id
  2. you have gene fusions (one protein, 2 domains of interest). In Pfam the protein will have two ids, with COGs or similar, you'd have only an anamalous length to go by.
  3. you may have wished to find analogues (i.e. two protein that arose independently that have the same role (a lot of ribosomal protein are simply structural). No homology clustering scheme can find these. Say a bacterium has evolved to have a different protein with that role, yet as it has never been studied it is a domain of unknown function (guilt by association is the common strategy, but that is beyond your scope here).
  4. you have a very small protein which is poorly conserved
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.