[Biojava-dev] BioSQLRichSequenceDB and BioSQLBioEntryDB

Richard HOLLAND hollandr at gis.a-star.edu.sg
Mon Jan 23 21:51:12 EST 2006


We've added two new modules to BioJavaX that allow you to wrap a BioSQL/Hibernate database in a SequenceDB compatible wrapper. More for convenience sake than anything else (its not foolproof) but it might be useful. 

They are:

	org.biojavax.bio.db.biosql.BioSQLBioEntryDB
	org.biojavax.bio.db.biosql.BioSQLRichSequenceDB

The code depends on you having unique values in the 'name' column of the BioEntry table in your BioSQL database. You'll get 'IllegalIDExceptions' thrown all over the place if this does not hold true. If this is the case, you should use Hibernate directly rather than this convenience wrapper code.

To use it, make sure Hibernate is on your classpath. Then you can do things like this:

	Session session = ...;  // get a Hibernate session from somewhere

	RichObjectFactory.connectToHibernate(session); // bind BioJavaX to the hibernate session
	RichSequenceDB db = new BioSQLRichSequenceDB(session); // connect the hibernate session to our SequenceDB

	System.out.println(db.ids()); // prints out a list of all the values in the 'name' column of the BioEntry table in the database	

	for (Iterator i = db.getRichSequences("bloggs"); i.hasNext(); ) {  // retrieve all sequences where the name is 'bloggs'
	    RichSequence seq = (RichSequence)i.next(); // get the next one
	    ... // do something with it here
	}

To add sequences to your database:

	RichSequence seq = ...; // get a RichSequence from somewhere
	db.addRichSequence(seq);

To remove them again:

	db.removeRichSequence("bloggs"); // removes the sequence with the name 'bloggs'

The BioSQLBioEntryDB works in exactly the same way but returns only BioEntry objects - ie. sequences without the sequence data attached. This might help with performance in some cases.

Finally, we also added a GenbankRichSequenceDB object that behaves much like the old GenbankSequenceDB object but returns RichSequence objects instead.

cheers,
Richard

Richard Holland
Bioinformatics Specialist
Genome Institute of Singapore
60 Biopolis Street, #02-01 Genome, Singapore 138672
Tel: (65) 6478 8000   DID: (65) 6478 8199
Email: hollandr at gis.a-star.edu.sg
---------------------------------------------
This email is confidential and may be privileged. If you are not the intended recipient, please delete it and notify us immediately. Please do not copy or use it for any purpose, or disclose its content to any other person. Thank you.
---------------------------------------------




More information about the biojava-dev mailing list