/* * EuroCarbDB, a framework for carbohydrate bioinformatics * * Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * A copy of this license accompanies this distribution in the file LICENSE.txt. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * Last commit: $Rev: 1549 $ by $Author: glycoslave $ on $Date:: 2009-07-19 #$ */ package org.eurocarbdb.action.hplc; import java.util.*; import java.lang.*; import org.apache.log4j.Logger; import org.apache.commons.io.FileUtils; import org.eurocarbdb.action.*; import org.eurocarbdb.action.*; import org.eurocarbdb.dataaccess.*; import org.eurocarbdb.dataaccess.hplc.*; import org.eurocarbdb.dataaccess.core.*; import org.eurocarbdb.dataaccess.hibernate.*; import static org.eurocarbdb.dataaccess.Eurocarb.getEntityManager; import org.eurocarbdb.dataaccess.EntityManager; import org.hibernate.*; import org.hibernate.cfg.*; //add glycan structures references public class ReferenceUpload extends EurocarbAction implements RequiresLogin { EntityManager em = Eurocarb.getEntityManager(); protected static final Logger logger = Logger.getLogger (ReferenceUpload.class.getName()); public String execute() throws Exception { List<Ref> allReferences = (List<Ref>) em.getQuery("org.eurocarbdb.dataaccess.hplc.Ref.SELECT_ALL").list(); for (Ref r : allReferences) { Integer pubmed_id = r.getMedUi(); String author = r.getAuthor(); String title = r.getTitle(); Short year = r.getPubYear(); String journal_name = r.getJournal(); Integer volume = r.getVolume(); Integer startPage = r.getStartPage(); Integer endPage = r.getStartPage(); Short ogbi = r.getOgbiId(); int pubyear = year.intValue(); String pubmedId = pubmed_id.toString(); String comments = "Generated from GlycoBase entry (published data)"; JournalReference jr = new JournalReference(); logger.info("Pubmed Id" + pubmed_id); jr.setJournal(Journal.createOrLookup(journal_name)); jr.setPubmedId(pubmed_id); jr.setAuthors(author); jr.setTitle(title); jr.setPublicationYear(pubyear); jr.setJournalVolume(volume); jr.setFirstPage(startPage); jr.setLastPage(endPage); jr.setContributor(Contributor.getCurrentContributor()); jr.setReferenceComments(comments); logger.info("what the hell"); jr.storeOrLookup(); em.flush(); } List<Glycan> allGlycans = (List<Glycan>) em.getQuery("org.eurocarbdb.dataaccess.hplc.Glycan.SELECT_ALL").list(); for(Glycan g : allGlycans) { int glycanId = g.getGlycanId(); List<RefLink> FindGlycanIdLink = (List<RefLink>) em.getQuery("org.eurocarbdb.dataaccess.hplc.RefLink.REFERENCE_IMPORT").setParameter("glycanId", glycanId).list(); for (Iterator glycanRef = FindGlycanIdLink.iterator(); glycanRef.hasNext();) { Object [] referenceStore = (Object []) glycanRef.next(); Integer pubmed_id = (Integer) referenceStore[5]; String pubmedId = pubmed_id.toString(); Integer ogbi = (Integer) referenceStore[9]; Integer lookupRefId = (Integer) referenceStore[10]; GlycanSequence glycanSeq = em.lookup (GlycanSequence.class, ogbi); //jrSeq.setPubmedId(pubmed_id); //jrSeq.storeOrLookup(); if (glycanSeq != null) { JournalReference jrSeq = JournalReference.createOrLookup(pubmed_id); int refId = jrSeq.getReferenceId(); int glycanSeqId = glycanSeq.getGlycanSequenceId(); logger.info("test here" + pubmed_id + "refid" + refId); logger.info("we are here"); glycanSeq.addReference( jrSeq ); logger.info("something here"); int glycanRefId = jrSeq.getReferenceId(); int numberUpdates = em.getQuery("org.eurocarbdb.dataaccess.hplc.RefLink.UPDATE_CORE_REFERENCE_ID") .setParameter("glycanId", glycanId) .setParameter("storedCoreRefId", glycanRefId) .setParameter("lookupRefId", lookupRefId) .executeUpdate(); em.flush(); } } } /*List<Glycan> allGlycans = (List<Glycan>) em.getQuery("org.eurocarbdb.dataaccess.hplc.Glycan.SELECT_ALL").list(); for(Glycan g : allGlycans) { //for(Iterator glycanEntry = allGlycans.iterator(); glycanEntry.hasNext();) { //Object [] glycanStore = (Object []) glycanEntry.next(); //Integer glycanId = (Integer) glycanStore[0]; int glycanId = g.getGlycanId(); List<RefLink> allReferences = (List<RefLink>) em.getQuery("org.eurocarbdb.dataaccess.hplc.RefLink.REFERENCE_IMPORT").setParameter("glycanId", glycanId).list(); for (Iterator glycanRef = allReferences.iterator(); glycanRef.hasNext();) { Object [] referenceStore = (Object []) glycanRef.next(); Integer pubmed_id = (Integer) referenceStore[5]; String author = (String) referenceStore[0]; String title = (String) referenceStore[1]; Short year = (Short) referenceStore[3]; String journal_name = (String) referenceStore[2]; Integer volume = (Integer) referenceStore[4]; Integer startPage = (Integer) referenceStore[6]; Integer endPage = (Integer) referenceStore[7]; Integer ogbi = (Integer) referenceStore[9]; Integer glycanFound = (Integer) referenceStore[8]; logger.info("whatthehell" + pubmed_id); int pubyear = year.intValue(); String pubmedId = pubmed_id.toString(); String glycanIdConvert = glycanFound.toString(); //String type = "database"; String comments = "Generated from GlycoBase entry"; //String refName = "GlycoBaseNIBRT"; logger.info("lookingatglycanid" + glycanFound + "query by" + glycanId); logger.info("ogbi translation id" + ogbi); JournalReference jr = new JournalReference(); logger.info("Pubmed Id" + pubmed_id); jr.setJournal(Journal.createOrLookup(journal_name)); jr.setPubmedId(pubmed_id); jr.setAuthors(author); jr.setTitle(title); jr.setPublicationYear(pubyear); jr.setJournalVolume(volume); jr.setFirstPage(startPage); jr.setLastPage(endPage); jr.setContributor(Contributor.getCurrentContributor()); jr.setReferenceComments(comments); //jr.setReferenceType(type); //jr.setExternalReferenceName(refName); jr.storeOrLookup(); em.flush(); int RefId = jr.getReferenceId(); logger.info("the returned refId is:" + RefId); //Reference r = em.lookup (Reference.class, RefId); GlycanSequence glycanSeq = em.lookup (GlycanSequence.class, ogbi); glycanSeq.addReference( jr ); /* int RefId = jr.getReferenceId(); logger.info("the returned refId is:" + RefId); //if (ogbi > 0 ) { //Reference r = em.lookup (Reference.class, RefId); GlycanSequence glycanSeq = em.lookup (GlycanSequence.class, ogbi); glycanSeq.addReference( jr ); //} */ //} return SUCCESS; } }