Example usage for org.json.simple JSONObject writeJSONString

List of usage examples for org.json.simple JSONObject writeJSONString

Introduction

In this page you can find the example usage for org.json.simple JSONObject writeJSONString.

Prototype

public void writeJSONString(Writer out) throws IOException 

Source Link

Usage

From source file:edu.vt.vbi.patric.portlets.TranscriptomicsEnrichment.java

@SuppressWarnings("unchecked")
public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {

    response.setContentType("text/html");
    String callType = request.getParameter("callType");

    switch (callType) {
    case "saveParams": {

        Map<String, String> key = new HashMap<>();
        key.put("feature_id", request.getParameter("feature_id"));

        long pk = (new Random()).nextLong();

        SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

        PrintWriter writer = response.getWriter();
        writer.write("" + pk);
        writer.close();//from  w  w w. j  a v a  2  s. co  m
        break;
    }
    case "getFeatureIds": {
        String pathwayId = request.getParameter("map");
        String featureList = request.getParameter("featureList");
        String algorithm = request.getParameter("algorithm");

        DataApiHandler dataApi = new DataApiHandler(request);

        SolrQuery query = new SolrQuery("pathway_id:(" + pathwayId.replaceAll(",", " OR ")
                + ") AND feature_id:(" + featureList.replaceAll(",", " OR ") + ")");
        query.addFilterQuery("annotation:" + algorithm).setRows(dataApi.MAX_ROWS).addField("feature_id");

        LOGGER.trace("getFeatureIds: [{}] {}", SolrCore.PATHWAY.getSolrCoreName(), query);
        String apiResponse = dataApi.solrQuery(SolrCore.PATHWAY, query);

        Map resp = jsonReader.readValue(apiResponse);
        Map respBody = (Map) resp.get("response");
        List<GenomeFeature> features = dataApi.bindDocuments((List<Map>) respBody.get("docs"),
                GenomeFeature.class);

        JSONArray featureIds = new JSONArray();
        for (GenomeFeature feature : features) {
            featureIds.add(feature.getId());
        }

        response.setContentType("application/json");
        featureIds.writeJSONString(response.getWriter());
        break;
    }
    case "getGenomeIds": {

        String featureIds = request.getParameter("feature_id");
        String pathwayId = request.getParameter("map");

        DataApiHandler dataApi = new DataApiHandler(request);

        String genomeId = "";
        if (featureIds != null && !featureIds.equals("") && pathwayId != null && !pathwayId.equals("")) {
            String[] listFeatureId = featureIds.split(",");

            SolrQuery query = new SolrQuery("pathway_id:(" + pathwayId + ") AND feature_id:("
                    + StringUtils.join(listFeatureId, " OR ") + ")");
            query.addField("genome_id").setRows(listFeatureId.length);

            String apiResponse = dataApi.solrQuery(SolrCore.PATHWAY, query);

            Map resp = jsonReader.readValue(apiResponse);
            Map respBody = (Map) resp.get("response");
            List<Map> sdl = (List<Map>) respBody.get("docs");

            Set<String> listGenomeId = new HashSet<>();
            for (Map doc : sdl) {
                listGenomeId.add(doc.get("genome_id").toString());
            }
            genomeId = StringUtils.join(listGenomeId, ",");
        }
        PrintWriter writer = response.getWriter();
        writer.write(genomeId);
        writer.close();
        break;
    }
    case "download": {

        String _filename = "PathwaySummary";
        String _fileformat = request.getParameter("fileformat");
        String pk = request.getParameter("pk");
        Map<String, String> key = jsonReader
                .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));

        if (key != null && key.containsKey("feature_id")) {
            List<String> featureIDs = Arrays.asList(key.get("feature_id").split(","));
            JSONObject jsonResult = getEnrichmentPathway(request, featureIDs);

            List<String> _tbl_header = new ArrayList<>();
            List<String> _tbl_field = new ArrayList<>();
            JSONArray _tbl_source = (JSONArray) jsonResult.get("results");

            _tbl_header.addAll(Arrays.asList("Pathway Name", "# of Genes Selected   ", "# of Genes Annotated",
                    "% Coverage"));
            _tbl_field.addAll(Arrays.asList("pathway_name", "ocnt", "ecnt", "percentage"));

            ExcelHelper excel = new ExcelHelper("xssf", _tbl_header, _tbl_field, _tbl_source);
            excel.buildSpreadsheet();

            if (_fileformat.equalsIgnoreCase("xlsx")) {

                response.setContentType("application/octetstream");
                response.setProperty("Content-Disposition",
                        "attachment; filename=\"" + _filename + "." + _fileformat + "\"");

                excel.writeSpreadsheettoBrowser(response.getPortletOutputStream());
            } else if (_fileformat.equalsIgnoreCase("txt")) {

                response.setContentType("application/octetstream");
                response.setProperty("Content-Disposition",
                        "attachment; filename=\"" + _filename + "." + _fileformat + "\"");

                response.getWriter().write(excel.writeToTextFile());
            }
        }
        break;
    }
    case "getFeatureTable": {

        String pk = request.getParameter("pk");
        Map<String, String> key = jsonReader
                .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));

        response.setContentType("application/json");
        if (key != null && key.containsKey("feature_id")) {

            List<String> featureIDs = Arrays.asList(key.get("feature_id").split(","));
            JSONObject jsonResult = getEnrichmentPathway(request, featureIDs);

            PrintWriter writer = response.getWriter();
            jsonResult.writeJSONString(writer);
            writer.close();
        } else {
            PrintWriter writer = response.getWriter();
            writer.write("{}");
            writer.close();
        }
        break;
    }
    }
}

From source file:edu.vt.vbi.patric.portlets.PathwayTableSingle.java

@SuppressWarnings("unchecked")
public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {

    response.setContentType("application/json");

    String callType = request.getParameter("callType");

    if (callType != null && callType.equals("savetopk")) {

        String cId = request.getParameter("cId");
        String cType = request.getParameter("cType");
        String map = request.getParameter("map");
        String algorithm = request.getParameter("algorithm");
        String ec_number = request.getParameter("ec_number");

        Map<String, String> key = new HashMap<>();

        if (cId != null && !cId.equals("")) {
            key.put("genomeId", cId);
        }/*  ww  w.j  av a2s  . com*/
        if (cType != null && !cType.equals("")) {
            key.put("cType", cType);
        }

        if (map != null && !map.equals("")) {
            key.put("map", map);
        }

        if (algorithm != null && !algorithm.equals("")) {
            key.put("algorithm", algorithm);
        }

        if (ec_number != null && !ec_number.equals("")) {
            key.put("ec_number", ec_number);
        }

        key.put("which", "download_from_heatmap_feature");

        long pk = (new Random()).nextLong();

        SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

        PrintWriter writer = response.getWriter();
        writer.write("" + pk);
        writer.close();

    } else if (callType != null && callType.equals("show")) {

        JSONObject jsonResult = new JSONObject();
        JSONArray results = new JSONArray();
        String pk = request.getParameter("pk");
        Map<String, String> key = jsonReader
                .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));

        DataApiHandler dataApi = new DataApiHandler(request);
        try {
            SolrQuery query = new SolrQuery("*:*");
            List<String> joinConditions = new ArrayList<>();

            if (key.containsKey("map")) {
                joinConditions.add("pathway_id:(" + key.get("map") + ")");
            }
            if (key.containsKey("algorithm")) {
                joinConditions.add("annotation:(" + key.get("algorithm") + ")");
            }
            if (key.containsKey("ec_number")) {
                joinConditions.add("ec_number:(" + key.get("ec_number").replaceAll(",", " OR ") + ")");
            }
            if (key.containsKey("genomeId")) {
                joinConditions.add("genome_id:(" + key.get("genomeId").replace(",", " OR ") + ")");
            }

            if (!joinConditions.isEmpty()) {
                query.addFilterQuery(SolrCore.PATHWAY.getSolrCoreJoin("feature_id", "feature_id",
                        StringUtils.join(joinConditions, " AND ")));
            }
            query.setRows(10000);

            LOGGER.debug("[{}] {}", SolrCore.FEATURE.getSolrCoreName(), query.toString());

            String apiResponse = dataApi.solrQuery(SolrCore.FEATURE, query);

            Map resp = jsonReader.readValue(apiResponse);
            Map respBody = (Map) resp.get("response");

            int numFound = (Integer) respBody.get("numFound");
            List<GenomeFeature> features = dataApi.bindDocuments((List<Map>) respBody.get("docs"),
                    GenomeFeature.class);

            for (GenomeFeature feature : features) {

                results.add(feature.toJSONObject());
            }

            jsonResult.put("total", numFound);
            jsonResult.put("results", results);
        } catch (IOException e) {
            LOGGER.error(e.getMessage(), e);
        }

        PrintWriter writer = response.getWriter();
        jsonResult.writeJSONString(writer);
        writer.close();
    }
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFileProteomics(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;//from  w  w w .  j a  v a  2s  .c  om

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-proteomics-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-proteomics-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-proteomics-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-proteomics-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFilePPInteractions(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;//w w  w  .  jav a2 s  .co m

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-ppinteractions-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-ppinteractions-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-ppinteractions-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-ppinteractions-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.portlets.ExperimentListPortlet.java

@SuppressWarnings("unchecked")
public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {

    String sraction = request.getParameter("sraction");

    if (sraction != null && sraction.equals("save_params")) {

        Map<String, String> key = new HashMap<>();

        String genomeId = request.getParameter("genomeId");
        String taxonId = "";
        String cType = request.getParameter("context_type");
        String cId = request.getParameter("context_id");
        if (cType != null && cId != null && cType.equals("taxon") && !cId.equals("")) {
            taxonId = cId;//from   w w w. j av a  2s  .c o  m
        }
        String keyword = request.getParameter("keyword");
        String state = request.getParameter("state");
        String ncbi_taxon_id = request.getParameter("ncbi_taxon_id");

        if (genomeId != null && !genomeId.equalsIgnoreCase("")) {
            key.put("genomeId", genomeId);
        }
        if (!taxonId.equalsIgnoreCase("")) {
            key.put("taxonId", taxonId);
        }
        if (keyword != null) {
            key.put("keyword", keyword.trim());
        }
        if (ncbi_taxon_id != null) {
            key.put("ncbi_taxon_id", ncbi_taxon_id);
        }
        if (state != null) {
            key.put("state", state);
        }
        long pk = (new Random()).nextLong();

        SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

        PrintWriter writer = response.getWriter();
        writer.write("" + pk);
        writer.close();

    } else {

        String need = request.getParameter("need");
        JSONObject jsonResult = new JSONObject();

        switch (need) {
        case "0": {
            // Experiments
            String pk = request.getParameter("pk");
            Map data = processExperimentTab(request);

            Map<String, String> key = (Map) data.get("key");
            int numFound = (Integer) data.get("numFound");
            List<Map> experiments = (List<Map>) data.get("experiments");

            JSONArray docs = new JSONArray();
            for (Map item : experiments) {
                JSONObject doc = new JSONObject();
                doc.putAll(item);
                docs.add(doc);
            }

            if (data.containsKey("facets")) {
                JSONObject facets = FacetHelper.formatFacetTree((Map) data.get("facets"));
                key.put("facets", facets.toJSONString());
                SessionHandler.getInstance().set(SessionHandler.PREFIX + pk,
                        jsonWriter.writeValueAsString(key));
            }

            jsonResult.put("results", docs);
            jsonResult.put("total", numFound);

            response.setContentType("application/json");
            PrintWriter writer = response.getWriter();
            writer.write(jsonResult.toString());
            writer.close();

            break;
        }
        case "1": {
            // Comparisons
            Map data = processComparisonTab(request);

            int numFound = (Integer) data.get("numFound");
            List<Map> comparisons = (List<Map>) data.get("comparisons");

            JSONArray docs = new JSONArray();
            for (Map item : comparisons) {
                JSONObject doc = new JSONObject();
                doc.putAll(item);
                docs.add(doc);
            }

            //            key.put("keyword", orig_keyword);

            jsonResult.put("results", docs);
            jsonResult.put("total", numFound);

            response.setContentType("application/json");
            PrintWriter writer = response.getWriter();
            jsonResult.writeJSONString(writer);
            writer.close();

            break;
        }
        case "tree": {

            String pk = request.getParameter("pk");
            Map<String, String> key = jsonReader
                    .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));
            String state;

            if (key.containsKey("state")) {
                state = key.get("state");
            } else {
                state = request.getParameter("state");
            }

            key.put("state", state);

            SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

            JSONArray tree = new JSONArray();
            try {
                if (key.containsKey("facets") && !key.get("facets").equals("{}")) {

                    JSONObject facet_fields = (JSONObject) new JSONParser().parse(key.get("facets"));
                    DataApiHandler dataApi = new DataApiHandler(request);
                    tree = FacetHelper.processStateAndTree(dataApi, SolrCore.TRANSCRIPTOMICS_EXPERIMENT, key,
                            need, facet_fields, key.get("facet"), state, null, 4);
                }
            } catch (ParseException e) {
                LOGGER.error(e.getMessage(), e);
            }

            response.setContentType("application/json");
            PrintWriter writer = response.getWriter();
            tree.writeJSONString(writer);
            writer.close();
            break;
        }
        case "download": {
            List<String> tableHeader = new ArrayList<>();
            List<String> tableField = new ArrayList<>();
            JSONArray tableSource = new JSONArray();

            String fileName = "Transcriptomics";
            String fileFormat = request.getParameter("fileformat");

            String aT = request.getParameter("aT");

            switch (aT) {
            case "0": {
                // experiments
                Map data = processExperimentTab(request);
                List<Map> experiments = (List<Map>) data.get("experiments");

                for (Map item : experiments) {
                    JSONObject doc = new JSONObject();
                    doc.putAll(item);
                    tableSource.add(doc);
                }

                tableHeader.addAll(DownloadHelper.getHeaderForTranscriptomicsExperiment());
                tableField.addAll(DownloadHelper.getFieldsForTranscriptomicsExperiment());
                break;
            }
            case "1": {
                // comparisons
                Map data = processComparisonTab(request);
                List<Map> comparisons = (List<Map>) data.get("comparisons");

                for (Map item : comparisons) {
                    JSONObject doc = new JSONObject();
                    doc.putAll(item);
                    tableSource.add(doc);
                }

                tableHeader.addAll(DownloadHelper.getHeaderForTranscriptomicsComparison());
                tableField.addAll(DownloadHelper.getFieldsForTranscriptomicsComparison());
                break;
            }
            }

            ExcelHelper excel = new ExcelHelper("xssf", tableHeader, tableField, tableSource);
            excel.buildSpreadsheet();

            if (fileFormat.equalsIgnoreCase("xlsx")) {
                response.setContentType("application/octetstream");
                response.addProperty("Content-Disposition",
                        "attachment; filename=\"" + fileName + "." + fileFormat + "\"");

                excel.writeSpreadsheettoBrowser(response.getPortletOutputStream());
            } else if (fileFormat.equalsIgnoreCase("txt")) {

                response.setContentType("application/octetstream");
                response.addProperty("Content-Disposition",
                        "attachment; filename=\"" + fileName + "." + fileFormat + "\"");

                response.getPortletOutputStream().write(excel.writeToTextFile().getBytes());
            }
            break;
        }
        }
    }
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFileSpecialtyGenes(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;/*  w w w  .  ja v  a  2s .  c  o  m*/

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-specialtygenes-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // popular genomes
    data = getPopularGenomesForSpecialtyGene();
    if (data != null) {
        jsonData.put("popularGenomes", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-specialtygenes-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-specialtygenes-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-specialtygenes-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFileGenomicFeatures(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;//  w ww .  j ava 2  s . c  o m

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-genomicfeatures-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // popular genomes
    data = getPopularGenomesForGenomicFeature();
    if (data != null) {
        jsonData.put("popularGenomes", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-genomicfeatures-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-genomicfeatures-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-genomicfeatures-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFileAntibioticResistanceGenes(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;/*from  ww  w.  j  a  v  a2 s.c  o  m*/

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-antibioticresistance-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // popular genomes
    data = this.getPopularGenomesForAntibioticResistanceGene();
    if (data != null) {
        jsonData.put("popularGenomes", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-antibioticresistance-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-antibioticresistance-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-antibioticresistance-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFilePathways(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;/*from w  w  w  .j av a  2 s . c  o m*/

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-pathways-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // conservation
    data = getPathwayECDist();
    if (data != null) {
        jsonData.put("conservation", data);
    }
    // popular genomes
    data = getPopularGenomesForPathways();
    if (data != null) {
        jsonData.put("popularGenomes", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-pathways-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-pathways-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-pathways-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}

From source file:edu.vt.vbi.patric.cache.DataLandingGenerator.java

public boolean createCacheFileProteinFamilies(String filePath) {
    boolean isSuccess = false;
    JSONObject jsonData = new JSONObject();
    JSONObject data;/*www. ja va2  s  .  co m*/

    // from WP
    // data
    data = read(baseURL + "/tab/dlp-proteinfamilies-data/?req=passphrase");
    if (data != null) {
        jsonData.put("data", data);
    }
    // tools
    data = read(baseURL + "/tab/dlp-proteinfamilies-tools/?req=passphrase");
    if (data != null) {
        jsonData.put("tools", data);
    }
    // process
    data = read(baseURL + "/tab/dlp-proteinfamilies-process/?req=passphrase");
    if (data != null) {
        jsonData.put("process", data);
    }
    // download
    data = read(baseURL + "/tab/dlp-proteinfamilies-download/?req=passphrase");
    if (data != null) {
        jsonData.put("download", data);
    }
    //
    // add popularGenra
    data = getPopularGeneraFigfam();
    if (data != null) {
        jsonData.put("popularGenomes", data);
    }
    // add figfam graph data
    data = getProteinFamilies();
    if (data != null) {
        jsonData.put("FIGfams", data);
    }

    // save jsonData to file
    try (PrintWriter jsonOut = new PrintWriter(
            Files.newBufferedWriter(FileSystems.getDefault().getPath(filePath), Charset.defaultCharset()));) {
        jsonData.writeJSONString(jsonOut);
        isSuccess = true;
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
    return isSuccess;
}