Search in sources :

Example 1 with CmdGenerateReport

use of org.eol.globi.tool.CmdGenerateReport in project eol-globi-data by jhpoelen.

the class Elton4N method importWithVersion.

private void importWithVersion(CommandLine cmdLine, String neo4jVersion) throws StudyImporterException {
    final String graphDbDirPath = cmdLine.getOptionValue(CmdOptionConstants.OPTION_GRAPHDB_DIR, "graph.db");
    Factories factoriesNeo4j = new Factories() {

        final GraphServiceFactory factory = new GraphServiceFactoryImpl(new File(graphDbDirPath));

        final NodeFactoryFactory nodeFactoryFactory = StringUtils.equals("2", neo4jVersion) ? new NodeFactoryFactoryTransactingOnDatasetNeo4j2(factory) : new NodeFactoryFactoryTransactingOnDatasetNeo4j3(factory);

        @Override
        public GraphServiceFactory getGraphServiceFactory() {
            return factory;
        }

        @Override
        public NodeFactoryFactory getNodeFactoryFactory() {
            return nodeFactoryFactory;
        }
    };
    try {
        String datasetDir = CmdUtil.getDatasetDir(cmdLine);
        GraphServiceFactory graphServiceFactory = factoriesNeo4j.getGraphServiceFactory();
        List<Cmd> steps = new ArrayList<>();
        LOG.info("processing steps: [" + StringUtils.join(cmdLine.getArgList(), ", ") + "]");
        if (cmdLine.getArgList().isEmpty() || cmdLine.getArgList().contains(ELTON_STEP_COMPILE)) {
            steps.add(new CmdImportDatasets(factoriesNeo4j.getNodeFactoryFactory(), graphServiceFactory, datasetDir));
        }
        String exportDir = cmdLine.getOptionValue(CmdOptionConstants.OPTION_EXPORT_DIR, ".");
        CmdInterpretTaxa interpretTaxa = createInterpretTaxaCmd(cmdLine, graphServiceFactory, exportDir);
        if (cmdLine.getArgList().isEmpty() || cmdLine.getArgList().contains(ELTON_STEP_LINK_NAMES)) {
            steps.add(interpretTaxa);
        }
        if (cmdLine.getArgList().isEmpty() || cmdLine.getArgList().contains(ELTON_STEP_LINK)) {
            if (!steps.contains(interpretTaxa)) {
                steps.add(interpretTaxa);
            }
            steps.addAll(Arrays.asList(new CmdIndexTaxa(graphServiceFactory), new CmdIndexTaxonStrings(graphServiceFactory), new CmdGenerateReport(graphServiceFactory.getGraphService())));
        }
        CmdExportInteractionsTSV interactionsTSVExporter = new CmdExportInteractionsTSV(graphServiceFactory, new File(exportDir));
        if (cmdLine.getArgList().isEmpty() || cmdLine.getArgList().contains(ELTON_STEP_PACKAGE_INTERACTIONS_TSV)) {
            steps.add(interactionsTSVExporter);
        }
        if (cmdLine.getArgList().isEmpty() || cmdLine.getArgList().contains(ELTON_STEP_PACKAGE)) {
            if (!steps.contains(interactionsTSVExporter)) {
                steps.add(interactionsTSVExporter);
            }
            steps.add(new CmdExport(graphServiceFactory, new File(exportDir)));
        }
        for (Cmd step : steps) {
            step.run();
        }
    } finally {
        HttpUtil.shutdown();
    }
}
Also used : NodeFactoryFactory(org.eol.globi.tool.NodeFactoryFactory) CmdInterpretTaxa(org.eol.globi.tool.CmdInterpretTaxa) ArrayList(java.util.ArrayList) CmdImportDatasets(org.eol.globi.tool.CmdImportDatasets) CmdExport(org.eol.globi.tool.CmdExport) GraphServiceFactoryImpl(org.eol.globi.db.GraphServiceFactoryImpl) CmdIndexTaxonStrings(org.eol.globi.tool.CmdIndexTaxonStrings) CmdIndexTaxa(org.eol.globi.tool.CmdIndexTaxa) NodeFactoryFactoryTransactingOnDatasetNeo4j3(org.eol.globi.tool.NodeFactoryFactoryTransactingOnDatasetNeo4j3) CmdExportInteractionsTSV(org.eol.globi.tool.CmdExportInteractionsTSV) CmdGenerateReport(org.eol.globi.tool.CmdGenerateReport) GraphServiceFactory(org.eol.globi.db.GraphServiceFactory) Cmd(org.eol.globi.tool.Cmd) Factories(org.eol.globi.tool.Factories) File(java.io.File) NodeFactoryFactoryTransactingOnDatasetNeo4j2(org.eol.globi.tool.NodeFactoryFactoryTransactingOnDatasetNeo4j2)

Example 2 with CmdGenerateReport

use of org.eol.globi.tool.CmdGenerateReport in project eol-globi-data by jhpoelen.

the class CypherTestUtil method validate.

public static void validate(CypherQuery cypherQuery, GraphDatabaseService graphDatabaseService) {
    try (Transaction tx = graphDatabaseService.beginTx()) {
        new NodeFactoryNeo4j2(graphDatabaseService);
        new NonResolvingTaxonIndex(graphDatabaseService);
        new LinkerTaxonIndex(new GraphServiceFactoryProxy(graphDatabaseService)).index();
        CacheService cacheService = new CacheService();
        File cacheDir = new File("target/reportGeneration" + UUID.randomUUID());
        cacheService.setCacheDir(cacheDir);
        CmdGenerateReport reportGenerator = new CmdGenerateReport(graphDatabaseService, cacheService);
        reportGenerator.run(NOPLogger.NOP_LOGGER);
        Map<String, Object> params = cypherQuery.getParams() == null ? Collections.emptyMap() : new HashMap<>(cypherQuery.getParams());
        try {
            graphDatabaseService.execute(cypherQuery.getVersionedQuery(), params);
        } catch (NullPointerException ex) {
            // encountered nullpointer exceptions were caused by initialization of graph database
            throw ex;
        } catch (RuntimeException ex) {
            // work fine in cypher query, but cause parse exception when running programatically
            if (!ex.getMessage().contains("Encountered \" \":\" \": \"\"")) {
                throw ex;
            }
        } finally {
            FileUtils.deleteQuietly(cacheDir);
        }
    }
}
Also used : NonResolvingTaxonIndex(org.eol.globi.taxon.NonResolvingTaxonIndex) GraphServiceFactoryProxy(org.eol.globi.db.GraphServiceFactoryProxy) LinkerTaxonIndex(org.eol.globi.tool.LinkerTaxonIndex) Transaction(org.neo4j.graphdb.Transaction) CmdGenerateReport(org.eol.globi.tool.CmdGenerateReport) File(java.io.File) NodeFactoryNeo4j2(org.eol.globi.data.NodeFactoryNeo4j2) CacheService(org.eol.globi.service.CacheService)

Aggregations

File (java.io.File)2 CmdGenerateReport (org.eol.globi.tool.CmdGenerateReport)2 ArrayList (java.util.ArrayList)1 NodeFactoryNeo4j2 (org.eol.globi.data.NodeFactoryNeo4j2)1 GraphServiceFactory (org.eol.globi.db.GraphServiceFactory)1 GraphServiceFactoryImpl (org.eol.globi.db.GraphServiceFactoryImpl)1 GraphServiceFactoryProxy (org.eol.globi.db.GraphServiceFactoryProxy)1 CacheService (org.eol.globi.service.CacheService)1 NonResolvingTaxonIndex (org.eol.globi.taxon.NonResolvingTaxonIndex)1 Cmd (org.eol.globi.tool.Cmd)1 CmdExport (org.eol.globi.tool.CmdExport)1 CmdExportInteractionsTSV (org.eol.globi.tool.CmdExportInteractionsTSV)1 CmdImportDatasets (org.eol.globi.tool.CmdImportDatasets)1 CmdIndexTaxa (org.eol.globi.tool.CmdIndexTaxa)1 CmdIndexTaxonStrings (org.eol.globi.tool.CmdIndexTaxonStrings)1 CmdInterpretTaxa (org.eol.globi.tool.CmdInterpretTaxa)1 Factories (org.eol.globi.tool.Factories)1 LinkerTaxonIndex (org.eol.globi.tool.LinkerTaxonIndex)1 NodeFactoryFactory (org.eol.globi.tool.NodeFactoryFactory)1 NodeFactoryFactoryTransactingOnDatasetNeo4j2 (org.eol.globi.tool.NodeFactoryFactoryTransactingOnDatasetNeo4j2)1