From d96895970dee8a130b2a0664048d739e2ed80f59 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 12 Dec 2017 13:48:13 +0100 Subject: [PATCH] intermediate save to continue work at home --- src/de/phenomics/Obo2Xls.java | 61 +++++++++++++++++------------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/src/de/phenomics/Obo2Xls.java b/src/de/phenomics/Obo2Xls.java index fe3c5e0..7a39c33 100644 --- a/src/de/phenomics/Obo2Xls.java +++ b/src/de/phenomics/Obo2Xls.java @@ -3,9 +3,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; import java.util.stream.Collectors; import org.apache.commons.cli.CommandLine; @@ -87,7 +85,7 @@ public static void main(String[] args) throws IOException, ParseException { File oboFilePathFile = new File(oboFilePath); Ontology ontology = OntologyUtil.parseOntology(oboFilePathFile.getAbsolutePath()); - Term selectedRootTerm = null; + Term selectedRootTerm = ontology.getRootTerm(); if (classId != null) { classId = classId.trim(); if (!classId.equals("")) { @@ -131,47 +129,48 @@ private static void createXlsFromObo(Ontology ontology, Term selectedRootTerm, S rowIndex = createHeaderRow(createHelper, style, rowIndex, sheet0, headersTermAdd); - ArrayList termsInTopologicalOrder = ontology.getTermsInTopologicalOrder(); - HashSet termsToReport = new HashSet<>(); - if (selectedRootTerm != null) { - termsToReport.addAll(ontologySlim.getDescendants(selectedRootTerm)); - } else { - termsToReport.addAll(ontology.getAllTerms()); + recursiveWriteTermsAndTheirChildren(); + + for (int i = 0; i < wb.getNumberOfSheets(); i++) { + wb.getSheetAt(i).setDefaultColumnWidth(defaultColumnWidth); } - for (Term term : termsInTopologicalOrder) { + wb.write(fileOut); + fileOut.close(); + } - if (term.isObsolete()) - continue; + private static void recursiveWriteTermsAndTheirChildren() { + // if (term.isObsolete()) + // continue; + // + // if (!termsToReport.contains(term)) + // continue; + // + // createRowForTerm(term, rowIndex++, sheet0, createHelper, ontologySlim); - if (!termsToReport.contains(term)) - continue; + } - Row row = sheet0.createRow((short) rowIndex++); + private static void createRowForTerm(Term term, int rowIndex, Sheet sheet0, XSSFCreationHelper createHelper, + SlimDirectedGraphView ontologySlim) { - int columnIndex = 0; - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getName())); - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getIDAsString())); + Row row = sheet0.createRow((short) rowIndex); - String altIds = Arrays.stream(term.getAlternatives()).map(Object::toString).collect(Collectors.joining("; ")); - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(altIds)); + int columnIndex = 0; - String synonyms = String.join("; ", term.getSynonymsArrayList()); + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getName())); + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getIDAsString())); - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(synonyms)); - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getDefinition())); + String altIds = Arrays.stream(term.getAlternatives()).map(Object::toString).collect(Collectors.joining("; ")); + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(altIds)); - String parents = ontologySlim.getParents(term).stream().map(Object::toString).collect(Collectors.joining("; ")); - row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(parents)); + String synonyms = String.join("; ", term.getSynonymsArrayList()); - } + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(synonyms)); + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(term.getDefinition())); - for (int i = 0; i < wb.getNumberOfSheets(); i++) { - wb.getSheetAt(i).setDefaultColumnWidth(defaultColumnWidth); - } + String parents = ontologySlim.getParents(term).stream().map(Object::toString).collect(Collectors.joining("; ")); + row.createCell(columnIndex++).setCellValue(createHelper.createRichTextString(parents)); - wb.write(fileOut); - fileOut.close(); } private static int createHeaderRow(XSSFCreationHelper createHelper, XSSFCellStyle style, int rowIndex, Sheet sheet, String[] strings) {