[Bioperl-l] Polyproteins, ribo slippage, and mat_peptide in viruses?

Chris Larsen clarsen at vecna.com
Tue Oct 27 18:13:22 EDT 2009

Peter, Chris,

Thank you muchly for your expert and well presented dialog.  Yes here  
is an actual and typical problem in generating protein seq from viral  
polyproteins, in the absence of mat_peptide Seq and unique ID:

For record:


this is the coronavirus:
LOCUS       DQ848678               29277 bp    RNA     linear   VRL 12- 
DEFINITION  Feline coronavirus strain FCoV C1Je, complete genome.
VERSION     DQ848678.1  GI:112253723
Containing a poly protein 1ab where the ribosome stalls at 12358,  
backs up one nuc, changes frame, and then continues:
      CDS             join(311..12358,12358..20391)
                      /product="polyprotein 1ab"
and which has multiple, gigantic polyproteins, the child peptides  
towards whom we would actually love to focus our comparative  
bioinformatic scrutiny, but none of which have mappable IDs or seqs  
below the polyprotein level as can be seen:
      mat_peptide     15118..16914	<===
                      /product="nsp13"	<===
                      /note="helicase"  <==these are all we have to go  
and where are given no ID below the polyprotein level, no protein  
sequence...just positions. They are nuc positions at that, but we are  
given the complete polyprotein seq and have the components to do this  
on paper, but no code.  In summary we would like to dump in genbank  
files to a method, and get out fasta protein files which have some IDs  
and seqs.

You guys are forcing me (thank god) to think critically and clearly  
about it too, so let me extend the proposed module or method as best I  

Input offending Virus Genbank file
For each mat_peptide in a CDS
get nuc coords e.g. 15118..161914
translate it to aa
if slippage then stop translating at end of frame 1 and hold for later
now translate frame 2
$full_translation = $translation_part_1 . $translation_part_2
compare $full_translation to CDS translation e.g "/ 
if identical subsequence then admit as the real, valid mat_peptide  
Annotate with parent Unique ID+product name e.g. 112253723_helicase
go to next mat_peptide
concatenate products to a fasta amino acid file for whole virus  
isolate or CDS set for your virus


Chris L

> I think one could use the full-length protein and run TFASTX (which  
> allows frameshifts) against the nucleotide sequence.  The output  
> will have the frameshifts designated with '/' or '\', so it would  
> then be a matter of splitting the sequence based on the midline,  
> then mapping those protein fragments back to the original sequence  
> coordinates.  Is this along the lines of what you mean?
> chris

Let me look into this thank you CF, I have not used that in the past.

More information about the Bioperl-l mailing list