package org.seqcode.data.seqdata.tools; import java.io.IOException; import java.sql.SQLException; import org.seqcode.data.connections.DatabaseConnectionManager; import org.seqcode.data.seqdata.SeqAlignment; import org.seqcode.data.seqdata.SeqDataLoader; import org.seqcode.data.seqdata.SeqDataModifier; import org.seqcode.gseutils.ArgParser; import org.seqcode.gseutils.Args; import org.seqcode.gseutils.NotFoundException; /** * Updates the hit counts and weights stored in the db. * * @author mahony * */ public class UpdateHitCounts { public static void main(String args[]) throws SQLException, NotFoundException, IOException { ArgParser ap = new ArgParser(args); if(ap.hasKey("id")) { Integer id = Args.parseInteger(args,"id", -1); SeqDataLoader loader = new SeqDataLoader(); SeqDataModifier modifier = new SeqDataModifier(loader); SeqAlignment align = loader.loadAlignment(id); Integer oldsinglecount = align.getNumHits(); Integer oldpaircount = align.getNumPairs(); Float oldsingleweight = (float)align.getTotalWeight(); Float oldpairweight = (float)align.getTotalPairWeight(); Integer singlecount = Args.parseInteger(args,"singlecount", oldsinglecount); Integer singletype2count = Args.parseInteger(args,"singletype2count", oldsinglecount); Integer paircount = Args.parseInteger(args,"paircount", oldpaircount); Float singleweight = Args.parseFloat(args,"singleweight", oldsingleweight); Float singletype2weight = Args.parseFloat(args,"singletype2weight", oldsingleweight); Float pairweight = Args.parseFloat(args,"pairweight", oldpairweight); modifier.updateSeqAlignmentHitCounts(align, singlecount, singleweight, singletype2count, singletype2weight, paircount, pairweight); loader.close(); }else{ System.err.println("UpdateHitCounts:\n" + "\t--id <ReadDB ID>\n" + "\t--singlecount <hitcount, single>\n" + "\t--singleweight <hitweight, single>\n" + "\t--singletype2count <hitcount, single type2>\n" + "\t--singletype2weight <hitweight, single type2>\n" + "\t--paircount <hitcount, pairs>\n" + "\t--pairweight <hitweight, pairs>\n" + ""); } } }