1Bio::Restriction::EnzymUes(e3r)Contributed Perl DocumentBaitoi:o:nRestriction::Enzyme(3)
2
3
4
6 Bio::Restriction::Enzyme - A single restriction endonuclease (cuts DNA
7 at specific locations)
8
10 # set up a single restriction enzyme. This contains lots of
11 # information about the enzyme that is generally parsed from a
12 # rebase file and can then be read back
13
14 use Bio::Restriction::Enzyme;
15
16 # define a new enzyme with the cut sequence
17 my $re=Bio::Restriction::Enzyme->new
18 (-enzyme=>'EcoRI', -seq=>'G^AATTC');
19
20 # once the sequence has been defined a bunch of stuff is calculated
21 # for you:
22
23 #### PRECALCULATED
24
25 # find where the enzyme cuts after ...
26 my $ca=$re->cut;
27
28 # ... and where it cuts on the opposite strand
29 my $oca = $re->complementary_cut;
30
31 # get the cut sequence string back.
32 # Note that site will return the sequence with a caret
33 my $with_caret=$re->site; #returns 'G^AATTC';
34
35 # but it is also a Bio::PrimarySeq object ....
36 my $without_caret=$re->seq; # returns 'GAATTC';
37 # ... and so does string
38 $without_caret=$re->string; #returns 'GAATTC';
39
40 # what is the reverse complement of the cut site
41 my $rc=$re->revcom; # returns 'GAATTC';
42
43 # now the recognition length. There are two types:
44 # recognition_length() is the length of the sequence
45 # cutter() estimate of cut frequency
46
47 my $recog_length = $re->recognition_length; # returns 6
48 # also returns 6 in this case but would return
49 # 4 for GANNTC and 5 for RGATCY (BstX2I)!
50 $recog_length=$re->cutter;
51
52 # is the sequence a palindrome - the same forwards and backwards
53 my $pal= $re->palindromic; # this is a boolean
54
55 # is the sequence blunt (i.e. no overhang - the forward and reverse
56 # cuts are the same)
57 print "blunt\n" if $re->overhang eq 'blunt';
58
59 # Overhang can have three values: "5'", "3'", "blunt", and undef
60 # Direction is very important if you use Klenow!
61 my $oh=$re->overhang;
62
63 # what is the overhang sequence
64 my $ohseq=$re->overhang_seq; # will return 'AATT';
65
66 # is the sequence ambiguous - does it contain non-GATC bases?
67 my $ambig=$re->is_ambiguous; # this is boolean
68
69 print "Stuff about the enzyme\nCuts after: $ca\n",
70 "Complementary cut: $oca\nSite:\n\t$with_caret or\n",
71 "\t$without_caret\n";
72 print "Reverse of the sequence: $rc\nRecognition length: $recog_length\n",
73 "Is it palindromic? $pal\n";
74 print "The overhang is $oh with sequence $ohseq\n",
75 "And is it ambiguous? $ambig\n\n";
76
77
78 ### THINGS YOU CAN SET, and get from rich REBASE file
79
80 # get or set the isoschizomers (enzymes that recognize the same
81 # site)
82 $re->isoschizomers('PvuII', 'SmaI'); # not really true :)
83 print "Isoschizomers are ", join " ", $re->isoschizomers, "\n";
84
85 # get or set the methylation sites
86 $re->methylation_sites(2); # not really true :)
87 print "Methylated at ", join " ", keys %{$re->methylation_sites},"\n";
88
89 #Get or set the source microbe
90 $re->microbe('E. coli');
91 print "It came from ", $re->microbe, "\n";
92
93 # get or set the person who isolated it
94 $re->source("Rob"); # not really true :)
95 print $re->source, " sent it to us\n";
96
97 # get or set whether it is commercially available and the company
98 # that it can be bought at
99 $re->vendors('NEB'); # my favorite
100 print "Is it commercially available :";
101 print $re->vendors ? "Yes" : "No";
102 print " and it can be got from ", join " ",
103 $re->vendors, "\n";
104
105 # get or set a reference for this
106 $re->reference('Edwards et al. J. Bacteriology');
107 print "It was not published in ", $re->reference, "\n";
108
109 # get or set the enzyme name
110 $re->name('BamHI');
111 print "The name of EcoRI is not really ", $re->name, "\n";
112
114 This module defines a single restriction endonuclease. You can use it
115 to make custom restriction enzymes, and it is used by
116 Bio::Restriction::IO to define enzymes in the New England Biolabs
117 REBASE collection.
118
119 Use Bio::Restriction::Analysis to figure out which enzymes are
120 available and where they cut your sequence.
121
123 At least three geneticaly and biochamically distinct restriction
124 modification systems exist. The cutting components of them are known as
125 restriction endonuleases. The three systems are known by roman
126 numerals: Type I, II, and III restriction enzymes.
127
128 REBASE format 'cutzymes'(#15) lists enzyme type in its last field. The
129 categories there do not always match the the following short
130 descriptions of the enzymes types. See
131 http://it.stlawu.edu/~tbudd/rmsyst.html for a better overview.
132
133 TypeI
134 Type I systems recognize a bipartite asymetrical sequence of 5-7 bp:
135
136 ---TGA*NnTGCT--- * = methylation sites
137 ---ACTNnA*CGA--- n = 6 for EcoK, n = 8 for EcoB
138
139 The cleavage site is roughly 1000 (400-7000) base pairs from the
140 recognition site.
141
142 TypeII
143 The simplest and most common (at least commercially).
144
145 Site recognition is via short palindromic base sequences that are 4-6
146 base pairs long. Cleavage is at the recognition site (but may
147 occasionally be just adjacent to the palindromic sequence, usually
148 within) and may produce blunt end termini or staggered, "sticky end"
149 termini.
150
151 TypeIII
152 The recognition site is a 5-7 bp asymmetrical sequence. Cleavage is ATP
153 dependent 24-26 base pairs downstream from the recognition site and
154 usually yields staggered cuts 2-4 bases apart.
155
157 I am trying to make this backwards compatible with
158 Bio::Tools::RestrictionEnzyme. Undoubtedly some things will break, but
159 we can fix things as we progress.....!
160
161 I have added another comments section at the end of this POD that
162 discusses a couple of areas I know are broken (at the moment)
163
165 · Convert vendors touse full names of companies instead of code
166
167 · Add regular expression based matching to vendors
168
169 · Move away from the archaic ^ notation for cut sites. Ideally I'd
170 totally like to remove this altogether, or add a method that adds it
171 in if someone really wants it. We should be fixed on a sequence,
172 number notation.
173
175 Mailing Lists
176 User feedback is an integral part of the evolution of this and other
177 Bioperl modules. Send your comments and suggestions preferably to one
178 of the Bioperl mailing lists. Your participation is much appreciated.
179
180 bioperl-l@bioperl.org - General discussion
181 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
182
183 Support
184 Please direct usage questions or support issues to the mailing list:
185
186 bioperl-l@bioperl.org
187
188 rather than to the module maintainer directly. Many experienced and
189 reponsive experts will be able look at the problem and quickly address
190 it. Please include a thorough description of the problem with code and
191 data examples if at all possible.
192
193 Reporting Bugs
194 Report bugs to the Bioperl bug tracking system to help us keep track
195 the bugs and their resolution. Bug reports can be submitted via the
196 web:
197
198 http://bugzilla.open-bio.org/
199
201 Rob Edwards, redwards@utmem.edu
202
204 Heikki Lehvaslaiho, heikki-at-bioperl-dot-org Peter Blaiklock,
205 pblaiklo@restrictionmapper.org Mark A. Jensen, maj-at-fortinbras-dot-us
206
208 Copyright (c) 2003 Rob Edwards.
209
210 Some of this work is Copyright (c) 1997-2002 Steve A. Chervitz. All
211 Rights Reserved. This module is free software; you can redistribute it
212 and/or modify it under the same terms as Perl itself.
213
215 Bio::Restriction::Analysis, Bio::Restriction::EnzymeCollection,
216 Bio::Restriction::IO
217
219 Methods beginning with a leading underscore are considered private and
220 are intended for internal use by this module. They are not considered
221 part of the public interface and are described here for documentation
222 purposes only.
223
224 new
225 Title : new
226 Function
227 Function : Initializes the Enzyme object
228 Returns : The Restriction::Enzyme object
229 Argument : A standard definition can have several formats. For example:
230 $re->new(-enzyme='EcoRI', -seq->'GAATTC' -cut->'1')
231 Or, you can define the cut site in the sequence, for example
232 $re->new(-enzyme='EcoRI', -seq->'G^AATTC'), but you must use a caret
233 Or, a sequence can cut outside the recognition site, for example
234 $re->new(-enzyme='AbeI', -seq->'CCTCAGC' -cut->'-5/-2')
235
236 Other arguments:
237 -isoschizomers=>\@list a reference to an array of
238 known isoschizomers
239 -references=>$ref a reference to the enzyme
240 -source=>$source the source (person) of the enzyme
241 -commercial_availability=>@companies a list of companies
242 that supply the enzyme
243 -methylation_site=>\%sites a reference to hash that has
244 the position as the key and the type of methylation
245 as the value
246 -xln_sub => sub { ($self,$cut) = @_; ...; return $xln_cut },
247 a coderef to a routine that translates the input cut value
248 into Bio::Restriction::Enzyme coordinates
249 ( e.g., for withrefm format, this might be
250 -xln_sub => sub { length( shift()->string ) + shift } )
251
252 A Restriction::Enzyme object manages its recognition sequence as a
253 Bio::PrimarySeq object.
254
255 The minimum requirement is for a name and a sequence.
256
257 This will create the restriction enzyme object, and define several
258 things about the sequence, such as palindromic, size, etc.
259
261 name
262 Title : name
263 Usage : $re->name($newval)
264 Function : Gets/Sets the restriction enzyme name
265 Example : $re->name('EcoRI')
266 Returns : value of name
267 Args : newvalue (optional)
268
269 This will also clean up the name. I have added this because some people
270 get confused about restriction enzyme names. The name should be One
271 upper case letter, and two lower case letters (because it is derived
272 from the organism name, eg. EcoRI is from E. coli). After that it is
273 all confused, but the numbers should be roman numbers not numbers,
274 therefore we'll correct those. At least this will provide some
275 standard, I hope.
276
277 site
278 Title : site
279 Usage : $re->site();
280 Function : Gets/sets the recognition sequence for the enzyme.
281 Example : $seq_string = $re->site();
282 Returns : String containing recognition sequence indicating
283 : cleavage site as in 'G^AATTC'.
284 Argument : n/a
285 Throws : n/a
286
287 Side effect: the sequence is always converted to upper case.
288
289 The cut site can also be set by using methods cut and
290 complementary_cut.
291
292 This will pad out missing sequence with N's. For example the enzyme
293 Acc36I cuts at ACCTGC(4/8). This will be returned as ACCTGCNNNN^
294
295 Note that the common notation ACCTGC(4/8) means that the forward strand
296 cut is four nucleotides after the END of the recognition site. The
297 forward cut() in the coordinates used here in Acc36I ACCTGC(4/8) is at
298 6+4 i.e. 10.
299
300 ** This is the main setable method for the recognition site.
301
302 revcom_site
303 Title : revcom_site
304 Usage : $re->revcom_site();
305 Function : Gets/sets the complementary recognition sequence for the enzyme.
306 Example : $seq_string = $re->revcom_site();
307 Returns : String containing recognition sequence indicating
308 : cleavage site as in 'G^AATTC'.
309 Argument : none (sets on first call)
310 Throws : n/a
311
312 This is the same as site, except it returns the revcom site. For
313 palindromic enzymes these two are identical. For non-palindromic
314 enzymes they are not!
315
316 On set, this also handles setting the revcom_recog attribute.
317
318 See also site above.
319
320 cut
321 Title : cut
322 Usage : $num = $re->cut(1);
323 Function : Sets/gets an integer indicating the position of cleavage
324 relative to the 5' end of the recognition sequence in the
325 forward strand.
326
327 For type II enzymes, sets the symmetrically positioned
328 reverse strand cut site by calling complementary_cut().
329
330 Returns : Integer, 0 if not set
331 Argument : an integer for the forward strand cut site (optional)
332
333 Note that the common notation ACCTGC(4/8) means that the forward strand
334 cut is four nucleotides after the END of the recognition site. The
335 forwad cut in the coordinates used here in Acc36I ACCTGC(4/8) is at 6+4
336 i.e. 10.
337
338 Note that REBASE uses notation where cuts within symmetic sites are
339 marked by '^' within the forward sequence but if the site is asymmetric
340 the parenthesis syntax is used where numbering ALWAYS starts from last
341 nucleotide in the forward strand. That's why AciI has a site usually
342 written as CCGC(-3/-1) actualy cuts in
343
344 C^C G C
345 G G C^G
346
347 In our notation, these locations are 1 and 3.
348
349 The cuts locations in the notation used are relative to the first (non-
350 N) nucleotide of the reported forward strand of the recognition
351 sequence. The following diagram numbers the phosphodiester bonds
352 (marked by + ) which can be cut by the restriction enzymes:
353
354 1 2 3 4 5 6 7 8 ...
355 N + N + N + N + N + G + A + C + T + G + G + N + N + N
356 ... -5 -4 -3 -2 -1
357
358 cuts_after
359 Title : cuts_after
360 Usage : Alias for cut()
361
362 complementary_cut
363 Title : complementary_cut
364 Usage : $num = $re->complementary_cut('1');
365 Function : Sets/Gets an integer indicating the position of cleavage
366 : on the reverse strand of the restriction site.
367 Returns : Integer
368 Argument : An integer (optional)
369 Throws : Exception if argument is non-numeric.
370
371 This method determines the cut on the reverse strand of the sequence.
372 For most enzymes this will be within the sequence, and will be set
373 automatically based on the forward strand cut, but it need not be.
374
375 Note that the returned location indicates the location AFTER the first
376 non-N site nucleotide in the FORWARD strand.
377
379 type
380 Title : type
381 Usage : $re->type();
382 Function : Get/set the restriction system type
383 Returns :
384 Argument : optional type: ('I'|II|III)
385
386 Restriction enzymes have been catezorized into three types. Some REBASE
387 formats give the type, but the following rules can be used to classify
388 the known enzymes:
389
390 1. Bipartite site (with 6-8 Ns in the middle and the cut site is > 50
391 nt away) => type I
392
393 2. Site length < 3 => type I
394
395 3. 5-6 asymmetric site and cuts >20 nt away => type III
396
397 4. All other => type II
398
399 There are some enzymes in REBASE which have bipartite recognition site
400 and cat far from the site but are still classified as type I. I've no
401 idea if this is really so.
402
403 seq
404 Title : seq
405 Usage : $re->seq();
406 Function : Get the Bio::PrimarySeq.pm object representing
407 : the recognition sequence
408 Returns : A Bio::PrimarySeq object representing the
409 enzyme recognition site
410 Argument : n/a
411 Throws : n/a
412
413 string
414 Title : string
415 Usage : $re->string();
416 Function : Get a string representing the recognition sequence.
417 Returns : String. Does NOT contain a '^' representing the cut location
418 as returned by the site() method.
419 Argument : n/a
420 Throws : n/a
421
422 recog
423 Title : recog
424 Usage : $enz->recog($recognition_sequence)
425 Function: Gets/sets the pure recognition site. Sets as
426 regexp if appropriate.
427 As for string(), the cut indicating carets (^)
428 are expunged.
429 Example :
430 Returns : value of recog (a scalar)
431 Args : on set, new value (a scalar or undef, optional)
432
433 revcom_recog
434 Title : revcom_recog
435 Usage : $enz->revcom_recog($recognition_sequence)
436 Function: Gets/sets the pure reverse-complemented recognition site.
437 Sets as regexp if appropriate.
438 As for string(), the cut indicating carets (^) are expunged.
439 Example :
440 Returns : value of recog (a scalar)
441 Args : on set, new value (a scalar or undef, optional)
442
443 revcom
444 Title : revcom
445 Usage : $re->revcom();
446 Function : Get a string representing the reverse complement of
447 : the recognition sequence.
448 Returns : String
449 Argument : n/a
450 Throws : n/a
451
452 recognition_length
453 Title : recognition_length
454 Usage : $re->recognition_length();
455 Function : Get the length of the RECOGNITION sequence.
456 This is the total recognition sequence,
457 inluding the ambiguous codes.
458 Returns : An integer
459 Argument : Nothing
460
461 See also: non_ambiguous_length
462
463 cutter
464 Title : cutter
465 Usage : $re->cutter
466 Function : Returns the "cutter" value of the recognition site.
467
468 This is a value relative to site length and lack of
469 ambiguity codes. Hence: 'RCATGY' is a five (5) cutter site
470 and 'CCTNAGG' a six cutter
471
472 This measure correlates to the frequency of the enzyme
473 cuts much better than plain recognition site length.
474
475 Example : $re->cutter
476 Returns : integer or float number
477 Args : none
478
479 Why is this better than just stripping the ambiguos codes? Think about
480 it like this: You have a random sequence; all nucleotides are equally
481 probable. You have a four nucleotide re site. The probability of that
482 site finding a match is one out of 4^4 or 256, meaning that on average
483 a four cutter finds a match every 256 nucleotides. For a six cutter,
484 the average fragment length is 4^6 or 4096. In the case of ambiguity
485 codes the chances are finding the match are better: an R (A|T) has 1/2
486 chance of finding a match in a random sequence. Therefore, for RGCGCY
487 the probability is one out of (2*4*4*4*4*2) which exactly the same as
488 for a five cutter! Cutter, although it can have non-integer values
489 turns out to be a useful and simple measure.
490
491 From bug 2178: VHDB are ambiguity symbols that match three different
492 nucleotides, so they contribute less to the effective recognition
493 sequence length than e.g. Y which matches only two nucleotides. A
494 symbol which matches n of the 4 nucleotides has an effective length of
495 1 - log(n) / log(4).
496
497 is_palindromic
498 Title : is_palindromic
499 Alias : palindromic
500 Usage : $re->is_palindromic();
501 Function : Determines if the recognition sequence is palindromic
502 : for the current restriction enzyme.
503 Returns : Boolean
504 Argument : n/a
505 Throws : n/a
506
507 A palindromic site (EcoRI):
508
509 5-GAATTC-3
510 3-CTTAAG-5
511
512 is_symmetric
513 Title : is_symmetric
514 Alias : symmetric
515 Usage : $re->is_symmetric();
516 Function : Determines if the enzyme is a symmetric cutter
517 Returns : Boolean
518 Argument : none
519
520 A symmetric but non-palindromic site (HindI):
521 v
522 5-C A C-3
523 3-G T G-5
524 ^
525
526 overhang
527 Title : overhang
528 Usage : $re->overhang();
529 Function : Determines the overhang of the restriction enzyme
530 Returns : "5'", "3'", "blunt" of undef
531 Argument : n/a
532 Throws : n/a
533
534 A blunt site in SmaI returns "blunt"
535
536 5' C C C^G G G 3'
537 3' G G G^C C C 5'
538
539 A 5' overhang in EcoRI returns "5'"
540
541 5' G^A A T T C 3'
542 3' C T T A A^G 5'
543
544 A 3' overhang in KpnI returns "3'"
545
546 5' G G T A C^C 3'
547 3' C^C A T G G 5'
548
549 overhang_seq
550 Title : overhang_seq
551 Usage : $re->overhang_seq();
552 Function : Determines the overhang sequence of the restriction enzyme
553 Returns : a Bio::LocatableSeq
554 Argument : n/a
555 Throws : n/a
556
557 I do not think it is necessary to create a seq object of these.
558 (Heikki)
559
560 Note: returns empty string for blunt sequences and undef for ones that
561 we don't know. Compare these:
562
563 A blunt site in SmaI returns empty string
564
565 5' C C C^G G G 3'
566 3' G G G^C C C 5'
567
568 A 5' overhang in EcoRI returns "AATT"
569
570 5' G^A A T T C 3'
571 3' C T T A A^G 5'
572
573 A 3' overhang in KpnI returns "GTAC"
574
575 5' G G T A C^C 3'
576 3' C^C A T G G 5'
577
578 Note that you need to use method overhang to decide whether it is a 5'
579 or 3' overhang!!!
580
581 Note: The overhang stuff does not work if the site is asymmetric!
582 Rethink!
583
584 compatible_ends
585 Title : compatible_ends
586 Usage : $re->compatible_ends($re2);
587 Function : Determines if the two restriction enzyme cut sites
588 have compatible ends.
589 Returns : 0 if not, 1 if only one pair ends match, 2 if both ends.
590 Argument : a Bio::Restriction::Enzyme
591 Throws : unless the argument is a Bio::Resriction::Enzyme and
592 if there are Ns in the ovarhangs
593
594 In case of type II enzymes which which cut symmetrically, this function
595 can be considered to return a boolean value.
596
597 is_ambiguous
598 Title : is_ambiguous
599 Usage : $re->is_ambiguous();
600 Function : Determines if the restriction enzyme contains ambiguous sequences
601 Returns : Boolean
602 Argument : n/a
603 Throws : n/a
604
605 Additional methods from Rebase
606 is_prototype
607 Title : is_prototype
608 Usage : $re->is_prototype
609 Function : Get/Set method for finding out if this enzyme is a prototype
610 Example : $re->is_prototype(1)
611 Returns : Boolean
612 Args : none
613
614 Prototype enzymes are the most commonly available and usually first
615 enzymes discoverd that have the same recognition site. Using only
616 prototype enzymes in restriction analysis avoids redundancy and speeds
617 things up.
618
619 is_neoschizomer
620 Title : is_neoschizomer
621 Usage : $re->is_neoschizomer
622 Function : Get/Set method for finding out if this enzyme is a neoschizomer
623 Example : $re->is_neoschizomer(1)
624 Returns : Boolean
625 Args : none
626
627 Neoschizomers are distinguishable from the prototype enzyme by having a
628 different cleavage pattern. Note that not all formats report this
629
630 prototype_name
631 Title : prototype_name
632 Alias : prototype
633 Usage : $re->prototype_name
634 Function : Get/Set method for the name of prototype for
635 this enzyme's recognition site
636 Example : $re->prototype_name(1)
637 Returns : prototype enzyme name string or an empty string
638 Args : optional prototype enzyme name string
639
640 If the enzyme itself is the prototype, its own name is returned. Not
641 to confuse the negative result with an unset value, use method
642 is_prototype.
643
644 This method is called prototype_name rather than prototype, because it
645 returns a string rather than on object.
646
647 isoschizomers
648 Title : isoschizomers
649 Alias : isos
650 Usage : $re->isoschizomers(@list);
651 Function : Gets/Sets a list of known isoschizomers (enzymes that
652 recognize the same site, but don't necessarily cut at
653 the same position).
654 Arguments : A reference to an array that contains the isoschizomers
655 Returns : A reference to an array of the known isoschizomers or 0
656 if not defined.
657
658 This has to be the hardest name to spell, so now you can use the alias
659 'isos'. Added for compatibility to REBASE
660
661 purge_isoschizomers
662 Title : purge_isoschizomers
663 Alias : purge_isos
664 Usage : $re->purge_isoschizomers();
665 Function : Purges the set of isoschizomers for this enzyme
666 Arguments :
667 Returns : 1
668
669 methylation_sites
670 Title : methylation_sites
671 Usage : $re->methylation_sites(\%sites);
672 Function : Gets/Sets known methylation sites (positions on the sequence
673 that get modified to promote or prevent cleavage).
674 Arguments : A reference to a hash that contains the methylation sites
675 Returns : A reference to a hash of the methylation sites or
676 an empty string if not defined.
677
678 There are three types of methylation sites:
679
680 · (6) = N6-methyladenosine
681
682 · (5) = 5-methylcytosine
683
684 · (4) = N4-methylcytosine
685
686 These are stored as 6, 5, and 4 respectively. The hash has the
687 sequence position as the key and the type of methylation as the value.
688 A negative number in the sequence position indicates that the DNA is
689 methylated on the complementary strand.
690
691 Note that in REBASE, the methylation positions are given Added for
692 compatibility to REBASE.
693
694 purge_methylation_sites
695 Title : purge_methylation_sites
696 Usage : $re->purge_methylation_sites();
697 Function : Purges the set of methylation_sites for this enzyme
698 Arguments :
699 Returns :
700
701 microbe
702 Title : microbe
703 Usage : $re->microbe($microbe);
704 Function : Gets/Sets microorganism where the restriction enzyme was found
705 Arguments : A scalar containing the microbes name
706 Returns : A scalar containing the microbes name or 0 if not defined
707
708 Added for compatibility to REBASE
709
710 source
711 Title : source
712 Usage : $re->source('Rob Edwards');
713 Function : Gets/Sets the person who provided the enzyme
714 Arguments : A scalar containing the persons name
715 Returns : A scalar containing the persons name or 0 if not defined
716
717 Added for compatibility to REBASE
718
719 vendors
720 Title : vendors
721 Usage : $re->vendor(@list_of_companies);
722 Function : Gets/Sets the a list of companies that you can get the enzyme from.
723 Also sets the commercially_available boolean
724 Arguments : A reference to an array containing the names of companies
725 that you can get the enzyme from
726 Returns : A reference to an array containing the names of companies
727 that you can get the enzyme from
728
729 Added for compatibility to REBASE
730
731 purge_vendors
732 Title : purge_vendors
733 Usage : $re->purge_references();
734 Function : Purges the set of references for this enzyme
735 Arguments :
736 Returns :
737
738 vendor
739 Title : vendor
740 Usage : $re->vendor(@list_of_companies);
741 Function : Gets/Sets the a list of companies that you can get the enzyme from.
742 Also sets the commercially_available boolean
743 Arguments : A reference to an array containing the names of companies
744 that you can get the enzyme from
745 Returns : A reference to an array containing the names of companies
746 that you can get the enzyme from
747
748 Added for compatibility to REBASE
749
750 references
751 Title : references
752 Usage : $re->references(string);
753 Function : Gets/Sets the references for this enzyme
754 Arguments : an array of string reference(s) (optional)
755 Returns : an array of references
756
757 Use purge_references to reset the list of references
758
759 This should be a Bio::Biblio object, but its not (yet)
760
761 purge_references
762 Title : purge_references
763 Usage : $re->purge_references();
764 Function : Purges the set of references for this enzyme
765 Arguments :
766 Returns : 1
767
768 clone
769 Title : clone
770 Usage : $re->clone
771 Function : Deep copy of the object
772 Arguments : -
773 Returns : new Bio::Restriction::EnzymeI object
774
775 This works as long as the object is a clean in-memory object using
776 scalars, arrays and hashes. You have been warned.
777
778 If you have module Storable, it is used, otherwise local code is used.
779 Todo: local code cuts circular references.
780
781 _expand
782 Title : _expand
783 Function : Expand nucleotide ambiguity codes to their representative letters
784 Returns : The full length string
785 Arguments : The string to be expanded.
786
787 Stolen from the original RestrictionEnzyme.pm
788
789
790
791perl v5.12.0 2010-04-29 Bio::Restriction::Enzyme(3)