Mercurial > repos > rliterman > csp2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/fileIO/SummaryFile.java Tue Mar 18 16:23:26 2025 -0400 @@ -0,0 +1,174 @@ +package fileIO; + +import java.io.File; + +import dna.Data; +import shared.Parse; +import shared.PreParser; + +/** + * Tests to see if a summary file matches a reference fasta file, based on date, size, and name + * @author Brian Bushnell + * @date Mar 11, 2013 + * + */ +public class SummaryFile { + + public static void main(String[] args){ + if(args.length==0){ + System.out.println("Usage: SummaryFile <summary file> <reference fasta>"); + System.exit(0); + } + + {//Preparse block for help, config files, and outstream + PreParser pp=new PreParser(args, new Object() { }.getClass().getEnclosingClass(), false); + args=pp.args; + //outstream=pp.outstream; + } + + String summary=null, ref=null; + + for(int i=0; i<args.length; i++){ + + if(args[i].contains("=")){ + final String arg=args[i]; + final String[] split=arg.split("="); + String a=split[0].toLowerCase(); + String b=split.length>1 ? split[1] : null; + + if(a.equals("summary")){ + summary=b; + }else if(a.equals("ref") || a.equals("reference")){ + ref=b; + }else{ + throw new RuntimeException("Unknown parameter: "+args[i]); + } + + }else{ + if(args[i].endsWith("summary.txt")){ + summary=args[i]; + }else{ + ref=args[i]; + } + } + } + + if(summary==null && args.length>0){ + summary=args[0]; + } + + if(summary==null){ + System.out.println("Usage: SummaryFile <summary file> <reference fasta>"); + System.exit(0); + } + + if(ref==null){ + + } + } + + public boolean compare(final String refName){ + try { + File ref=new File(refName); + if(!ref.exists()){ + if(refName.startsWith("stdin")){return false;} + else{ + assert(false) : "No such file: "+refName; + } + } +// if(!refName.equals(source) && !Files.isSameFile(ref.toPath(), new File(source).toPath())){ //This is Java-7 specific. +//// assert(false) : refName+", "+source+": "+(Files.isSameFile(ref.toPath(), new File(source).toPath()))+ +//// "\n"+ref.getCanonicalPath()+", "+new File(source).getCanonicalPath()+": "+(ref.getCanonicalPath().equals(new File(source).getCanonicalPath())); +// return false; +// +// } + if(!refName.equals(source) && !ref.getCanonicalPath().equals(new File(source).getCanonicalPath())){ +// assert(false) : refName+", "+source+": "+(Files.isSameFile(ref.toPath(), new File(source).toPath()))+ +// "\n"+ref.getCanonicalPath()+", "+new File(source).getCanonicalPath()+": "+(ref.getCanonicalPath().equals(new File(source).getCanonicalPath())); + return false; + + } + if(bytes!=ref.length()){ +// assert(false) : bytes+", "+ref.length(); + return false; + } + if(modified!=ref.lastModified()){ +// assert(false) : modified+", "+ref.lastModified(); + return false; + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return false; + } + return true; + } + + public static boolean compare(final String summaryName, final String refName){ + assert(refName!=null) : "Null reference file name."; + if(!new File(summaryName).exists()){ +// assert(false); + return false; + } + SummaryFile sf=new SummaryFile(summaryName); + return sf.compare(refName); + } + + public static String getName(){ + return getName(Data.GENOME_BUILD); + } + + public static String getName(int build){ + return Data.ROOT_GENOME+build+"/summary.txt"; + } + + public SummaryFile(String path){ + summaryFname=path; + String s; + TextFile tf=new TextFile(summaryFname, false); + for(s=tf.nextLine(); s!=null; s=tf.nextLine()){ + if(s.charAt(0)=='#'){ + if(s.startsWith("#Version")){ + String[] split=s.split("\t"); + version=(split.length>1 ? Integer.parseInt(split[1]) : 0); + } + }else{ + String[] split=s.split("\t"); + String a=split[0]; + String b=split[1]; + if(a.equalsIgnoreCase("chroms")){chroms=(int)Long.parseLong(b);} + else if(a.equalsIgnoreCase("bases")){bases=Long.parseLong(b);} + else if(a.equalsIgnoreCase("version")){version=Integer.parseInt(b);} + else if(a.equalsIgnoreCase("defined")){definedBases=Long.parseLong(b);} + else if(a.equalsIgnoreCase("contigs")){contigs=Integer.parseInt(b);} + else if(a.equalsIgnoreCase("scaffolds")){scaffolds=Integer.parseInt(b);} + else if(a.equalsIgnoreCase("interpad")){interpad=Integer.parseInt(b);} + else if(a.equalsIgnoreCase("undefined")){undefinedBases=Long.parseLong(b);} + else if(a.equalsIgnoreCase("name")){name=b;} + else if(a.equalsIgnoreCase("source")){source=b;} + else if(a.equalsIgnoreCase("bytes")){bytes=Long.parseLong(b);} + else if(a.equalsIgnoreCase("last modified")){modified=Long.parseLong(b);} + else if(a.equalsIgnoreCase("scafprefixes")){scafprefixes=Parse.parseBoolean(b);} + else{throw new RuntimeException("In file "+tf.name+": Unknown term "+s);} + } + } + tf.close(); + } + + public final String summaryFname; + + public int chroms; + public long contigs; + public long scaffolds; + public int interpad; + public long bases; + public long definedBases; + public long undefinedBases; + public String name; + public String source; + public int version; + public long bytes; + public long modified; + public boolean scafprefixes; + +}