comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/fileIO/SummaryFile.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 fileIO;
2
3 import java.io.File;
4
5 import dna.Data;
6 import shared.Parse;
7 import shared.PreParser;
8
9 /**
10 * Tests to see if a summary file matches a reference fasta file, based on date, size, and name
11 * @author Brian Bushnell
12 * @date Mar 11, 2013
13 *
14 */
15 public class SummaryFile {
16
17 public static void main(String[] args){
18 if(args.length==0){
19 System.out.println("Usage: SummaryFile <summary file> <reference fasta>");
20 System.exit(0);
21 }
22
23 {//Preparse block for help, config files, and outstream
24 PreParser pp=new PreParser(args, new Object() { }.getClass().getEnclosingClass(), false);
25 args=pp.args;
26 //outstream=pp.outstream;
27 }
28
29 String summary=null, ref=null;
30
31 for(int i=0; i<args.length; i++){
32
33 if(args[i].contains("=")){
34 final String arg=args[i];
35 final String[] split=arg.split("=");
36 String a=split[0].toLowerCase();
37 String b=split.length>1 ? split[1] : null;
38
39 if(a.equals("summary")){
40 summary=b;
41 }else if(a.equals("ref") || a.equals("reference")){
42 ref=b;
43 }else{
44 throw new RuntimeException("Unknown parameter: "+args[i]);
45 }
46
47 }else{
48 if(args[i].endsWith("summary.txt")){
49 summary=args[i];
50 }else{
51 ref=args[i];
52 }
53 }
54 }
55
56 if(summary==null && args.length>0){
57 summary=args[0];
58 }
59
60 if(summary==null){
61 System.out.println("Usage: SummaryFile <summary file> <reference fasta>");
62 System.exit(0);
63 }
64
65 if(ref==null){
66
67 }
68 }
69
70 public boolean compare(final String refName){
71 try {
72 File ref=new File(refName);
73 if(!ref.exists()){
74 if(refName.startsWith("stdin")){return false;}
75 else{
76 assert(false) : "No such file: "+refName;
77 }
78 }
79 // if(!refName.equals(source) && !Files.isSameFile(ref.toPath(), new File(source).toPath())){ //This is Java-7 specific.
80 //// assert(false) : refName+", "+source+": "+(Files.isSameFile(ref.toPath(), new File(source).toPath()))+
81 //// "\n"+ref.getCanonicalPath()+", "+new File(source).getCanonicalPath()+": "+(ref.getCanonicalPath().equals(new File(source).getCanonicalPath()));
82 // return false;
83 //
84 // }
85 if(!refName.equals(source) && !ref.getCanonicalPath().equals(new File(source).getCanonicalPath())){
86 // assert(false) : refName+", "+source+": "+(Files.isSameFile(ref.toPath(), new File(source).toPath()))+
87 // "\n"+ref.getCanonicalPath()+", "+new File(source).getCanonicalPath()+": "+(ref.getCanonicalPath().equals(new File(source).getCanonicalPath()));
88 return false;
89
90 }
91 if(bytes!=ref.length()){
92 // assert(false) : bytes+", "+ref.length();
93 return false;
94 }
95 if(modified!=ref.lastModified()){
96 // assert(false) : modified+", "+ref.lastModified();
97 return false;
98 }
99 } catch (Exception e) {
100 // TODO Auto-generated catch block
101 e.printStackTrace();
102 return false;
103 }
104 return true;
105 }
106
107 public static boolean compare(final String summaryName, final String refName){
108 assert(refName!=null) : "Null reference file name.";
109 if(!new File(summaryName).exists()){
110 // assert(false);
111 return false;
112 }
113 SummaryFile sf=new SummaryFile(summaryName);
114 return sf.compare(refName);
115 }
116
117 public static String getName(){
118 return getName(Data.GENOME_BUILD);
119 }
120
121 public static String getName(int build){
122 return Data.ROOT_GENOME+build+"/summary.txt";
123 }
124
125 public SummaryFile(String path){
126 summaryFname=path;
127 String s;
128 TextFile tf=new TextFile(summaryFname, false);
129 for(s=tf.nextLine(); s!=null; s=tf.nextLine()){
130 if(s.charAt(0)=='#'){
131 if(s.startsWith("#Version")){
132 String[] split=s.split("\t");
133 version=(split.length>1 ? Integer.parseInt(split[1]) : 0);
134 }
135 }else{
136 String[] split=s.split("\t");
137 String a=split[0];
138 String b=split[1];
139 if(a.equalsIgnoreCase("chroms")){chroms=(int)Long.parseLong(b);}
140 else if(a.equalsIgnoreCase("bases")){bases=Long.parseLong(b);}
141 else if(a.equalsIgnoreCase("version")){version=Integer.parseInt(b);}
142 else if(a.equalsIgnoreCase("defined")){definedBases=Long.parseLong(b);}
143 else if(a.equalsIgnoreCase("contigs")){contigs=Integer.parseInt(b);}
144 else if(a.equalsIgnoreCase("scaffolds")){scaffolds=Integer.parseInt(b);}
145 else if(a.equalsIgnoreCase("interpad")){interpad=Integer.parseInt(b);}
146 else if(a.equalsIgnoreCase("undefined")){undefinedBases=Long.parseLong(b);}
147 else if(a.equalsIgnoreCase("name")){name=b;}
148 else if(a.equalsIgnoreCase("source")){source=b;}
149 else if(a.equalsIgnoreCase("bytes")){bytes=Long.parseLong(b);}
150 else if(a.equalsIgnoreCase("last modified")){modified=Long.parseLong(b);}
151 else if(a.equalsIgnoreCase("scafprefixes")){scafprefixes=Parse.parseBoolean(b);}
152 else{throw new RuntimeException("In file "+tf.name+": Unknown term "+s);}
153 }
154 }
155 tf.close();
156 }
157
158 public final String summaryFname;
159
160 public int chroms;
161 public long contigs;
162 public long scaffolds;
163 public int interpad;
164 public long bases;
165 public long definedBases;
166 public long undefinedBases;
167 public String name;
168 public String source;
169 public int version;
170 public long bytes;
171 public long modified;
172 public boolean scafprefixes;
173
174 }