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

FreeBSD Manual Pages


home | help
Bio::Seq::PrimedSeq(3)User Contributed Perl DocumentatioBio::Seq::PrimedSeq(3)

       Bio::Seq::PrimedSeq - A sequence	and a pair of primers matching on it

	 use Bio::Seq;
	 use Bio::Seq::PrimedSeq;

	 my $template =	Bio::Seq->new( -seq => 'AGCTTTTCATTCTGACTGCAAC'	);
	 my $left     =	Bio::Seq->new( -seq => 'AGCT' );
	 my $right    =	Bio::Seq->new( -seq => 'GTTGC' );

	 my $primedseq = Bio::Seq::PrimedSeq->new(
		 -seq	       => $template,  #	sequence object
		 -left_primer  => $left,      #	sequence or primer object
		 -right_primer => $right      #	sequence or primer object

	 # Get the primers as Bio::SeqFeature::Primer objects
	 my @primer_objects = $primedseq->get_primer();

	 # Sequence object representing	the PCR	product, i.e. the section of the target
	 # sequence contained between the primers (primers included)
	 my $amplicon_seq = $primedseq->amplicon();

	 print 'Got amplicon sequence: '.$amplicon_seq->seq."\n";
	 # Amplicon should be: agctTTTCATTCTGACTgcaac

       This module was created to address the fact that	a primer is more than
       a SeqFeature and	that there is a	need to	represent the primer-sequence
       complex and the attributes that are associated with the complex.

       A PrimedSeq object is initialized with a	target sequence	and two
       primers.	The location of	the primers on the target sequence is
       calculated if needed so that one	can then get the PCR product, or
       amplicon	sequence. From the PrimedSeq object you	can also retrieve
       information about melting temperatures and what not on each of the
       primers and the amplicon. The Bio::Tools::Primer3 module	uses PrimedSeq
       objects extensively.

       Note that this module does not simulate PCR. It assumes that the
       primers will match in a single location on the target sequence and does
       not understand degenerate primers.

       o   Providing primers as	sequence objects

	   If the primers are specified	as sequence objects, e.g.
	   Bio::PrimarySeq or Bio::Seq,	they are first converted to
	   Bio::SeqFeature::Primer objects.  Their location on the target
	   sequence is then calculated and added to the
	   Bio::SeqFeature::Primer objects, which you can retrieve using the
	   get_primer()	method.

       o   Providing primers as	primer objects

	   Because of the limitations of specifying primers as sequence
	   objects, the	recommended method is to provide
	   Bio::SeqFeature::Primer objects. If you did not record the location
	   of the primers in the primer	object,	it will	be calculated.

       Bio::Seq::PrimedSeq was initially started by Chad Matsalla, and later
       improved	on by Rob Edwards.

       1.  Run Primer3 to get PrimedSeq	objects:

	     use Bio::SeqIO;
	     use Bio::Tools::Run::Primer3;

	     # Read a target sequences from a FASTA file
	     my	$file =	shift || die "Need a file to read";
	     my	$seqin = Bio::SeqIO->new(-file => $file);
	     my	$seq = $seqin->next_seq;

	     # Use Primer3 to design some primers
	     my	$primer3 = Bio::Tools::Run::Primer3->new(-seq => $seq);
	     my	$results = $primer3->run; # default parameters

	     # Write all the results in	a Genbank file
	     my	$seqout	= Bio::SeqIO->new(-file	=> ">primed_sequence.gbk",
					  -format => 'genbank');
	     while (my $primedseq = $results->next_primer) {
		$seqout->write_seq( $primedseq->annotated_seq );

       2.  Create a genbank file for a sequence	and its	cognate	primers:

	     use Bio::SeqIO;
	     use Bio::Seq::PrimedSeq;

	     # Read a FASTA file that contains the target sequence and its two primers
	     my	$file =	shift || die "$0 <file>";
	     my	$seqin = Bio::SeqIO->new(-file => $file);
	     my	($template, $leftprimer, $rightprimer) =
		   ($seqin->next_seq, $seqin->next_seq,	$seqin->next_seq);

	     # Set up a	PrimedSeq object
	     my	$primedseq = Bio::Seq::PrimedSeq->new(-seq => $template,
						      -left_primer => $leftprimer,
						      -right_primer => $rightprimer);

	     # Write the sequences in an output	Genbank	file
	     my	$seqout	= Bio::SeqIO->new(-file	=> ">primed_sequence.gbk",
					  -format => 'genbank');

       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

       Rob Edwards,

       Based on	a module written by Chad Matsalla,

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

	Title	: new()
	Usage	: my $primedseq	= Bio::SeqFeature::Primer->new(
				   -seq	=> $sequence,
				   -left_primer	=> $left_primer,
				   -right_primer => $right_primer
	Function: Construct a primed sequence.
	Returns	: A Bio::Seq::PrimedSeq	object
	Args	:  -seq	=> a Bio::Seq object (required)
		   -left_primer	=> a Bio::SeqFeature::Primer or	sequence object	(required)
		   -right_primer => a Bio::SeqFeature::Primer or sequence object (required)

		  If you pass a	sequence object	to specify a primer, it	will be	used to
		  construct a Bio::SeqFeature::Primer that you can retrieve with the
		  L<get_primer>	method.

		  Many other parameters	can be included	including all of the output
		  parameters from the primer3 program (see L<Bio::Tools::Primer3>). At
		  the moment these parameters will simply be stored and	do anything.

	Title	: get_primer();
	Usage	:  my @primers = $primedseq->get_primer();
		   my $primer =	$primedseq->get_primer('-left_primer');
	Function: Get the primers associated with the PrimedSeq	object.
	Returns	: A Bio::SeqFeature::Primer object
	Args	: For the left primer, use: l, left, left_primer or -left_primer
		  For the right	primer,	use: r,	right, right_primer or -right_primer
		  For both primers [default], use: b, both, both_primers or -both_primers

	Title	: annotated_sequence
	Usage	: my $annotated_sequence_object	= $primedseq->annotate_sequence();
	Function: Get an annotated sequence object containing the left and right
	Returns	: An annotated sequence	object or 0 if not defined.
	Args	:
	Note	: Use this method to return a sequence object that you can write
		  out (e.g. in GenBank format).	See the	example	above.

	Title	: amplicon
	Usage	: my $amplicon = $primedseq->amplicon();
	Function: Retrieve the amplicon	as a sequence object. The amplicon sequnce is
		  only the section of the target sequence between the primer matches
		  (primers included).
	Returns	: A Bio::Seq object. To	get the	sequence use $amplicon->seq
	Args	: None
	Note	:

	Title	: seq
	Usage	: my $seqobj = $primedseq->seq();
	Function: Retrieve the target sequence as a sequence object
	Returns	: A seq	object.	To get the sequence use	$seqobj->seq
	Args	: None
	Note	:

	Title	: _place_primers
	Usage	: $self->_place_primers();
	Function: An internal method to	place the primers on the sequence and
		  set up the ranges of the sequences
	Returns	: Nothing
	Args	: None
	Note	: Internal use only

perl v5.32.1			  2019-12-07		Bio::Seq::PrimedSeq(3)


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

home | help