[Bioperl-l] Re: [Bioperl-guts-l] Bio::Restriction modifications

Heikki Lehvaslaiho heikki at nildram.co.uk
Wed Dec 3 05:12:50 EST 2003


Peter,

First thank you for all your efforts: bug reports and now fixes.  It is really 
great to have more people committing to bioperl. 

You must have noticed that Rob Edwards beat you by half an hour by committing 
his fixes into cvs. Could you work with Rob to make sure that all the issues 
are solved and when necessary refactor the code. It would be good to start by 
running to two codes in parallel to see that they give identical results.

It is not too late to change the interface. We have not made the stable 
release yet. Go ahead do what is needed and keep posting to the list to make 
sure everyone interested is informed.

Cheers,

	-Heikki

P.S. All hand written messages should go to bioperl-l. The guts list is only 
for cvs and bugzilla logs.

On Wednesday 03 Dec 2003 12:50 am, Peter Blaiklock wrote:
> Hi, everyone
>
>    I have modified some of the modules in Bio::Restriction to take care of
> some bugs and add a couple of features. It would be great if people could
> try them out and see if they are useful. I have tried to preserve backward
> compatibility, but they will probably break some existing scripts. The
> modifications are summarized below, the actual modules are linked to.
>
> Bio::Restriction::Analysis
>
>     Changed the site finding algorithm in '_new_cuts'. The new algorithm
> uses pos to find the recognition site regex and finds the actual cut point
> using $enz->cut. The cut positions are put in an array and substr is used
> to get digestion fragments.
>
>    Fixed the origin bug for circular target sequences. If the sequence is
> circular the first 40 bases are appended to the end of the sequence. Sites
> that span the origin are now detected. First and last fragments are
> reattached as before.
>
>    Fixed the non-palindromes bug.  Non-palindromic sites are detected in
> the reverse orientation by searching the reverse complement of the target
> sequence, using $enz->complementary_cut and then subtracting from the
> sequence length.
>
>    Fixed the dual cutters bug. Both cuts of a dual cut enzyme are now
> reported automatically.
>
>    Fixed a bug where a site would be detected even if the complementary cut
> was off the end of the target sequence.
>
>    Added a method 'fragment_maps($enzyme_name)'. This method returns an
> array of hashes where each hash corresponds to a restriction fragment. The
> hash keys are 'start', 'end' and 'seq'. 'seq' holds the sequence of the
> fragment, while 'start' and 'end' hold the positions of the first and last
> bases of the fragment in the target sequence. This will allow restriction
> fragments to be turned into features.
>
>    Added a method 'positions($enzyme_name)'. This method returns an array
> of cut positions for the specified enzyme.
>
>    Added internal methods '_find_cut', '_multicut' and ' _digest'.
> '_find_cut' figures out the cut point given the position of the recognition
> site and checks whether the cut point is off the end of the molecule. This
> has to be done twice for non-palindromic enzymes, so it makes sense to make
> it a separate method.
>    '_digest' gets the restriction fragments from the list of cut points. I
> split this off of '_new_cuts' for the sake of readability, particularly
> after we start dealing with overlapping sites.
>    '_multicut' checks whether the "other" cut of a dual cut enzyme is off
> the end of the sequence. Could probably be folded back into '_find_cut'.
>
> Bio::Restriction::Enzyme
>
>    Changed the enzyme name correction code so only a single trailing '1'
> gets changed to an 'I'. This should prevent name mangling of enzymes like
> Alw21I.
>
>    Changed '$cut && $self->cut($cut);' to 'defined $cut &&
> $self->cut($cut);' (same for complementary cut) in the constructor. This
> allows $self->cut to be zero.
>
>    Some minor changes in methods 'cut' and 'site'.
>
> Bio::Restriction::IO::base
>
>    Changed method '_make_multicuts' so that the second enzyme is not added
> to the collection and the first enzyme is not added to the second enzyme's
> "others" array, only the other way around. The idea is to prevent dual cut
> sites from being reported twice. This will break scripts that used this
> behavior to work around the dual cut bug, but you shouldn't have to do that
> any more.
>
>    Similar changes made to '_make_multisites'.
>
> http://www.restrictionmapper.org/bioperl/Analysis.pm
> http://www.restrictionmapper.org/bioperl/Enzyme.pm
> http://www.restrictionmapper.org/bioperl/base.pm
>
> Peter Blaiklock
>
>
>
> _______________________________________________
> Bioperl-guts-l mailing list
> Bioperl-guts-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-guts-l

-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________


More information about the Bioperl-l mailing list