Bio-GeneDesign

 view release on metacpan or  search on metacpan

bin/GD_Filter_Enzymes.pl  view on Meta::CPAN

        GD_Filter_Enzymes.pl --sticky 35 --cleavage in

  List all enzymes that are available from NEB or Stratagene and are inactivated
  at or below 60 deg and cost less than 50 cents a unit:
        GD_Filter_Enzymes.pl --vendor N,E --inactivation 60 --pricemax .5

  List all enzymes that have at least 25% activity in NEB buffers 1 and 4 and
  are indifferent to CpG methylation
        GD_Filter_Enzymes.pl --buffer NEB1=25,NEB4=25 --cpgsense indifferent

  List all enzymes that exhibit star activity and are blocked or inhibited by
  Dam methylation
        GD_Filter_Enzymes.pl --staractivity 1 --damsense blocked,inhibited

  List all enzymes that may leave nonpalindromic overhangs (and those that
  definitely do) and whose recognition sequences do not contain AT or TA
        GD_Filter_Enzymes.pl --palindromy pnon,nonpal --seqmaynothave AT,TA

=head1 ARGUMENTS

Optional arguments:

  -h,   --help : Display this message

bin/GD_Filter_Enzymes.pl  view on Meta::CPAN

  --sticky        : [1, 3, 5, b] What type of overhang is left by the enzyme
  --palindromy    : [pal, pnon, nonpal] Is the overhang left by the enzyme
                    palindromic, potentially non-palindromic, or non-palindromic
  --length        : How many bases long is the recognition site allowed to be,
                    accepts a comma separated list
  --ambiguous     : [nonNonly OR ATCGonly] Are ambiguous bases allowed in the
                    recognition site. If yes to all, don't include this option
  --inactivation  : Enzymes must be inactivated by at least this temperature
  --incubation    : Enzymes must incubate at this temperature
  --staractivity  : [1 OR 0] Enzymes with or without star activity
  --cpgsense      : [blocked, inhibited, indifferent] Sensitivity to CpG
                    methylation
  --damsense      : [blocked, inhibited, indifferent] Sensitivity to Dam
                    methylation
  --dcmsense      : [blocked, inhibited, indifferent] Sensitivity to Dcm
                    methylation
  --buffer        : List of buffer activity thresholds. NEB1=50,NEB2=50 means
                    enzymes must have at least 50% activity in NEB buffers 1 & 2
                    Other=50 will work for non NEB buffers
  --pricemax      : The highest amount in dollars/unit an enzyme can cost
  --seqmusthave   : List of sequences that must be found in the recognition site
  --seqmaynothave : List of sequences that must not be in the recognition site
  --vendor        : List of vendors that must stock the enzyme, using the
                    comma separated abbreviations:
                        B = Invitrogen

lib/Bio/GeneDesign/RestrictionEnzyme.pm  view on Meta::CPAN


my %RE_vendors = (
  B => "Invitrogen", C => "Minotech", E => "Stratagene Agilent",
  F => "Thermo Scientific Fermentas", I => "SibEnzyme", J => "Nippon Gene Co.",
  K => "Takara", M => "Roche Applied Science", N => "New England Biolabs",
  O => "Toyobo Technologies", Q => "Molecular Biology Resources",
  R => "Promega", S => "Sigma Aldrich", U => "Bangalore Genei", V => "Vivantis",
  X => "EURx", Y => "CinnaGen"
);

my %methtrans = (b => "blocked", blocked => "blocked",
                 i => "inhibited", inhibited => "inhibited",
                 u => "unknown", unknown => "unknown"
);

=head1 CONSTRUCTOR METHODS

=head2 new

You can create a new enzyme or clone an existing enzyme to create a new instance
of an abstract enzyme definition. To do this, provide the -enzyme flag; the

lib/Bio/GeneDesign/RestrictionEnzyme.pm  view on Meta::CPAN

        -id     : The name of the enzyme (i.e., BamHI)
        -cutseq : The string describing the enzyme's recognition and cleavage
                  site

Optional arguments:

        -temp     : The incubation temperature for the enzyme
        -tempin   : The heat inactivation temperature for the enzyme
        -score    : A float score, usually the price of the enzyme in dollars
        -methdam  : Sensitivity to dam methylation; can take the values
                      b or blocked,
                      i or inhibited,
                      u or unknown,
                    if undefined, will take the value indifferent.
        -methdcm  : Sensitivity to dcm methylation; can take the values
                      b or blocked,
                      i or inhibited,
                      u or unknown,
                    if undefined, will take the value indifferent.
        -methcpg  : Sensitivity to cpg methylation; can take the values
                      b or blocked,
                      i or inhibited,
                      u or unknown,
                    if undefined, will take the value indifferent.
        -vendors  : a string of single letter codes that represent vendor
                    availability - no spaces.  see vendor() for a list of the
                    codes.
        -staract  : Whether or not the enzyme exhibits star activity - 1 or 0.
        -buffers  : a hash reference; keys are buffer names and values are the
                    enzyme activity in that buffer. For example:
                    NEB1 => 50, NEB2 => 100, etc.

lib/Bio/GeneDesign/RestrictionEnzyme.pm  view on Meta::CPAN


Generates a tab delimited display string that can be used to print enzyme
information out in a tabular format.

=cut

sub display
{
  my ($self) = @_;
  my $staract = $self->{staract}  ? "*" : q{};
  my (@blocked, @inhibed) = ((), ());
  push @blocked, "cpg" if ($self->{methcpg} eq "blocked");
  push @blocked, "dam" if ($self->{methdam} eq "blocked");
  push @blocked, "dcm" if ($self->{methdcm} eq "blocked");
  push @inhibed, "cpg" if ($self->{methcpg} eq "inhibited");
  push @inhibed, "dam" if ($self->{methdam} eq "inhibited");
  push @inhibed, "dcm" if ($self->{methdcm} eq "inhibited");
  my $buffstr = undef;
  foreach (sort keys %{$self->{buffers}})
  {
    $buffstr .= "$_ (" . $self->{buffers}->{$_} . ") " if ($self->{buffers}->{$_});
  }
  my $vendstr = join(", ", values %{$self->{vendors}});
  my $display = undef;
  my $inact = $self->{tempin} ? " (". $self->{timein} . q{@} . $self->{tempin} . ")" : q{};
  $display .= $self->{id} . "\t";
  $display .= $self->{cutseq} . $staract . "\t";
  $display .= $self->{type} . "\t";
  $display .= $self->{start} . "\t" if ($self->{start});
  $display .= $self->{temp} . $inact . "\t";
  $display .= join(", ", @blocked) . "\t";
  $display .= join(", ", @inhibed) . "\t";
  $display .= $self->{score} . "\t";
  $display .= $buffstr . "\t";
  $display .= $vendstr . "\t";
  return $display;
}

=head2 common_buffers

Returns an array reference listing the buffers, if any, in which two enzymes

lib/Bio/GeneDesign/RestrictionEnzyme.pm  view on Meta::CPAN

    my $val = $hshref->{$buff};
    $result = 0 if ( ! exists($rebuff->{$buff}) || $rebuff->{$buff} < $val );
  }

  return $result;
}

=head2 filter_by_dcm_sensitivity

  Arguments : an arrayref of sensitivity values; the key is the sensitivity
                blocked, inhibited, or indifferent

  Returns   : 1 if the enzyme meets the dcm sensitivity requirements,
              0 else.

=cut

sub filter_by_dcm_sensitivity
{
  my ($self, $arrref) = @_;
  my $result = 1;
  my %sensehsh;
  foreach my $sense (@$arrref)
  {
    if ($sense ne "blocked" && $sense ne "inhibited" && $sense ne "indifferent")
    {
      $sense = lc $sense;
      print "\tWARNING: Cannot parse dcmsense argument $sense - ignoring.\n";
      next;
    }
    $sensehsh{$sense}++;
  }
  $result = 0 unless ( exists($sensehsh{$self->{methdcm}}) );
  return $result;
}

=head2 filter_by_dam_sensitivity

  Arguments : an arrayref of sensitivity values; the key is the sensitivity
                blocked, inhibited, or indifferent

  Returns   : 1 if the enzyme meets the dam sensitivity requirements,
              0 else.

=cut

sub filter_by_dam_sensitivity
{
  my ($self, $arrref) = @_;
  my $result = 1;
  my %sensehsh;
  foreach my $sense (@$arrref)
  {
    if ($sense ne "blocked" && $sense ne "inhibited" && $sense ne "indifferent")
    {
      $sense = lc $sense;
      print "\tWARNING: Cannot parse damsense argument $sense - ignoring.\n";
      next;
    }
    $sensehsh{$sense}++;
  }
  $result = 0 unless ( exists($sensehsh{$self->{methdam}}) );
  return $result;
}

=head2 filter_by_cpg_sensitivity

  Arguments : an arrayref of sensitivity values; the key is the sensitivity
                blocked, inhibited, or indifferent

  Returns   : 1 if the enzyme meets the cpg sensitivity requirements,
              0 else.

=cut

sub filter_by_cpg_sensitivity
{
  my ($self, $arrref) = @_;
  my $result = 1;
  my %sensehsh;
  foreach my $sense (@$arrref)
  {
    if ($sense ne "blocked" && $sense ne "inhibited" && $sense ne "indifferent")
    {
      $sense = lc $sense;
      print "\tWARNING: Cannot parse cpgsense argument $sense - ignoring.\n";
      next;
    }
    $sensehsh{$sense}++;
  }
  $result = 0 unless ( exists($sensehsh{$self->{methcpg}}) );
  return $result;
}

t/30-enzymes.t  view on Meta::CPAN

            'timein'     => '20',
            'palindromy' => 'pal',
            'vendors'    => {
                'N' => 'New England Biolabs',
                'I' => 'SibEnzyme',
                'V' => 'Vivantis'
            },
            'aggress'       => '0.0002659',
            'score'         => '0.02826',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/GGGCCC/ix ],
            'methdcm'       => 'blocked',
            'outside_cut'   => 5,
            'inside_cut'    => 1,
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            '_root_verbose' => 0,
            'type'          => '5\'',
            'cutseq'        => 'G^GGCCC',
            'exclude'       => ['ApaI', 'BaeGI', 'BanII', 'Bsp1286I', 'CviKI', 'HaeIII', 'NlaIV', 'PhoI', 'Sau96I', ]
        },
        'Bio::GeneDesign::RestrictionEnzyme'

t/30-enzymes.t  view on Meta::CPAN

    'TaqI' => bless(
        {
            'buffers' => {
                'NEB3'  => '100',
                'NEB1'  => '50',
                'Other' => '',
                'NEB2'  => '75',
                'NEB4'  => '100'
            },
            'recseq'     => 'TCGA',
            'methdam'    => 'blocked',
            'staract'    => 1,
            'id'         => 'TaqI',
            'tempin'     => '80',
            'timein'     => '20',
            'palindromy' => 'pal',
            'vendors'    => {
                'S' => 'Sigma Aldrich',
                'F' => 'Thermo Scientific Fermentas',
                'N' => 'New England Biolabs',
                'K' => 'Takara',

t/30-enzymes.t  view on Meta::CPAN

                'X' => 'EURx',
                'K' => 'Takara',
                'B' => 'Invitrogen',
                'M' => 'Roche Applied Science',
                'R' => 'Promega',
                'U' => 'Bangalore Genei'
            },
            'aggress'       => '0.0001856',
            'score'         => '0.0528',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/GT[ACM][GKT]AC/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            '_root_verbose' => 0,
            'type'          => '5\'',
            'cutseq'        => 'GT^MKAC',
            'outside_cut'   => 4,
            'inside_cut'    => 2,

t/30-enzymes.t  view on Meta::CPAN

            'id'         => 'AciI',
            'tempin'     => '65',
            'timein'     => '20',
            'palindromy' => 'pnon',
            'vendors'    => {
                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0106387',
            'score'         => '0.244',
            'length'        => 4,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/CCGC/ix, qr/GCGG/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIA',
            'classex'       => qr/\A \w+ \(([\-]*\d+) \/ ([\-]*\d+)\)\Z  /x,
            '_root_verbose' => 0,
            'type'          => '5\'',
            'cutseq'        => 'CCGC(-3/-1)',
            'outside_cut'   => -1,
            'inside_cut'    => -3,

t/30-enzymes.t  view on Meta::CPAN

                'O' => 'Toyobo Technologies',
                'N' => 'New England Biolabs',
                'B' => 'Invitrogen'
            },
            'aggress'       => '0.0003711',
            'score'         => '0.2016',
            'length'        => 6,
            'methcpg'       => 'indifferent',
            'temp'          => '37',
            'regex'         => [ qr/TGGCCA/ix ],
            'methdcm'       => 'blocked',
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            '_root_verbose' => 0,
            'type'          => 'b',
            'cutseq'        => 'TGG^CCA',
            'exclude'       => ['CviKI', 'EaeI', 'HaeIII', 'PhoI', ]
        },
        'Bio::GeneDesign::RestrictionEnzyme'
    ),
    'BbvCI' => bless(

t/30-enzymes.t  view on Meta::CPAN

                'V' => 'Vivantis',
                'Q' => 'Molecular Biology Resources',
                'M' => 'Roche Applied Science',
                'C' => 'Minotech',
                'R' => 'Promega',
                'I' => 'SibEnzyme'
            },
            'aggress'       => '0.0023298',
            'score'         => '0.0424',
            'length'        => 4,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/GTAC/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            '_root_verbose' => 0,
            'type'          => 'b',
            'cutseq'        => 'GT^AC',
            'exclude'       => ['Acc65I', 'BsiWI', 'BsrGI', 'CviQI', 'KpnI', 'ScaI', 'TatI', ]
        },

t/30-enzymes.t  view on Meta::CPAN

                'O' => 'Toyobo Technologies',
                'M' => 'Roche Applied Science',
                'N' => 'New England Biolabs',
                'K' => 'Takara',
                'R' => 'Promega',
                'V' => 'Vivantis'
            },
            'aggress'       => '0.0002062',
            'score'         => '0.0848',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/GACGTC/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            '_root_verbose' => 0,
            'type'          => '3\'',
            'cutseq'        => 'GACGT^C',
            'outside_cut'   => 5,
            'inside_cut'    => 1,

t/30-enzymes.t  view on Meta::CPAN

            'id'         => 'BmgBI',
            'tempin'     => '65',
            'timein'     => '20',
            'palindromy' => 'pnon',
            'vendors'    => {
                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0003505',
            'score'         => '0.232',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/CACGTC/ix, qr/GACGTG/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIA',
            'classex'       => qr/\A \w+ \(([\-]*\d+) \/ ([\-]*\d+)\)\Z  /x,
            '_root_verbose' => 0,
            'type'          => 'b',
            'cutseq'        => 'CACGTC(-3/-3)',
            'exclude'       => [  'BtrI', 'HpyCH4IV', 'MaeII', 'TaiI', ]
        },

t/30-enzymes.t  view on Meta::CPAN

                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0000501',
            'score'         => '0.0464',
            'recseq'        => 'CCWGG',
            'methcpg'       => 'indifferent',
            'methdam'       => 'indifferent',
            'length'        => 5,
            'temp'          => '75',
            'regex'         => [ qr/CC[ATW]GG/ix ],
            'methdcm'       => 'blocked',
            'type'          => '5\'',
            '_root_verbose' => 0,
            'id'            => 'PspGI',
            'class'         => 'IIP',
            'classex'       => qr/   ([A-Z]*)   \^ ([A-Z]*)      /x,
            'cutseq'        => '^CCWGG',
            'outside_cut'   => 5,
            'inside_cut'    => 0,
            'exclude'       => ['BssKI', 'BstNI', 'EcoRII', 'PasI', 'ScrFI', 'SexAI', 'StyD4I', ]
        },

t/30-enzymes.t  view on Meta::CPAN

            'id'         => 'BsrBI',
            'tempin'     => '80',
            'timein'     => '20',
            'palindromy' => 'pnon',
            'vendors'    => {
                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0003505',
            'score'         => '0.0488',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/CCGCTC/ix, qr/GAGCGG/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIA',
            'classex'       => qr/\A \w+ \(([\-]*\d+) \/ ([\-]*\d+)\)\Z  /x,
            '_root_verbose' => 0,
            'type'          => 'b',
            'cutseq'        => 'CCGCTC(-3/-3)',
            'exclude'       => [ 'AciI' ]
        },

t/30-enzymes.t  view on Meta::CPAN

    'AlwI' => bless(
        {
            'buffers' => {
                'NEB3'  => '10',
                'NEB1'  => '50',
                'Other' => '',
                'NEB2'  => '100',
                'NEB4'  => '100'
            },
            'recseq'     => 'GGATC',
            'methdam'    => 'blocked',
            'id'         => 'AlwI',
            'tempin'     => '65',
            'timein'     => '20',
            'palindromy' => 'pnon',
            'vendors'    => {
                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0011958',
            'score'         => '0.0976',
            'length'        => 5,

t/30-enzymes.t  view on Meta::CPAN

            'id'         => 'BseYI',
            'tempin'     => '65',
            'timein'     => '20',
            'palindromy' => 'pnon',
            'vendors'    => {
                'N' => 'New England Biolabs'
            },
            'aggress'       => '0.0006598',
            'score'         => '0.488',
            'length'        => 6,
            'methcpg'       => 'blocked',
            'temp'          => '37',
            'regex'         => [ qr/CCCAGC/ix, qr/GCTGGG/ix ],
            'methdcm'       => 'indifferent',
            'class'         => 'IIA',
            'classex'       => qr/\A \w+ \(([\-]*\d+) \/ ([\-]*\d+)\)\Z  /x,
            '_root_verbose' => 0,
            'type'          => '5\'',
            'cutseq'        => 'CCCAGC(-5/-1)',
            'outside_cut'   => -1,
            'inside_cut'    => -5,



( run in 0.830 second using v1.01-cache-2.11-cpan-49f99fa48dc )