Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/shared/MetadataWriter.java @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 68:5028fdace37b |
---|---|
1 package shared; | |
2 | |
3 import java.net.InetAddress; | |
4 import java.net.UnknownHostException; | |
5 import java.util.Date; | |
6 import java.util.HashMap; | |
7 import java.util.Map; | |
8 | |
9 import fileIO.ReadWrite; | |
10 import json.JsonObject; | |
11 | |
12 public class MetadataWriter { | |
13 | |
14 public static void write(String fname, long readsIn, long basesIn, long readsOut, long basesOut, boolean append){ | |
15 if(fname==null){fname=fnameStatic;} | |
16 if(fname==null){return;} | |
17 fnameStatic=null; | |
18 final String s; | |
19 if(jsonMode){ | |
20 s=toJson(readsIn, basesIn, readsOut, basesOut); | |
21 }else{ | |
22 s=toTsv(readsIn, basesIn, readsOut, basesOut); | |
23 } | |
24 ReadWrite.writeStringInThread(s, fname, append); | |
25 } | |
26 | |
27 public static String toTsv(long readsIn, long basesIn, long readsOut, long basesOut){ | |
28 Map<String,String> env=System.getenv(); | |
29 StringBuilder sb=new StringBuilder(); | |
30 | |
31 sb.append("Time\t").append(new Date()).append('\n'); | |
32 try { | |
33 sb.append("Host\t").append(InetAddress.getLocalHost().getHostName()).append('\n'); | |
34 } catch (UnknownHostException e) { | |
35 // TODO Auto-generated catch block | |
36 e.printStackTrace(); | |
37 } | |
38 sb.append("BBToolsVersion\t").append(Shared.BBMAP_VERSION_STRING).append('\n'); | |
39 sb.append("JavaVersion\t").append(Shared.javaVersion).append('\n'); | |
40 sb.append("Command\t").append(Shared.fullCommandline()).append('\n'); | |
41 String script=commandToShellscript(Shared.fullCommandline()); | |
42 if(script!=null){sb.append("Script\t").append(script).append('\n');} | |
43 sb.append("ReadsIn\t").append(readsIn).append('\n'); | |
44 sb.append("BasesIn\t").append(basesIn).append('\n'); | |
45 sb.append("ReadsOut\t").append(readsOut).append('\n'); | |
46 sb.append("BasesOut\t").append(basesOut).append('\n'); | |
47 return sb.toString(); | |
48 } | |
49 | |
50 public static String toJson(long readsIn, long basesIn, long readsOut, long basesOut){ | |
51 Map<String,String> env=System.getenv(); | |
52 JsonObject jo=new JsonObject(); | |
53 | |
54 jo.add("Time", new Date().toString()); | |
55 try { | |
56 jo.add("Host", InetAddress.getLocalHost().getHostName()); | |
57 } catch (UnknownHostException e) { | |
58 // TODO Auto-generated catch block | |
59 e.printStackTrace(); | |
60 } | |
61 // jo.add("Host", env.get("HOSTNAME")); | |
62 // assert(false) : env;InetAddress.getLocalHost().getHostName() | |
63 jo.add("BBToolsVersion", Shared.BBMAP_VERSION_STRING); | |
64 jo.add("JavaVersion", Shared.javaVersion); | |
65 jo.add("Command", Shared.fullCommandline()); | |
66 String script=commandToShellscript(Shared.fullCommandline()); | |
67 if(script!=null){jo.add("Script", script);} | |
68 jo.add("ReadsIn", readsIn); | |
69 jo.add("BasesIn", basesIn); | |
70 jo.add("ReadsOut", readsOut); | |
71 jo.add("BasesOut", basesOut); | |
72 return jo.toString(); | |
73 } | |
74 | |
75 private static String commandToShellscript(String command) { | |
76 if(command==null) {return null;} | |
77 final HashMap<String, String> map=shellMap(); | |
78 String[] split=command.split(" "); | |
79 int pos=0; | |
80 for(pos=0; pos<split.length; pos++){ | |
81 if(map.containsKey(split[pos])){ | |
82 split[pos]=map.get(split[pos]); | |
83 break; | |
84 } | |
85 } | |
86 if(pos>=split.length){return null;} | |
87 StringBuilder sb=new StringBuilder(); | |
88 for(; pos<split.length; pos++){ | |
89 sb.append(split[pos]); | |
90 sb.append(' '); | |
91 } | |
92 sb.setLength(sb.length()-1); | |
93 return sb.toString(); | |
94 } | |
95 | |
96 /** Anything in this map will have the command line translated | |
97 * to the equivalent shell script command for the "Script" key */ | |
98 private static HashMap<String, String> shellMap(){ | |
99 HashMap<String, String> map=new HashMap<String, String>(); | |
100 map.put("bloom.BloomFilterCorrectorWrapper", "bbcms.sh"); | |
101 map.put("jgi.ReformatReads", "reformat.sh"); | |
102 map.put("jgi.FungalRelease", "fungalrelease.sh"); | |
103 map.put("jgi.MakeLengthHistogram", "readlength.sh"); | |
104 map.put("jgi.AssemblyStats2", "stats.sh"); | |
105 map.put("jgi.BBDuk", "bbduk.sh"); | |
106 map.put("assemble.Tadpole", "tadpole.sh"); | |
107 map.put("sketch.SendSketch", "sendsketch.sh"); | |
108 map.put("clump.Clumpify", "clumpify.sh"); | |
109 return map; | |
110 } | |
111 | |
112 public static String fnameStatic; | |
113 public static boolean jsonMode=true; | |
114 | |
115 } |