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 }