[Bioperl-l] Bio::FPC

Heikki Lehvaslaiho heikki@ebi.ac.uk
15 Nov 2002 17:46:28 +0000

On Fri, 2002-11-15 at 16:15, Jamie Hatfield wrote:
> Hello all, I need some advice.
> The advice I want is as follows:
> 1) Where are the standards/guidelines for writing Bioperl modules?

Not much of it, I'm afraid. We need to start writing something!

Within existing modules? Try copy and paste.

> 2) Any ideas on what features/functionality Bio::FPC should have?
> 3) Any ideas on what (if any besides Bio::Root) I should inherit from?
> 4) Should this be an interface and separate implementation or just an
> implementation?
>    (i.e., are there other file formats/programs for physical maps?)
> 5) What Bioperl objects should I use in construction?


Have you checked Bio::Map modules. There are some Interface files and as
well as simple implementations for maps, markers and positions. I'd like
to think they are useful for this kind project.

Also, have a look at Bio::Assembly modules. They are under development 
but should represent nicely general assembly project.

Your project would be one kind of an assembly project so
Bio::Assembly::FPC would be an appropriate name space.

You need to have a copy from CVS to see the Bio::Assembly modules.
The bioperl website has instructions for anynomous access to start with.


more below.... 
> These are the ideas I have so far (after all of a day of thinking about
> it, so feel free to laugh/scorn/suggest better implementations)
> (all these classes should be prefixed with Bio::FPC
> 1) ::Project
>   This would be the main class.  It would contain the information parsed
> from the top 8 or so lines of the .fpc file.  It would also contain the
> rest of these objects.

->isa(Bio::Assembly::ScaffoldI)? If not there should be a more general class. 

> 2) ::Clone
>   Obviously, this is the clone (or more properly - fingerprinted clone)
> from the fpc file.  The attributes would include type (Clone, BAC, PAC)
> name, bands[], sizes[] (if available), a few dates (creation,
> modification), remarks (normal and fpc remarks), contig (and range),
> matching clones (parents and children; approximate, exact, and pseudo),
> markers, etc.  Basically anything you might find as the /^(\w+)/ of the
> line in a .fpc file.
>   In typing that out, it seems that maybe the contig and range that a
> clone hits would best be implemented as a type of RangeI class, which is
> more apparent now that I typed that sentence.  Moving on then...

Ranges and comparing them e.g. between clones and contigs is what
Bio::Coordinate modules are for. Bio::Coordinate::Collection is a class
you objects should be using. 

They are new stuff as well, so feel free to pester me about them and
about (lack of) documentation.


> 3) ::Contig
>   Contig number, datetime, status (Ok, NoCB, Avoid, NoAce, Dead), #Q's,
> description.
> 4) ::Marker
>   Type (STS, eMRK, whatever), date (create,mod), Global position (if
> anchored to framework)
> That's basically it for the objects.  Although the contigrange might
> need to be an object inherited from RangeI.  
> So now I need some input, and we'll see if I can't get started coding
> this.
> Thanks!
> ----------------------------------------------------------------------
> Jamie Hatfield                              Room 541H, Marley Building
> Systems Programmer                          University of Arizona
> Arizona Genomics Computational              Tucson, AZ  85721
>   Laboratory (AGCoL)                        (520) 626-9598
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho          heikki@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
___ _/_/_/_/_/________________________________________________________