Bio-BioStudio
view release on metacpan or search on metacpan
bin/BS_PCRTagger.pl view on Meta::CPAN
. "multiples of 3 plus 1.\n\n";
}
if ($p{MAXAMPLEN} < $p{MINAMPLEN} || $p{MINAMPLEN} <= 0)
{
die "\n ERROR: The amplicon length parameters do not parse.\n\n";
}
if ($p{MINPERDIFF} > $MAXMINPERDIFF || $p{MINPERDIFF} <= $MINMINPERDIFF )
{
die "\n ERROR: The minimum percent difference does not parse.\n\n";
}
if ($p{ITERATE} ne 'genome' && $p{ITERATE} ne 'chromosome')
{
die "BSERROR: Argument to iterate must be 'genome' or 'chromosome'.\n";
}
#Single family codons can't be first or last codons
#codons that don't share their siblings' first two bases can't be first codons
my %fams;
bin/BS_PCRTagger.pl view on Meta::CPAN
selectivity of the tags for either wild type or synthetic sequence. Each wild
type or synthetic tag and its reverse complement are unique in the entire
wild type genome; this is accomplished by creating a BLAST database for the
entire wild type genome and BLASTing each potential tag against it (this
requires that a complete wild type genome is available in the BioStudio
repository). Pairs of tags are selected in such a way that they will not
amplify any other genomic sequence under 1000 bases long. Each synthetic
counterpart to a wild type tag is recoded with GeneDesign's "most different"
algorithm to guarantee maximum nucleotide sequence difference while
maintaining identical protein sequence and, hopefully, minimizing any effect
on gene expression. The synthetic tags are all at least I<MINPERDIFF> percent
recoded from the wild type tags. Each tag is positioned in such a way that
the first and last nucleotides correspond to the wobble of a codon that can
be edited to change its wobble without changing its amino acid. This usually
automatically excludes methionine or tryptophan, but it can exclude others
when a I<MINRSCUVAL> filter is in place. The wobble restriction ensures that
the synthetic and wild type counterparts have different 5' and 3'
nucleotides, minimizing the chances that they (and their complements) will
cross-prime. This means that tags will be between I<MINTAGLEN> and
I<MAXTAGLEN> base pairs long, where I<TAGLEN> is a multiple of 3 plus 1. All
tags have melting temperature between I<MINTAGMELT> and I<MAXTAGMELT> so they
can be used in a single set of PCR conditions.
Tag pairs are chosen to form amplicons specific for each ORF, with at least
one amplicon chosen per kilobase of ORF. Each amplicon is between
I<MINAMPLEN> and I<MAXAMPLEN> base pairs long, ensuring that they will all
fall within an easily identifiable range on an agarose gel. No amplicon will
be chosen within the first I<FIVEPRIMESTART> base pairs of an ORF to avoid
disrupting unknown regulatory features. Amplicons are forbidden from
overlapping each other by more than I<MAXAMPOLAP> percent.
=head1 ARGUMENTS
Required arguments:
-C, --CHROMOSOME : The chromosome to be modified
-E, --EDITOR : The person responsible for the edits
-ME, --MEMO : Justification for the edits
Optional arguments:
bin/BS_PCRTagger.pl view on Meta::CPAN
--MINTAGMELT : (default 58) Minimum melting temperature for tags
--MAXTAGMELT : (default 60) Maximum melting temperature for tags
--MINPERDIFF : (default 33) Minimum base pair difference between synthetic and
wildtype versions of a tag
--MINTAGLEN : (default 19) Minimum length for tags. Must be a multiple of 3,
plus 1
--MAXTAGLEN : (default 28) Maximum length for tags. Must be a multiple of 3,
plus 1
--MINAMPLEN : (default 200) Minimum span for a pair of tags
--MAXAMPLEN : (default 500) Maximum span for a pair of tags
--MAXAMPOLAP : (default 25) Maximum percentage of overlap allowed between
different tag pairs
--MINORFLEN : (default 501) Minimum size of gene for tagging eligibility
--FIVEPRIMESTART : (default 101) The first base in a gene eligible for a tag
--MINRSCUVAL : (default 0.06) The minimum RSCU value for any replacement codon
in a tag
--OUTPUT : [html, txt (def)] Format of reporting and output.
-h, --help : Display this message
=cut
lib/Bio/BioStudio/PCRTagging.pm view on Meta::CPAN
my @choices = grep {(substr $_, 0, 2) eq $di} @{$possibles};
@choices = grep {(substr $_, -1) ne (substr $codon, -1)} @choices;
substr $wmdoligo, 0, 3, $choices[0];
}
$woligo = _complement($woligo, 1) if ($dir == -1);
$wmdoligo = _complement($wmdoligo, 1) if ($dir == -1);
my $mdoligo = $dir == 1
? substr($wmdoligo, 2, $wolen - 2)
: substr($wmdoligo, 0, $wolen - 2);
#Exclude oligos whose recodes don't meet percent difference standard
my $comps = _compare_sequences($oligo, $mdoligo);
if ( $comps->{P} < $MINPERDIFF)
{
($count, $rstart) = counterset($count, $rstart, $MINTAGLEN, $MAXTAGLEN);
next;
}
#Exclude oligos whose recodes don't meet melting standard
my $MDTm = _ntherm($mdoligo);
if ($MDTm < $MINTAGMELT || $MDTm > $MAXTAGMELT)
lib/Bio/BioStudio/PCRTagging.pm view on Meta::CPAN
]);
$factory->rewind_results;
while (my $result = $factory->next_result)
{
my $name = $result->query_name();
my $qlen = length $objs{$name}->seq;
while( my $hit = $result->next_hit())
{
while( my $hsp = $hit->next_hsp())
{
next if $hsp->percent_identity < 85;
next if ($hsp->length < .7 * $qlen);
push @{$phits{$name}}, [$hit, $hsp];
}
}
}
my $partner = undef;
my @Fwts = @{$phits{'rcwt_' . $uid}};
my @Fmds = @{$phits{'rcmd_' . $uid}};
foreach my $dtagid (@dtagids)
{
( run in 0.344 second using v1.01-cache-2.11-cpan-709fd43a63f )