Changeset 865


Ignore:
Timestamp:
Jul 23, 2012, 9:47:28 PM (4 years ago)
Author:
hailiang.mei@…
Message:

update logging setup & fix for alternative notations.

Location:
trunk/code/conceptwiki/imports
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/code/conceptwiki/imports/imports-common/src/main/java/nl/nbic/conceptwiki/imports/common/AbstractConceptImporter.java

    r858 r865  
    11package nl.nbic.conceptwiki.imports.common;
    22
     3import java.io.FileWriter;
     4import java.io.IOException;
     5import java.io.PrintWriter;
     6import java.io.StringWriter;
    37import java.util.HashSet;
    48import java.util.Iterator;
     
    3034import org.h2.util.StringUtils;
    3135import org.neo4j.graphdb.Transaction;
     36import org.neo4j.graphdb.TransactionFailureException;
    3237import org.slf4j.Logger;
    3338import org.slf4j.LoggerFactory;
     
    5257     * an initial size for the tag cache.
    5358     */
    54     public static final int INITIAL_TAG_CACHE_SIZE = 1000000;
     59    public static final int INITIAL_TAG_CACHE_SIZE = 2000000;
    5560    /**
    5661     * Import chunk size.
     
    130135     */
    131136    private Set<Concept> tagCache;
     137   
     138    private FileWriter debugWriter;
    132139
    133140    /**
     
    143150    public void start() {
    144151        System.out.println("AbstractConceptImporter.start()");
     152       
     153        try {
     154                debugWriter = new FileWriter("/tmp/swissprot_debug.log");
     155        } catch (IOException e) {
     156                logger.error("Could not open debug log file to write to", e);
     157        }
     158       
    145159        if (reader.requiresBootstrap()) {
    146160            processBootstrapConcepts(reader.getBootstrapConcepts());
    147             //FIXME is this the best way to send bootstrap concepts to the specific layer?
     161//            //FIXME is this the best way to send bootstrap concepts to the specific layer?
    148162            configureBootstrapConceptsAtImporter(reader.getBootstrapConcepts());
    149163            processBootstrapTags(reader.getBootstrapConceptTags());
     
    155169        processTriples(reader.getNewTriples());
    156170        processDeletedTriples(reader.getDeletedTriples());
     171       
     172        try {
     173                debugWriter.close();
     174        } catch (IOException e) {
     175                logger.warn("Could not properly close the debugwriter", e);
     176        }
    157177    }
    158178   
     
    228248               
    229249                if (!conceptUtility.changeSetIsEmpty(diffInImportBranch)) {
    230                     conceptService.updateConcept(target.getUuid(), diffInImportBranch, importBranch);
     250                        try {
     251                                conceptService.updateConcept(target.getUuid(), diffInImportBranch, importBranch);
     252                        } catch (Exception e) {
     253                                try {
     254                                        debugWriter.write(conceptUtility.getPreferredLabel(potentialSwissProtConcept, LANG_EN).getText() + "\n");
     255                                        for (Notation notation : potentialSwissProtConcept.getNotations()) {
     256                                                debugWriter.write(notation.getCode() + "\n");
     257                                        }                                               
     258                                        debugWriter.write(e.getMessage()+"\n");
     259                                       
     260                                        final StringWriter sw = new StringWriter();
     261                                        final PrintWriter writer = new PrintWriter(sw);
     262                                        e.printStackTrace(writer);
     263                                        debugWriter.write(sw.toString() + "\n");
     264                                       
     265                                        debugWriter.write("-------------------\n\n");
     266                                        debugWriter.flush();
     267                                                                               
     268                                } catch (IOException ioe) {
     269                                        logger.warn("Could not write to debug file", ioe);
     270                                }
     271                        }
     272                   
    231273                }       
    232274               
     
    673715    private Transaction updateTransaction(final Transaction tx, final int position, final int batchSize) {
    674716        if (position % batchSize == 0) {
    675             finishTransaction(tx, position);
     717                try {
     718                        finishTransaction(tx, position);
     719                } catch (TransactionFailureException e) {
     720                        logger.warn("Could not commit transaction due to unknown cause", e);
     721                        final StringWriter sw = new StringWriter();
     722                        final PrintWriter writer = new PrintWriter(sw);
     723                        e.printStackTrace(writer);             
     724                }
    676725            return startTransaction();
    677726        }
  • trunk/code/conceptwiki/imports/imports-swissprot/src/main/java/nl/nbic/conceptwiki/imports/swissprot/SwissProtImporter.java

    r858 r865  
    55
    66import java.io.IOException;
    7 //import java.util.Date;
     7import java.util.Date;
    88import java.util.Iterator;
    99import java.util.List;
     
    2323import org.slf4j.Logger;
    2424import org.slf4j.LoggerFactory;
    25 //import org.springframework.context.ApplicationContext;
    26 //import org.springframework.context.support.ClassPathXmlApplicationContext;
     25import org.springframework.context.ApplicationContext;
     26import org.springframework.context.support.ClassPathXmlApplicationContext;
    2727import org.springframework.stereotype.Service;
    2828
     
    137137            // get the mapped UMLS concept in SwissProt branch.           
    138138           
    139             final List<Concept> umlsConcepts =
    140                     conceptService.getConceptsByNotation(mappedUMLSID, QueryScopeImpl.FULL_SCOPE, SEARCH_LIMIT, UMLS_BRANCH);
     139            final List<Concept> umlsConcepts = conceptService.getConceptsByNotation(mappedUMLSID, FULL_SCOPE, SEARCH_LIMIT, UMLS_BRANCH);
    141140           
    142141            if (umlsConcepts.size() == 1) {
     
    254253    @Override
    255254    protected Concept getBootstrapTag(final Concept concept) {
    256                
    257         // hardcoded way handling UMLS gene tag and protein tag.       
     255//     
     256//      for (Notation notation : concept.getNotations()) {
     257//              System.out.println(notation.getCode());
     258//      }
     259//     
     260//      for (Label label : concept.getLabels()) {
     261//              System.out.println(label.getText());
     262//      }
     263       
     264        // hardcoded way handling UMLS gene tag and protein tag.
    258265        if (conceptUtility.getPreferredLabel(concept, LANG_EN) != null) {
    259266            if (PROTEIN_TYPE.equals(conceptUtility.getPreferredLabel(concept, LANG_EN).getText())) {
     
    436443        }
    437444       
     445//        if (count > 1) {
     446//            throw new RuntimeException("Search with notation and tag results to more than 1 hits: "
     447//                    + notation.getCode() + FILED_SEPARATOR + conceptUtility.getPreferredLabel(tag, LANG_EN).getText());
     448//        }
     449       
    438450        if (count > 1) {
    439             throw new RuntimeException("Search with notation and tag results to more than 1 hits: "
    440                     + notation.getCode() + FILED_SEPARATOR + conceptUtility.getPreferredLabel(tag, LANG_EN).getText());
     451                return null;
    441452        }
    442453       
     
    506517        if (count > 1) {     
    507518            final String tagLabel = (tag == null) ? "null" : conceptUtility.getPreferredLabel(tag, LANG_EN).getText();
     519            System.out.println("label: " + label.getText());
     520            System.out.println("count: " + count);
     521            System.out.println("branchId: " + branchId);
     522            if (tag != null) {
     523                System.out.println("required tag: " + tag.getUuid());
     524            }
     525            for (Concept result: results) {             
     526                System.out.println("result: " + result.getUuid());
     527                for (Label haslabel : result.getLabels()) {
     528                        System.out.println("haslabel: " + haslabel.getType().toString() + " : " + haslabel.getText());
     529                }
     530                for (Concept hastag : result.getTags()) {
     531                        System.out.println("hastag: " + hastag.getUuid());
     532                        System.out.println("hastag: " + conceptUtility.getPreferredLabel(hastag, LANG_EN).getText());
     533                }
     534            }
     535           
    508536            throw new RuntimeException("Search with label and tag results to more than 1 hits: "
    509537                    + label.getText() + FILED_SEPARATOR + tagLabel); 
     
    689717//    }
    690718   
    691 //    /**
    692 //     * Main loop.
    693 //     * @param args input arguments
    694 //     * @throws Exception in case errors
    695 //     */
    696 //    public static void main(final String[] args) throws Exception {
    697 //        final Date date = new Date();
    698 //       
    699 //        final ApplicationContext ctx = new ClassPathXmlApplicationContext(
    700 //                "nl/nbic/conceptwiki/imports/swissprot/import-swissprot-context.xml");
    701 //        final SwissProtImporter spImporter = (SwissProtImporter)ctx.getBean(SwissProtImporter.class);
    702 //
    703 //       
    704 //        final long start = date.getTime();
    705 //               
    706 //        // start the import
    707 //        spImporter.init();
    708 //        spImporter.start();
    709 //        final long end = date.getTime();
    710 //       
    711 //        System.out.println("started :" + start);
    712 //        System.out.println("ended :" + end);
    713 //       
    714 //        final String duration = Long.toString((end - start)/1000/60);
    715 //       
    716 //        System.out.println("Done! SwissProt import finished in " + duration + " minutes.");
    717 //    }
     719    void test() {
     720        Concept tag = null;
     721        Concept resultConcept = null;
     722        int count = 0;
     723       
     724        String input = "ADM";
     725               
     726        final List<Concept> results = conceptService.getConceptsByLabelExactMatch(
     727                        input, FULL_SCOPE, SEARCH_LIMIT, CONCEPTWIKI_BRANCH);
     728       
     729        for (Concept result: results) {
     730            if (tag == null || (tag != null && result.getTags().contains(tag))) {
     731                // when tag is undefined or the defined tag is found.
     732                count++;
     733                resultConcept = result;
     734            }
     735        }
     736       
     737        if (count > 1) {     
     738            final String tagLabel = (tag == null) ? "null" : conceptUtility.getPreferredLabel(tag, LANG_EN).getText();
     739            throw new RuntimeException("Search with label and tag results to more than 1 hits: "
     740                    + input + FILED_SEPARATOR + tagLabel); 
     741        }
     742       
     743    }
     744   
     745    /**
     746     * Main loop.
     747     * @param args input arguments
     748     * @throws Exception in case errors
     749     */
     750    public static void main(final String[] args) throws Exception {
     751       
     752        final ApplicationContext ctx = new ClassPathXmlApplicationContext(
     753                "nl/nbic/conceptwiki/imports/swissprot/import-swissprot-context.xml");
     754        final SwissProtImporter spImporter = (SwissProtImporter)ctx.getBean(SwissProtImporter.class);
     755
     756        final long start = new Date().getTime();
     757               
     758//         start the import
     759        spImporter.init();
     760        spImporter.start();
     761       
     762//        spImporter.test();
     763       
     764        final long end = new Date().getTime();
     765       
     766        System.out.println("started :" + start);
     767        System.out.println("ended :" + end);
     768       
     769        final String duration = Long.toString((end - start)/1000/60);
     770       
     771        System.out.println("Done! SwissProt import finished in " + duration + " minutes.");
     772    }
    718773}
  • trunk/code/conceptwiki/imports/imports-swissprot/src/main/java/nl/nbic/conceptwiki/imports/swissprot/SwissProtReader.java

    r858 r865  
    210210    public void setDataSource(final T dataSource) {
    211211
    212         System.out.println("SwissProtReader.setDataSource()");
     212        logger.info("SwissProtReader.setDataSource()");
    213213        this.dataSource = (SwissProtDataSource)dataSource;
    214214       
     
    262262    @Override
    263263    public Iterator<BootstrapConceptEnvelop> getBootstrapConcepts() {
    264         System.out.println("SwissProtReader.getBootstrapConcepts()");
     264        logger.info("SwissProtReader.getBootstrapConcepts()");
    265265        return bootstrapConcepts.iterator();
    266266    }
     
    268268    @Override
    269269    public Iterator<BootstrapConceptEnvelop> getBootstrapTags() {
    270         System.out.println("SwissProtReader.getBootstrapTags()");
     270        logger.info("SwissProtReader.getBootstrapTags()");
    271271        Iterator<BootstrapConceptEnvelop> iter = null;
    272272       
     
    286286    @Override
    287287    public Iterator<Concept> getDeletedConcepts() {
    288         System.out.println("SwissProtReader.getDeletedConcepts()");
     288        logger.info("SwissProtReader.getDeletedConcepts()");
    289289        Iterator<Concept> iter = null;
    290290       
     
    347347    @Override
    348348    public Iterator<Concept> getNewConcepts() {
    349         System.out.println("SwissProtReader.getNewConcepts()");
     349        logger.info("SwissProtReader.getNewConcepts()");
    350350       
    351351        Iterator<Concept> iter = null;
     
    373373    @Override
    374374    public Iterator<Triple> getNewTriples() {
    375         System.out.println("SwissProtReader.getNewTriples()");
     375        logger.info("SwissProtReader.getNewTriples()");
    376376        Iterator<Triple> iter = null;       
    377377        try {
     
    398398       
    399399        // Some bootstrap concepts should be made as tags.
    400         final Set<BootstrapConceptEnvelop> bootstrapTags =  Sets.newHashSet(); //loadBootstrapTagsFromBoostrapConcepts();
     400        final Set<BootstrapConceptEnvelop> bootstrapTags =  Sets.newHashSet();
    401401       
    402402        final Map<String, BootstrapConceptEnvelop> bootstrapGenericProteinTags = Maps.newHashMap();
     
    695695//                    .build();
    696696        }
    697        
     697               
    698698        final String genericGenePreferredName = getGenericGenePreferredNameFromEntry(entry);
    699699       
Note: See TracChangeset for help on using the changeset viewer.