Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Bio::Seq::EncodedSeq(3User Contributed Perl DocumentatiBio::Seq::EncodedSeq(3)

       Bio::Seq::EncodedSeq - subtype of Bio::LocatableSeq to store DNA	that
       encodes a protein

	 $obj =	Bio::Seq::EncodedSeq->new( -seq	     =>	$dna,
					   -encoding =>	"CCCCCCCIIIIICCCCC",
					   -start    =>	1,
					   -strand   =>	1,
					   -length   =>	17 );

	 # splice out (and possibly revcomp) the coding	sequence
	 $cds =	obj->cds;

	 # obtain the protein translation of the sequence
	 $prot = $obj->translate;

	 # other access/inspection routines as with Bio::LocatableSeq and
	 # Bio::SeqI; note that	coordinates are	relative only to the DNA
	 # sequence, not it's implicit encoded protein sequence.

       Bio::Seq::EncodedSeq is a Bio::LocatableSeq object that holds a DNA
       sequence	as well	as information about the coding	potential of that DNA
       sequence.  It is	meant to be useful in an alignment context, where the
       DNA may contain frameshifts, gaps and/or	introns, or in describing the
       transcript of a gene.  An EncodedSeq provides the ability to access the
       "spliced" coding	sequence, meaning that all introns and gaps are
       removed,	and any	frameshifts are	adjusted to provide a "clean" CDS.

       In order	to make	simultaneous use of either the DNA or the implicit
       encoded protein sequence	coordinates, please see

       We use the term "encoding" here to refer	to the series of symbols that
       we use to identify which	residues of a DNA sequence are protein-coding
       (i.e. part of a codon), intronic, part of a 5' or 3', frameshift
       "mutations", etc.  From this information, a Bio::Seq::EncodedSeq	is
       able to "figure out" its	translational CDS.  There are two sets of
       coding characters, one termed "implicit"	and one	termed "explicit".

       The "implicit" encoding is a bit	simpler	than the "explicit" encoding:
       'C' is used for any nucleotide that's part of a codon, 'U' for any UTR,
       etc.  The full list is shown below:

	Code  Meaning
	----  -------
	 C    coding
	 I    intronic
	 U    untranslated
	 G    gapped (for use in alignments)
	 F    a	"forward", +1 frameshift
	 B    a	"backward", -1 frameshift

       The "explicit" encoding is just an expansion of the "implicit"
       encoding, to denote phase:

	Code  Meaning
	----  -------
	 C    coding, 1st codon	position
	 D    coding, 2nd codon	position
	 E    coding, 3rd codon	position

	 I    intronic,	phase 0	(relative to intron begin)
	 J    intronic,	phase 1
	 K    intronic,	phase 2

	 U    untranslated 3'UTR
	 V    untranslated 5'UTR

	 G    gapped (for use in alignments)
	 F    a	"forward", +1 frameshift
	 B    a	"backward", -1 frameshift

       Note that the explicit coding is	meant to provide easy access to
       position/phase specific nucleotides:

	 $obj =	Bio::Seq::EncodedSeq->new(-seq => "ACAATCAGACTACG...",
					  -encoding => "CCCCCCIII..."

	 # fetch arrays	of nucleotides at each codon position:
	 my @pos1 = $obj->dnaseq(encoding => 'C', explicit => 1);
	 my @pos2 = $obj->dnaseq(encoding => 'D');
	 my @pos3 = $obj->dnaseq(encoding => 'E');

	 # fetch arrays	of "3-1" codon dinucleotides, useful for genomic
	 # signature analyses without compounding influences of	codon bias:
	 my @pairs = $obj->dnaseq(encoding => 'EC');

   Mailing Lists
       User feedback is	an integral part of the	evolution of this and other
       Bioperl modules.	Send your comments and suggestions preferably to one
       of the Bioperl mailing lists.  Your participation is much appreciated.			- General discussion	- About	the mailing lists

       Please direct usage questions or	support	issues to the mailing list:

       rather than to the module maintainer directly. Many experienced and
       reponsive experts will be able look at the problem and quickly address
       it. Please include a thorough description of the	problem	with code and
       data examples if	at all possible.

   Reporting Bugs
       Report bugs to the Bioperl bug tracking system to help us keep track
       the bugs	and their resolution.  Bug reports can be submitted via	the

AUTHOR - Aaron Mackey

       The rest	of the documentation details each of the object	methods.
       Internal	methods	are usually preceded with a _

	Title	: new
	Usage	: $obj = Bio::Seq::EncodedSeq->new(-seq	     =>	"AGTACGTGTCATG",
						   -encoding =>	"CCCCCCFCCCCCC",
						   -id	     =>	"myseq",
						   -start    =>	1,
						   -end	     =>	13,
						   -strand   =>	1
	Function: creates a new	Bio::Seq::EncodedSeq object from a supplied DNA
	Returns	: a new	Bio::Seq::EncodedSeq object

	Args	: seq	   - primary nucleotide	sequence used to encode	the
			     protein; note that	any positions involved in a
			     gap ('G') or backward frameshift ('B') should
			     have one or more gap characters; if the encoding
			     specifies G or B, but no (or not enough) gap
			     characters	exist, *they'll	be added*; similarly,
			     if	there are gap characters without a
			     corresponding G or	B encoding, G's	will be
			     inserted into the encoding.  This allows some
			     flexibility in specifying your sequence and
			     coding without having to calculate	a lot of the
			     encoding for yourself.

		  encoding - a string of characters (see Encoding Table)
			     describing	backwards frameshifts implied by the
			     encoding but not present in the sequence will be
			     added (as '-'s) to	the sequence.  If not
			     supplied, it will be assumed that all positions
			     are coding	(C).  Encoding may include either
			     implicit phase encoding characters	(i.e. "CCC")
			     and/or explicit encoding characters (i.e. "CDE").
			     Additionally, prefixed numbers may	be used	to
			     denote repetition (i.e. "27C3I28C").

			     Alternatively, encoding may be a hashref
			     datastructure, with encoding characters as	keys
			     and Bio::LocationI	objects	(or arrayrefs of
			     Bio::LocationI objects) as	values,	e.g.:

			     { C => [ Bio::Location::Simple->new(1,9),
				      Bio::Location::Simple->new(11,13)	],
			       F => Bio::Location::Simple->new(10,10),
			     } # same as "CCCCCCCCCFCCC"

			     Note that if the location ranges overlap, the
			     behavior of the encoding will be undefined
			     (well, it will be defined,	but only according to
			     the order in which	the hash keys are read,	which
			     is	basically undefined ...	just don't do that).

		  id, start, end, strand - as with Bio::LocatableSeq; note
			     that the coordinates are relative to the
			     encoding DNA sequence, not	the implicit protein
			     sequence.	If strand is reversed, then the
			     encoding is assumed to be relative	to the
			     reverse strand as well.

	Title	: encoding
	Usage	: $obj->encoding("CCCCCC");
		  $obj->encoding( -encoding => { I => $location	} );
		  $enc = $obj->encoding(-explicit => 1);
		  $enc = $obj->encoding("CCCCCC", -explicit => 1);
		  $enc = $obj->encoding(-location => $location,
					-explicit => 1,
					-absolute => 1 );
	Function: get/set the objects encoding,	either globally	or by location(s).
	Returns	: the (possibly	new) encoding string.
	Args	: encoding - see the encoding argument to the new() function.

		  explicit - whether or	not to return explicit phase
			     information in the	coding (i.e. "CCC" becomes
			     "CDE", "III" becomes "IJK", etc); defaults	to 0.

		  location - optional; location	to get/set the encoding.
			     Defaults to the entire sequence.

		  absolute - whether or	not the	locational elements (either
			     in	the encoding hashref or	the location
			     argument) are relative to the absolute start/end
			     of	the Bio::LocatableSeq, or to the internal,
			     relative coordinate system	(beginning at 1);
			     defaults to 0 (i.e. relative)

	Title	: cds
	Usage	: $cds = $obj->cds(-nogaps => 1);
	Function: obtain the "spliced" DNA sequence, by	removing any
		  nucleotides that participate in an UTR, forward frameshift
		  or intron, and replacing any unknown nucleotide implied by
		  a backward frameshift	or gap with N's.
	Returns	: a Bio::Seq::EncodedSeq object, with an encoding consisting only
		  of "CCCC..".
	Args	: nogaps - strip any gap characters (resulting from 'G'	or 'B'
		  encodings), rather than replacing them with N's.

	Title	: translate
	Usage	: $prot	= $obj->translate(@args);
	Function: obtain the protein sequence encoded by the underlying	DNA
		  sequence; same as $obj->cds()->translate(@args).
	Returns	: a Bio::PrimarySeq object.
	Args	: same as the translate() function of Bio::PrimarySeqI

	Title	: seq
	Usage	: $protseq = $obj->protseq();
	Function: obtain the raw protein sequence encoded by the underlying
		  DNA sequence;	This is	the same as calling
	Returns	: a string of single-letter amino acid codes
	Args :	  same as the seq() function of	Bio::PrimarySeq; note that this
		  function may not be used to set the protein sequence;	see
		  the dnaseq() function	for that.

	Title	: dnaseq
	Usage	: $dnaseq = $obj->dnaseq();
		  $obj->dnaseq("ACGTGTCGT", "CCCCCCCCC");
		  $obj->dnaseq(-seq	 => "ATG",
			       -encoding => "CCC",
			       -location => $loc );
		  @introns = $obj->$dnaseq(-encoding =>	'I')
	Function: get/set the underlying DNA sequence; will overwrite any
		  current DNA and/or encoding information present.
	Returns	: a string of single-letter nucleotide codes, including	any
		  gaps implied by the encoding.
	Args	: seq	   - the DNA sequence to be used as a replacement
		  encoding - the encoding of the DNA sequence (see the new()
			     constructor); defaults to all 'C' if setting a
			     new DNA sequence.	If no new DNA sequence is
			     being provided, then the encoding is used as a
			     "filter" for which	to return fragments of
			     non-overlapping DNA that match the	encoding.
		  location - optional, the location of the DNA sequence	to
			     get/set; defaults to the entire sequence.

perl v5.32.0			  2019-12-07	       Bio::Seq::EncodedSeq(3)


Want to link to this manual page? Use this URL:

home | help