[Bioperl-l] Bio::FPC

Martin Krzywinski martink@bcgsc.ca
Fri, 15 Nov 2002 12:33:02 -0800

An FPC parser, especially for .cor files, would be very useful, where the
actual clone fragment information is stored. Where do I sign up ;)

We have unpublished code which models intersection through the Sulston score
(using simple and Needleman-Wunsch alignment), differences, and unions of
fingerprints and provides graphical output of fingerprints. I also have some
unit conversion code (standard mobility <-> fragment size) and a clone name
parser. It would be great to structure things together to include this where

The only issue I see with the the Bio::FPC namespace is that it refers to a
specific implementation and data storage (FPC) rather than an abstract data
model. Perhaps something like Bio::Fingerprint or Bio::FP which would then
include ::FPC as an I/O layer. You should be able to create a Fingerprint
object, for example, from a .cor file, or a fasta file (through in-silico),
or even through a .sizes/.bands file produced by Image. Here we convert all
our FPC maps into mysql to use with iCE (Internet Contig Explorer).

> 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),

The clone itself doesn't necessarily need to be associated with any
restriction fragments. This is why I think it would be good for the FPC
module set to interact with a middle fingerprint/clone layer.

Best regards,


Martin Krzywinski
Genome Sciences Centre
600 W 10th Avenue
Vancouver BC V5Z 4E6
tel 604.877.6086
fax 604.877.6085

----- Original Message -----
From: "Jamie Hatfield" <jamie@genome.arizona.edu>
To: <bioperl-l@bioperl.org>
Sent: Friday, November 15, 2002 8:15 AM
Subject: [Bioperl-l] Bio::FPC

> Hello all, I need some advice.
> I work at the Arizona Genomics Institute under Dr. Cari Soderlund (if
> you don't know her, she used to work at the Sanger Centre, where she
> developed FPC - FingerPrinted Contigs - probably the most used software
> for physical map construction.  She's here in Tucson, AZ after a short
> hiatus in Clemson, SC)  Anyway, I've re-introduced our group to Bioperl
> and we are starting to take advantage of it whereever possible.  Cari
> had seen Bioperl before, but that was pre 1.0 days, when things weren't
> stable enough (in her opinion) for a production environment, after which
> point, she never got around to looking into it again.
> I noticed in some document from a presentation given by one of the
> Bioperl bigwigs (might have been LStein), that a FPC parser was a common
> request.  If that's true, we know fpc probably as well as anybody else
> so it would make sense for us to develop/maintain it.
> So now we would like to make a contribution.  Don't get too excited
> yet... It's not programmed yet.  But we have found that in many, many
> different areas we need to read a .fpc file (and corresponding .cor
> file) and Do Something(c) with it.  At the same time, I want to get more
> familiar with Bioperl.  I've done fairly simple things, like reading in
> fasta/genbank/swisspro format files and working with alignments (as you
> all saw in my EST Alignment questions).
> The advice I want is as follows:
> 1) Where are the standards/guidelines for writing Bioperl modules?
> 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?
> 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.
> 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...
> 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