public boolean bedType(File bedFile) { stranded = false; scored = false; named = false; bed12 = false; boolean bedLineFound = false; try { // read through first 10000 lines // chrom start stop name score strand .... // 0 1 2 3 4 5 BufferedReader in = IO.fetchBufferedReader(bedFile); String[] tokens; String line; int counter = 0; while ((line = in.readLine()) != null) { if (counter++ > 10000) break; // bed line? if (bedLine.matcher(line).matches() == false) continue; bedLineFound = true; // split on tab tokens = tab.split(line); // bed12? if (tokens.length == 12) { bed12 = true; break; } if (tokens.length > 3) { // named? if (badName.matcher(tokens[3]).matches() == false) named = true; if (tokens.length > 4) { // scored? if (tokens[4].equals("0") == false) scored = true; if (tokens.length > 5) { // stranded? if (tokens[5].equals(".") == false) stranded = true; } } } } in.close(); } catch (Exception e) { System.err.println("\nProblem parsing bed type.\n"); e.printStackTrace(); bedLineFound = false; } return bedLineFound; }