[Biojava-l] Problem: BioSQL-cvs and/or RichSequence-Annotation

Felix Dreher dreher at mpiib-berlin.mpg.de
Thu Feb 16 07:25:53 EST 2006


Hello Mark,

thank you for the information.
If I got it right, when using BioJavaX, the only BioSQL-script that is 
really needed for PostgreSQL is 'biosqldb-pg.sql' (plus possibly 
'biosql-accelerators-pg.sql').
I tried the example again (with and without the accelerator-script) with 
the new CVS-RichSequence.Tools method (see below), but still the same 
exceptions are thrown:

org.postgresql.util.PSQLException: ERROR: relation 
"ontology_ontology_id_seq" does not exist

org.hibernate.exception.SQLGrammarException: could not insert: [Ontology]

Exception in thread "main" java.lang.RuntimeException: Error while 
trying to call new class
   org.biojavax.ontology.SimpleComparableOntology(class java.lang.String)



I'm wondering if something with the Hibernate-Configuration is wrong, 
because in the log-file I found two suspicious entries:


2006-02-16 12:35:12,676  INFO [main]
calling method:
org.hibernate.transaction.TransactionManagerLookupFactory.getTransactionManagerLookup(TransactionManagerLookupFactory.java:33)
No TransactionManagerLookup configured (in JTA environment, use of 
read-write or transactional second-level cache is not recommended)

2006-02-16 12:35:12,754  WARN [main]
calling method:
net.sf.ehcache.config.Configurator.configure(Configurator.java:126)
No configuration found. Configuring ehcache from ehcache-failsafe.xml 
found in the classpath: 
jar:file:/home/dreher/Java/hibernate-3.1/lib/ehcache-1.1.jar!/ehcache-failsafe.xml



Since I ran out of ideas, I hope maybe someone has a hint where I could 
search further.

Thanks in advance,
Felix



P.S.: Here's the code-example:



public class HibernateTest {

    static private final Logger logger =
    PredictionLogger.getLogger(HibernateTest.class);

    public static void main(String[] args) {

        SessionFactory hibernateFactory  = new
        Configuration().configure().buildSessionFactory();
        Session session = hibernateFactory.openSession();
        RichObjectFactory.connectToBioSQL(session);
        Transaction tx = session.beginTransaction();
     
        try {
            //create a RichSequence
            FiniteAlphabet dna = (FiniteAlphabet)
            AlphabetManager.alphabetForName("DNA");
            RichSequence seq =
            RichSequence.Tools.createRichSequence("targets", "testseq", 
"acgcttcatctgc", dna);
      
            //add an Annotation to that Sequence
            ComparableTerm ct = 
RichObjectFactory.getDefaultOntology().getOrCreateTerm("projectname");
            seq.getAnnotation().setProperty(ct, "bklf25");
          
            tx.commit();
            System.out.println("Annotation added.");
        }
        catch (Exception ex) {
            tx.rollback();
            System.out.println("Transaction Error.");
            logger.error("Changes rolled back.", ex);
        }
        finally {
            session.close();
        }
    }
}





mark.schreiber at novartis.com wrote:

 >Wow, that tutorial is out of date!
 >
 >The assembly sql is not required any longer. It was specifically put 
in by
 >David Huen (I think) to allow him to store assembly data in biosql. Can
 >anyone comment on the need for the accelerators?
 >
 >As for you second point I would discourage the use of the enrich method
 >whenever possible. It does the best it can but cannot work miracles. If
 >you get a new download of CVS RichSequence.Tools has several
 >createRichSequence methods to avoid the use of this 'anti-pattern'.
 >
 >RichSequence seq =
 >(SimpleRichSequence)RichSequence.Tools.enrich(DNATools.createDNASequence("gattacagattaca","urn:local:seq"));
 >
 >As an aside there is no need to cast the return of enrich if you are
 >assining it to a RichSequence pointer.
 >
 >Hope this helps,
 >
 >- Mark
 >
 >
 >
 >
 >
 >Felix Dreher <dreher at mpiib-berlin.mpg.de>
 >Sent by: biojava-l-bounces at portal.open-bio.org
 >02/15/2006 10:49 PM
 >
 >
 >        To:     biojava-l at biojava.org
 >        cc:     (bcc: Mark Schreiber/GP/Novartis)
 >        Subject:        [Biojava-l] Problem: BioSQL-cvs and/or
RichSequence-Annotation
 >
 >
 >Hello,
 >
 >I have a question regarding the BioSQL-schema-scripts.
 >The tutorial on installing BioSQL
 >(http://www.biojava.org/tutorials/biosql.html) says that three scripts
 >are required:
 >
 >biosqldb-pg.sql
 >biosql-accelerators-pg.sql
 >biosqldb-assembly-pg.sql
 >
 >However, the 'assembly'-script can not be found on the CVS-server.
 >Instead there is another script called 'biosqldb-views-pg.sql'.
 >So I would like to know which scripts should be used.
 >
 >
 >Furthermore I have a problem with adding an annotation (or also a
 >feature) to a RichSequence.
 >As it seems to be a problem with Hibernate and/or the BioSQL-schemas: I
 >use BioJava-live (CVS) from 2 weeks ago and the latest CVS-BioSQL-scripts.
 >
 >When I try the following code, the following Exceptions are thrown
 >(while the execution of line 2).
 >
 >1        RichSequence seq =  (SimpleRichSequence)
 >RichSequence.Tools.enrich(DNATools.createDNASequence("gattacagattaca","urn:local:seq"));
 >2        ComparableTerm ct =
 >RichObjectFactory.getDefaultOntology().getOrCreateTerm("projectname");
 >3        seq.getAnnotation().setProperty(ct, "project_25");
 >
 >
 >
 >
 >Exception in thread "main" java.lang.RuntimeException: Error while
 >trying to call new class
 >org.biojavax.ontology.SimpleComparableOntology(class java.lang.String)
 >        at
 >org.biojavax.bio.db.HibernateRichObjectBuilder.buildObject(HibernateRichObjectBuilder.java:154)
 >        at
 >org.biojavax.RichObjectFactory.getObject(RichObjectFactory.java:97)
 >        at
 >org.biojavax.RichObjectFactory.getDefaultOntology(RichObjectFactory.java:178)
 >        at hibernatetest.Main.main(Main.java:246)
 >Caused by: java.lang.reflect.InvocationTargetException
 >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 >        at
 >sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 >        at
 >sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 >        at java.lang.reflect.Method.invoke(Method.java:585)
 >        at
 >org.biojavax.bio.db.HibernateRichObjectBuilder.buildObject(HibernateRichObjectBuilder.java:138)
 >        ... 3 more
 >Caused by: org.hibernate.exception.SQLGrammarException: could not
 >insert: [Ontology]
 >        at
 >org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
 >        at
 >org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 >        at
 >org.hibernate.id.AbstractPostInsertGenerator.getGenerated(AbstractPostInsertGenerator.java:56)
 >        at
 >org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1994)
 >        at
 >org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
 >        at
 >org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
 >        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
 >        at
 >org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
 >        at
 >org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
 >        at
 >org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
 >        at
 >org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
 >        at
 >org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
 >        at
 >org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
 >        at
 >org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:642)
 >        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:616)
 >        ... 8 more
 >Caused by: org.postgresql.util.PSQLException: ERROR: relation
 >"ontology_ontology_id_seq" does not exist
 >        at
 >org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
 >        at
 >org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
 >        at
 >org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
 >        at
 >org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:430)
 >        at
 >org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:346)
 >        at
 >org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:250)
 >        at
 >org.hibernate.id.AbstractPostInsertGenerator.getGenerated(AbstractPostInsertGenerator.java:42)
 >        ... 20 more
 >
 >
 >
 >Thanks in advance!
 >
 >Greetings,
 >Felix
 >
 >
 >
 >
 >



-- 
Felix Dreher
Max-Planck-Institute for Infection Biology
Campus Charité Mitte
Department of Immunology
Mailing address: Schumannstraße 21/22
Visitors: Virchowweg 12
10117 Berlin
Germany
Tel.: +49 (0)30 28460-254 / -494
Mobile: +49 (0)163 7542426



More information about the Biojava-l mailing list