use of io.zip.OutputZiper in project Smiles2Monomers by yoann-dufresne.
the class Json2HTML method main.
public static void main(String[] args) {
if (args.length < 6) {
System.err.println("Command line :\n\tjava main.AtomicToMonomeric <monomersFile> <peptidesFile> <rulesFile> <residuesFile> <coveragesFile> <outType> [outFile] [-v]");
System.err.println(" outType can be \"-zip\" or \"-html\"");
System.exit(42);
}
String monoDBname = args[0];
String pepDBname = args[1];
String rulesDBname = args[2];
String residuesDBname = args[3];
String covsFile = args[4];
boolean zip = args[5].equals("-zip") ? true : false;
String outFile = null;
if (zip && args.length < 7) {
System.err.println("Command line :\n\tjava main.AtomicToMonomeric <monomersFile> <peptidesFile> <rulesFile> <residuesFile> <coveragesFile> <outType> [outFile] [-v]");
System.err.println(" outType can be \"-zip\" or \"-html\"");
System.exit(42);
} else if (zip && args.length >= 7)
outFile = args[6];
// Loading databases
System.out.println("--- Loading ---");
// Maybe loading can be faster for the learning base, using serialized molecules instead of CDK SMILES parsing method.
long loadingTime = System.currentTimeMillis();
MonomersDB monoDB = new MonomersJsonLoader(false).loadFile(monoDBname);
MonomersSerialization ms = new MonomersSerialization();
ms.deserialize(monoDB, "data/serials/monos.serial");
PolymersJsonLoader pcl = new PolymersJsonLoader(monoDB, true);
PolymersDB pepDB = pcl.loadFile(pepDBname);
RulesDB rules = RulesJsonLoader.loader.loadFile(rulesDBname);
ResidueJsonLoader rjl = new ResidueJsonLoader(rules, monoDB);
FamilyDB families = rjl.loadFile(residuesDBname);
loadingTime = (System.currentTimeMillis() - loadingTime) / 1000;
System.out.println("--- Json to HTML ---");
long creationTime = System.currentTimeMillis();
CoveragesJsonLoader cl = new CoveragesJsonLoader(pepDB, families);
CoveragesDB covs = cl.loadFile(covsFile);
List<Coverage> covsList = covs.getObjects();
Collections.sort(covsList);
// Common generations
File imgs = new File("tmp_imgs_" + covsFile.substring(covsFile.lastIndexOf("/") + 1, covsFile.lastIndexOf(".")));
if (!imgs.exists())
imgs.mkdir();
ImagesGeneration ig = new ImagesGeneration();
Map<Coverage, ColorsMap> allColors = ig.generate(imgs, monoDB, covsList);
if (!zip) {
// HTML
File resultDir = null;
if (covsFile.contains("/"))
resultDir = new File(covsFile.substring(0, covsFile.lastIndexOf("/")));
else
resultDir = new File(".");
if (!resultDir.exists())
resultDir.mkdir();
Coverages2HTML c2h = new Coverages2HTML(covsList, monoDB, families);
File htmlFile = new File(resultDir.getPath() + "/test.html");
c2h.createResults(htmlFile, imgs, allColors);
} else {
// Zip File
OutputZiper oz = new OutputZiper(outFile);
oz.createZip(imgs.getPath(), covsFile, pepDBname, monoDBname, residuesDBname, allColors);
}
ig.cleanTmp(imgs);
creationTime = (System.currentTimeMillis() - creationTime) / 1000;
System.out.println();
System.out.println("Total time to load datas : " + loadingTime + "s");
System.out.println("Total time to create HTML : " + creationTime + "s");
System.out.println();
System.out.println("--- Program ended ---");
}
use of io.zip.OutputZiper in project Smiles2Monomers by yoann-dufresne.
the class ProcessPolymers method main.
public static void main(String[] args) {
// ----------------- Parameters ---------------------------
String monoDBname = "data/monomers.json";
String pepDBname = "data/polymers.json";
String rulesDBname = "data/rules.json";
String residuesDBname = "data/residues.json";
String chainsDBFile = "data/chains.json";
String outfile = "results/coverages.json";
String outfolderName = "results/";
String imgsFoldername = "images/";
boolean html = false;
boolean zip = false;
String serialFolder = "data/serials/";
boolean lightMatch = true;
boolean verbose = false;
int removeDistance = 2;
int retryCount = 2;
int modulationDepth = 2;
// Parsing
loop: for (int idx = 0; idx < args.length; idx++) {
if (args[idx].startsWith("-")) {
switch(args[idx]) {
case "-rul":
rulesDBname = args[idx + 1];
break;
case "-mono":
monoDBname = args[idx + 1];
break;
case "-poly":
pepDBname = args[idx + 1];
break;
case "-res":
residuesDBname = args[idx + 1];
break;
case "-cha":
chainsDBFile = args[idx + 1];
break;
case "-serial":
serialFolder = args[idx + 1];
break;
case "-outfile":
outfile = args[idx + 1];
break;
case "-outfolder":
outfolderName = args[idx + 1];
break;
case "-imgs":
imgsFoldername = args[idx + 1];
break;
case "-strict":
lightMatch = false;
continue loop;
case "-v":
verbose = true;
continue loop;
case "-html":
html = true;
continue loop;
case "-zip":
zip = true;
continue loop;
default:
System.err.println("Wrong option " + args[idx]);
System.exit(1);
break;
}
idx++;
} else {
System.err.println("Wrong parameter " + args[idx]);
System.exit(1);
}
}
// ------------------- Loadings ------------------------
System.out.println("--- Loading ---");
// Maybe loading can be faster for the learning base, using serialized molecules instead of CDK SMILES parsing method.
long loadingTime = System.currentTimeMillis();
MonomersDB monoDB = new MonomersJsonLoader(false).loadFile(monoDBname);
MonomersSerialization ms = new MonomersSerialization();
ms.deserialize(monoDB, serialFolder + "monos.serial");
boolean d2 = html || zip;
PolymersJsonLoader pjl = new PolymersJsonLoader(monoDB, d2);
PolymersDB polDB = pjl.loadFile(pepDBname);
RulesDB rulesDB = RulesJsonLoader.loader.loadFile(rulesDBname);
ResidueJsonLoader rjl = new ResidueJsonLoader(rulesDB, monoDB);
// Need optimizations
FamilyDB families = rjl.loadFile(residuesDBname);
FamilyChainIO fcio = new FamilyChainIO(families);
ChainsDB chains = fcio.loadFile(chainsDBFile);
loadingTime = System.currentTimeMillis() - loadingTime;
System.out.println("Loading time : " + (loadingTime / 1000) + "s");
// ------------------- Spliting ------------------------
System.out.println("--- Monomers search ---");
long searchTime = System.currentTimeMillis();
MonomericSpliting.setVerbose(verbose);
MonomericSpliting split = new MonomericSpliting(families, chains, removeDistance, retryCount, modulationDepth);
split.setAllowLightMatchs(lightMatch);
Coverage[] covs = split.computeCoverages(polDB);
searchTime = System.currentTimeMillis() - searchTime;
System.out.println("Search time : " + (searchTime / 1000) + "s");
// ------------------- Output ------------------------
System.out.println("--- Output creations ---");
long outputTime = System.currentTimeMillis();
// Creation of the out directory
File outfolder = new File(outfolderName);
if (!outfolder.exists())
outfolder.mkdir();
CoveragesJsonLoader cjl = new CoveragesJsonLoader(polDB, families);
cjl.saveFile(covs, outfile);
// Images generation
if (html || zip) {
File imgsFolder = new File(imgsFoldername);
if (!imgsFolder.exists())
imgsFolder.mkdir();
ImagesGeneration ig = new ImagesGeneration();
ig.generateMonomerImages(imgsFolder, monoDB);
Map<Coverage, ColorsMap> colors = ig.generatePeptidesImages(imgsFolder, covs);
if (html) {
// HTML
Coverages2HTML c2h = new Coverages2HTML(covs, monoDB, families);
File htmlFile = new File(outfolderName + "/s2m.html");
c2h.createResults(htmlFile, imgsFolder, colors);
}
if (zip) {
// Zip File
OutputZiper oz = new OutputZiper(outfolderName + "/s2m.zip");
oz.createZip(imgsFolder.getPath(), outfile, pepDBname, monoDBname, residuesDBname, colors);
}
}
outputTime = System.currentTimeMillis() - outputTime;
System.out.println("Ouputing time : " + (outputTime / 1000) + "s");
System.out.println("--- Ended ---");
}
Aggregations