diff --git a/src/HMMR_ATAC/ArgParser.java b/src/HMMR_ATAC/ArgParser.java index 9944323..9bb4bad 100644 --- a/src/HMMR_ATAC/ArgParser.java +++ b/src/HMMR_ATAC/ArgParser.java @@ -55,6 +55,9 @@ public class ArgParser { private String version; private int maxTrain=1000; private boolean rmDup=true; + private boolean printExclude=false; + private boolean printTrain=true; + private long randomTrainSeed = 10151; /** * Main constructor @@ -65,6 +68,23 @@ public ArgParser(String[] a,String ver){ version = ver; set(); } + /** + * Access the seed used for random sampling of training regions + * @return a long to represent the seed for random sampling of training regions + */ + public long getRandomTrainSeed(){return randomTrainSeed;} + /** + * Access whether to print the excluded sites + * @return a boolean to determine whether to print excluded sites to output file + */ + public boolean getPrintExclude(){return printExclude;} + + /** + * Access whether to print the training sites + * @return a boolean to determine whether to print training sites to output file + */ + public boolean getPrintTrain(){return printTrain;} + /** * Access whether to remove duplicate reads * @return a boolean to determine whether to exclude duplicate reads from analysis @@ -405,6 +425,22 @@ private void set(){ else{printHMMRTracks=false;} i++; break; + case"printExclude": + String TEMPX_print = args[i+1].toLowerCase(); + if (TEMPX_print.contains("t")){ + printExclude=true; + } + else{printExclude=false;} + i++; + break; + case"printTrain": + String TEMPY_print = args[i+1].toLowerCase(); + if (TEMPY_print.contains("t")){ + printTrain=true; + } + else{printTrain=false;} + i++; + break; case"removeDuplicates": String TEMP1_print = args[i+1].toLowerCase(); if (TEMP1_print.contains("t")){ @@ -425,6 +461,10 @@ private void set(){ maxTrain=Integer.parseInt(args[i+1]); i++; break; + case"randomSeed": + randomTrainSeed=Long.parseLong(args[i+1]); + i++; + break; case"help": printUsage(); //System.exit(0); @@ -468,6 +508,9 @@ public void printUsage(){ System.out.println("\t--maxTrain Maximum number of training regions to use. Default == 1000"); // System.out.println("\t--printTracks Whether or not to print the decomposed HMMRATAC signal tracks. Tracks will be labeled as Output_NFR.bedgraph, Output_Mono.bedgraph etc. Default = false"); System.out.println("\t--removeDuplicates Whether or not to remove duplicate reads from analysis. Default = true"); + System.out.println("\t--printExclude Whether to output excluded regions into Output_exclude.bed. Default = false"); + System.out.println("\t--printTrain Whether to output training regions into Output_training.bed. Default = true"); + System.out.println("\t--randomSeed Seed to set for random sampling of training regions. Default is 10151"); System.out.println("\t-h , --help Print this help message and exit."); System.exit(0); } diff --git a/src/HMMR_ATAC/Main_HMMR_Driver.java b/src/HMMR_ATAC/Main_HMMR_Driver.java index dbb6f67..2b1568d 100644 --- a/src/HMMR_ATAC/Main_HMMR_Driver.java +++ b/src/HMMR_ATAC/Main_HMMR_Driver.java @@ -88,6 +88,7 @@ public class Main_HMMR_Driver { private static boolean rmDup = true; private static boolean printExclude = false; private static boolean printTrain = true; + private static long randomTrainSeed=10151; private static String trainingRegions; @@ -127,6 +128,7 @@ public static void main(String[] args) throws IOException { rmDup = p.getRemoveDuplicates(); printExclude = p.getPrintExclude(); printTrain = p.getPrintTrain(); + randomTrainSeed = p.getRandomTrainSeed(); // printHMMRTracks = p.getPrintHMMRTracks(); //For run time calculation Long startTime = System.currentTimeMillis(); @@ -292,7 +294,7 @@ public static void main(String[] args) throws IOException { // } //Shuffle training list before choosing. - Collections.shuffle(train, new Random(3)); + Collections.shuffle(train, new Random(randomTrainSeed)); for (int i = 0;i < maxTrain;i++){ newTrain.add(train.get(i)); }