From 829b8f3dba3cae460c17655b56dc5fcae6c04771 Mon Sep 17 00:00:00 2001 From: Sana Shah <54493565+sanashah007@users.noreply.github.com> Date: Tue, 13 Aug 2024 10:59:38 -0400 Subject: [PATCH] fix: use Files.newOutputStream() to write and logger for errors --- .../tools/walkers/conversion/GtfInfo.java | 4 ++-- .../tools/walkers/conversion/GtfToBed.java | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfInfo.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfInfo.java index 92991b249a1..c73564da52e 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfInfo.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfInfo.java @@ -2,9 +2,9 @@ import htsjdk.samtools.util.Interval; -public class GtfInfo{ +public class GtfInfo { - public enum Type{ + public enum Type { GENE, TRANSCRIPT } diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfToBed.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfToBed.java index 678a921a44e..d1a6e2d46b7 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfToBed.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/conversion/GtfToBed.java @@ -5,8 +5,12 @@ import htsjdk.samtools.SamReaderFactory; import htsjdk.samtools.util.*; import htsjdk.tribble.Feature; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; import org.broadinstitute.barclay.argparser.Argument; import org.broadinstitute.barclay.argparser.CommandLineProgramProperties; +import org.broadinstitute.barclay.argparser.WorkflowProperties; +import org.broadinstitute.barclay.help.DocumentedFeature; import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions; import org.broadinstitute.hellbender.cmdline.programgroups.ShortVariantDiscoveryProgramGroup; import org.broadinstitute.hellbender.engine.*; @@ -14,10 +18,10 @@ import org.broadinstitute.hellbender.utils.Utils; import org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfFeature; -import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; import java.util.*; /** @@ -74,13 +78,14 @@ programGroup = ShortVariantDiscoveryProgramGroup.class ) +@DocumentedFeature +@WorkflowProperties public class GtfToBed extends FeatureWalker { public static final String SORT_BY_TRANSCRIPT_LONG_NAME = "sort-transcript"; public static final String SEQUENCE_DICTIONARY_LONG_NAME = "gtf-dictionary"; public static final String SORT_BY_BASIC_LONG_NAME = "sort-basic"; public static final String INPUT_LONG_NAME = "gtf-path"; - - + protected final Logger logger = LogManager.getLogger(this.getClass()); @Argument(fullName = INPUT_LONG_NAME, doc = "Path to Gencode GTF file") public GATKPath inputFile; @@ -146,7 +151,7 @@ private List> getOptionalFields(GencodeGtfFea try { optionalFields = gtfFeature.getOptionalField("tag"); } catch (Exception e) { - System.err.println("Could not retrieve optional fields: " + e.getMessage()); + logger.error("Could not retrieve optional fields: ", e); } return optionalFields; } @@ -281,11 +286,11 @@ private LinkedHashMap getSortedMap(SAMSequenceDictionary sequen // writes to bed file private void writeToBed(GtfInfo.Type type, Map sortedMap) { - try (BufferedWriter writer = new BufferedWriter(new FileWriter(String.valueOf(outputFile)))) { + try (final OutputStream writer = Files.newOutputStream(outputFile.toPath())) { for (Map.Entry entry : sortedMap.entrySet()) { if (entry.getValue().getType() == type) { String line = formatBedLine(entry, type); - writer.write(line + System.lineSeparator()); + writer.write((line + System.lineSeparator()).getBytes()); } } } catch (IOException e) {