[Biojava-l] Creating my own classes

mark.schreiber at novartis.com mark.schreiber at novartis.com
Fri Apr 28 02:05:44 UTC 2006


An excellent book on OO and Java is Thinking in Java by Bruce Eckell. If 
you come from a C or Perl background it will change the way you think 
about programming.

You can get online versions for free, most good bookstores have hardcopies 
as well.

- Mark





"Nathan S. Haigh" <n.haigh at sheffield.ac.uk>
Sent by: biojava-l-bounces at lists.open-bio.org
04/28/2006 12:00 AM
Please respond to n.haigh

 
        To:     "'Richard Holland'" <richard.holland at ebi.ac.uk>
        cc:     biojava-l at lists.open-bio.org, (bcc: Mark Schreiber/GP/Novartis)
        Subject:        Re: [Biojava-l] Creating my own classes


Fantastic stuff - again, I'll look into this over the coming weeks (I
actually have annual leave for a week, so my flurry of e-mail will have to
stop for now.

Thanks again!
Nathan

> -----Original Message-----
> From: Richard Holland [mailto:richard.holland at ebi.ac.uk]
> Sent: 27 April 2006 16:56
> To: n.haigh at sheffield.ac.uk
> Cc: biojava-l at lists.open-bio.org
> Subject: RE: [Biojava-l] Creating my own classes
> 
> Given some existing Location object (let's called it 'loc'), and an
> existing Alignment (hypothetically called 'algn'), you can do this:
> 
>                // Obtain the labels of all the sequences in the 
alignment.
>                Set labels = new HashSet();
>                labels.addAll(algn.getLabels());
>                // Obtain a sub-alignment including all the sequences in 
the
>                // original alignment.
>         Alignment subAlignment = algn.subAlignment(labels, loc);
> 
> cheers,
> Richard
> 
> 
> On Thu, 2006-04-27 at 16:44 +0100, Nathan S. Haigh wrote:
> > Thanks Richard,
> >
> > I'll think about this and try to do some deciphering. The only thing 
I'm
> in
> > need of help for is possibly some actual code that would take an
> Alignment
> > object and return a subalignment based on the positions specified in a
> > Locations object - it's difficult to make sense of a new language 
until
> you
> > start to pick up some of the basics.
> >
> > Thanks
> > Nathan
> >
> > > -----Original Message-----
> > > From: Richard Holland [mailto:richard.holland at ebi.ac.uk]
> > > Sent: 27 April 2006 16:37
> > > To: n.haigh at sheffield.ac.uk
> > > Cc: biojava-l at lists.open-bio.org
> > > Subject: Re: [Biojava-l] Creating my own classes
> > >
> > > On Thu, 2006-04-27 at 16:12 +0100, Nathan S. Haigh wrote:
> > > > My application essentially defines sets of positions from an
> alignment -
> > > I
> > > > call them CHARSETs as they are analogous to CHARSETs in the Nexus
> file
> > > > format. I believe in Biojava the Locations object/interface 
(sorry,
> not
> > > > familiar enough with correct terminology yet) is essentially the
> same
> > > sort
> > > > of thing. In my app, the user can use several approaches to define 
a
> > > CHARSET
> > > > e.g. a CHARSET containing just invariable sites, or a CHARSET
> containing
> > > > sites above a given % identity.
> > >
> > > You'd be right there. A Location in BioJava represents a range of
> > > positions.
> > >
> > > > My question is this, if I were to create a class called Charset, 
and
> I
> > > > create several subclasses called e.g. Invariable etc is this
> reasonable?
> > > Or
> > > > should the class Charset contain many methods for creating a
> different
> > > type
> > > > of CHARSET?
> > >
> > > My suggestion would be create an interface called Charset, which
> defines
> > > behaviour which you expect all types of Charset to exhibit. Then,
> > > implement a number of classes which implement this interface, one 
for
> > > each type of Charset you have, which each add their own methods or
> > > special behaviour. If a lot of the behaviour is common, you can 
define
> > > an abstract class called something like AbstractCharset which 
defines
> > > this common behaviour, and have the others extend it.
> > >
> > > > In my app, a CHARSET needs to be associated with a particular
> alignment,
> > > and
> > > > settings used to define the CHARSET, so my Charset class have
> variables
> > > such
> > > > as an Alignment object, Locations objects etc. I'd like to write a
> > > method
> > > > that returns a subalignment based on the CHARSETs associated
> alignment
> > > > object and Locations object but I'm not sure how to do this.
> > >
> > > BioJava Alignment objects implement the SymbolList interface, which
> > > means you can use all the methods from SymbolList to work with the
> > > Alignment, including the subList() method.
> > >
> > > cheers,
> > > Richard
> > >
> > > --
> > > Richard Holland (BioMart Team)
> > > EMBL-EBI
> > > Wellcome Trust Genome Campus
> > > Hinxton
> > > Cambridge CB10 1SD
> > > UNITED KINGDOM
> > > Tel: +44-(0)1223-494416
> >
> > ---
> > avast! Antivirus: Outbound message clean.
> > Virus Database (VPS): 0615-2, 12/04/2006
> > Tested on: 27/04/2006 16:44:04
> > avast! - copyright (c) 1988-2006 ALWIL Software.
> > http://www.avast.com
> >
> >
> >
> >
> >
> --
> Richard Holland (BioMart Team)
> EMBL-EBI
> Wellcome Trust Genome Campus
> Hinxton
> Cambridge CB10 1SD
> UNITED KINGDOM
> Tel: +44-(0)1223-494416

---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0615-2, 12/04/2006
Tested on: 27/04/2006 17:00:06
avast! - copyright (c) 1988-2006 ALWIL Software.
http://www.avast.com





_______________________________________________
Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l






More information about the Biojava-l mailing list