|
17 | 17 |
|
18 | 18 | import au.com.bytecode.opencsv.CSVReader; |
19 | 19 | import au.com.bytecode.opencsv.CSVWriter; |
20 | | -import htsjdk.samtools.SAMFormatException; |
21 | 20 | import htsjdk.samtools.SAMRecord; |
22 | | -import htsjdk.samtools.SAMRecordIterator; |
23 | | -import htsjdk.samtools.SamReader; |
24 | | -import htsjdk.samtools.SamReaderFactory; |
25 | | -import htsjdk.samtools.ValidationStringency; |
26 | 21 | import htsjdk.samtools.fastq.FastqReader; |
27 | 22 | import htsjdk.samtools.fastq.FastqRecord; |
28 | 23 | import htsjdk.samtools.fastq.FastqWriter; |
29 | 24 | import htsjdk.samtools.fastq.FastqWriterFactory; |
30 | 25 | import htsjdk.samtools.reference.IndexedFastaSequenceFile; |
31 | 26 | import htsjdk.samtools.reference.ReferenceSequence; |
| 27 | +import htsjdk.samtools.util.IOUtil; |
32 | 28 | import htsjdk.samtools.util.Interval; |
33 | 29 | import htsjdk.samtools.util.IntervalList; |
34 | 30 | import org.apache.commons.io.FileUtils; |
35 | 31 | import org.apache.commons.lang3.StringUtils; |
36 | 32 | import org.apache.logging.log4j.Logger; |
37 | | -import org.apache.logging.log4j.LogManager; |
38 | 33 | import org.labkey.api.data.Container; |
39 | 34 | import org.labkey.api.data.DbScope; |
40 | 35 | import org.labkey.api.data.SimpleFilter; |
|
46 | 41 | import org.labkey.api.reader.Readers; |
47 | 42 | import org.labkey.api.security.User; |
48 | 43 | import org.labkey.api.sequenceanalysis.model.AnalysisModel; |
49 | | -import org.labkey.api.util.FileType; |
50 | 44 | import org.labkey.api.util.Pair; |
51 | | -import org.labkey.api.util.StringUtilsLabKey; |
52 | 45 | import org.labkey.api.writer.PrintWriters; |
53 | 46 | import org.labkey.sequenceanalysis.SequenceAnalysisSchema; |
54 | | -import org.labkey.sequenceanalysis.api.picard.CigarPositionIterable; |
55 | 47 | import org.labkey.sequenceanalysis.run.alignment.FastqCollapser; |
56 | 48 | import org.labkey.sequenceanalysis.run.util.FlashWrapper; |
57 | 49 | import org.labkey.sequenceanalysis.run.util.NTSnp; |
58 | 50 | import org.labkey.sequenceanalysis.util.ReferenceLibraryHelperImpl; |
59 | 51 | import org.labkey.sequenceanalysis.util.SequenceUtil; |
60 | 52 |
|
61 | 53 | import java.io.BufferedReader; |
62 | | -import java.io.BufferedWriter; |
63 | 54 | import java.io.File; |
64 | | -import java.io.FileInputStream; |
65 | | -import java.io.FileOutputStream; |
66 | 55 | import java.io.IOException; |
67 | | -import java.io.InputStreamReader; |
68 | | -import java.io.OutputStream; |
69 | | -import java.io.OutputStreamWriter; |
70 | 56 | import java.io.PrintWriter; |
71 | | -import java.nio.charset.StandardCharsets; |
72 | 57 | import java.util.ArrayList; |
73 | 58 | import java.util.Arrays; |
74 | 59 | import java.util.Collection; |
|
81 | 66 | import java.util.Map; |
82 | 67 | import java.util.Set; |
83 | 68 | import java.util.TreeSet; |
84 | | -import java.util.zip.GZIPOutputStream; |
85 | 69 |
|
86 | 70 | /** |
87 | 71 | * User: bimber |
@@ -303,22 +287,9 @@ public String getKey(SAMRecord record) |
303 | 287 | ; |
304 | 288 | } |
305 | 289 |
|
306 | | - public OutputStream getLogOutputStream(File outputLog) throws IOException |
307 | | - { |
308 | | - FileType gz = new FileType(".gz"); |
309 | | - if (gz.isType(outputLog)) |
310 | | - { |
311 | | - return new GZIPOutputStream(new FileOutputStream(outputLog)); |
312 | | - } |
313 | | - else |
314 | | - { |
315 | | - return new FileOutputStream(outputLog); |
316 | | - } |
317 | | - } |
318 | | - |
319 | 290 | public Map<String, HitSet> getAlignmentSummary(File outputLog) throws IOException, PipelineJobException |
320 | 291 | { |
321 | | - try (CSVWriter writer = outputLog == null ? null : new CSVWriter(new BufferedWriter(new OutputStreamWriter(getLogOutputStream(outputLog), StandardCharsets.UTF_8)), '\t', CSVWriter.NO_QUOTE_CHARACTER)) |
| 292 | + try (CSVWriter writer = outputLog == null ? null : new CSVWriter(IOUtil.openFileForBufferedUtf8Writing(outputLog), '\t', CSVWriter.NO_QUOTE_CHARACTER)) |
322 | 293 | { |
323 | 294 | //these are stage-1 filters, filtering on the read-pair level |
324 | 295 | Map<String, HitSet> totals = doFilterStage1(writer); |
@@ -899,7 +870,7 @@ private Map<String, HitSet> doFilterStage4(CSVWriter writer, Map<String, HitSet> |
899 | 870 | return stage4Totals; |
900 | 871 | } |
901 | 872 |
|
902 | | - private class HitSet |
| 873 | + private static class HitSet |
903 | 874 | { |
904 | 875 | public Set<String> readNames = new HashSet<>(); |
905 | 876 | public Set<String> refNames = new TreeSet<>(); |
@@ -1047,7 +1018,7 @@ public void writeOutput(User u, Container c, AnalysisModel model) |
1047 | 1018 |
|
1048 | 1019 | public static void processSBTSummary(User u, Container c, AnalysisModel model, File output, File refFasta, Logger log) throws PipelineJobException |
1049 | 1020 | { |
1050 | | - try (CSVReader reader = new CSVReader(new BufferedReader(new InputStreamReader(new FileInputStream(output), StandardCharsets.UTF_8)), '\t', CSVWriter.DEFAULT_QUOTE_CHARACTER)) |
| 1021 | + try (CSVReader reader = new CSVReader(IOUtil.openFileForBufferedUtf8Reading(output), '\t', CSVWriter.DEFAULT_QUOTE_CHARACTER)) |
1051 | 1022 | { |
1052 | 1023 | try (DbScope.Transaction transaction = ExperimentService.get().ensureTransaction()) |
1053 | 1024 | { |
@@ -1117,7 +1088,7 @@ public static void processSBTSummary(User u, Container c, AnalysisModel model, F |
1117 | 1088 |
|
1118 | 1089 | public void writeTable(File output) throws PipelineJobException |
1119 | 1090 | { |
1120 | | - try (CSVWriter writer = new CSVWriter(PrintWriters.getPrintWriter(output), '\t')) |
| 1091 | + try (CSVWriter writer = new CSVWriter(IOUtil.openFileForBufferedUtf8Writing(output), '\t')) |
1121 | 1092 | { |
1122 | 1093 | Map<String, HitSet> map = writeSummary(); |
1123 | 1094 |
|
@@ -1326,7 +1297,7 @@ else if (f.getName().contains("_2")) |
1326 | 1297 |
|
1327 | 1298 | //rename reads to make it easier to combine later |
1328 | 1299 | File renamed = new File(outDir, basename + ".collapsed.tmp.fasta"); |
1329 | | - try (BufferedReader reader = Readers.getReader(collapsed);PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(renamed), StringUtilsLabKey.DEFAULT_CHARSET)))) |
| 1300 | + try (BufferedReader reader = Readers.getReader(collapsed);PrintWriter writer = new PrintWriter(IOUtil.openFileForBufferedUtf8Writing(renamed))) |
1330 | 1301 | { |
1331 | 1302 | String line; |
1332 | 1303 | while ((line = reader.readLine()) != null) |
|
0 commit comments