public static File[] getTiledFiles(final File baseDirectory, final Pattern pattern) { return IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); }
public static File[] getTiledFiles(final File baseDirectory, final Pattern pattern) { return IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); }
/** * * @param directory * @param regexp * @return list of files matching regexp. */ public static File[] getFilesMatchingRegexp(final File directory, final String regexp) { final Pattern pattern = Pattern.compile(regexp); return getFilesMatchingRegexp(directory, pattern); }
/** * * @param directory * @param regexp * @return list of files matching regexp. */ public static File[] getFilesMatchingRegexp(final File directory, final String regexp) { final Pattern pattern = Pattern.compile(regexp); return getFilesMatchingRegexp(directory, pattern); }
/** * * @param directory * @param regexp * @return list of files matching regexp. */ public static File[] getFilesMatchingRegexp(final File directory, final String regexp) { final Pattern pattern = Pattern.compile(regexp); return getFilesMatchingRegexp(directory, pattern); }
public static Map<Integer, File> renderPhasingMetricsFilesFromBasecallingDirectory(File illuminaRunDirectory) { File[] cycleDirs = IOUtil.getFilesMatchingRegexp(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME), IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); Map<Integer, File> phasingMetrics = new HashMap<>(); Arrays.asList(cycleDirs) .forEach(cycleDir -> { File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp( cycleDir, "EmpiricalPhasingMetricsOut.bin"); if (filesMatchingRegexp.length > 0) { phasingMetrics.put(PerTilePerCycleFileUtil.getCycleFromDir(cycleDir), filesMatchingRegexp[0]); } }); return phasingMetrics; }
protected File getRunFile(final File baseDirectory, final Pattern pattern) { if (baseDirectory.exists()) { IOUtil.assertDirectoryIsReadable(baseDirectory); final File[] files = IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); if (files.length == 1) { return files[0]; } } return null; }
protected File getRunFile(final File baseDirectory, final Pattern pattern) { if (baseDirectory.exists()) { IOUtil.assertDirectoryIsReadable(baseDirectory); final File[] files = IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); if (files.length == 1) { return files[0]; } } return null; }
public static Map<Integer, File> renderPhasingMetricsFilesFromBasecallingDirectory(File illuminaRunDirectory) { File[] cycleDirs = IOUtil.getFilesMatchingRegexp(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME), IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); Map<Integer, File> phasingMetrics = new HashMap<>(); Arrays.asList(cycleDirs) .forEach(cycleDir -> { File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp( cycleDir, "EmpiricalPhasingMetricsOut.bin"); if (filesMatchingRegexp.length > 0) { phasingMetrics.put(PerTilePerCycleFileUtil.getCycleFromDir(cycleDir), filesMatchingRegexp[0]); } }); return phasingMetrics; }
public static boolean hasCbcls(final File basecallDir, final int lane) { final File laneDir = new File(basecallDir, IlluminaFileUtil.longLaneStr(lane)); final File[] cycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); // Either the lane or the cycle directory do not exist! if (cycleDirs == null) { return false; } //CBCLs final List<File> cbcls = new ArrayList<>(); Arrays.asList(cycleDirs) .forEach(cycleDir -> cbcls.addAll( Arrays.asList(IOUtil.getFilesMatchingRegexp( cycleDir, "^" + IlluminaFileUtil.longLaneStr(lane) + "_(\\d{1,5}).cbcl$")))); return cbcls.size() > 0; } }
public static boolean hasCbcls(final File basecallDir, final int lane) { final File laneDir = new File(basecallDir, IlluminaFileUtil.longLaneStr(lane)); final File[] cycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); // Either the lane or the cycle directory do not exist! if (cycleDirs == null) { return false; } //CBCLs final List<File> cbcls = new ArrayList<>(); Arrays.asList(cycleDirs) .forEach(cycleDir -> cbcls.addAll( Arrays.asList(IOUtil.getFilesMatchingRegexp( cycleDir, "^" + IlluminaFileUtil.longLaneStr(lane) + "_(\\d{1,5}).cbcl$")))); return cbcls.size() > 0; } }
MultiTileFileUtil(final String extension, final File base, final File bciDir, final FileFaker fileFaker, final int lane) { super(false, extension, base, fileFaker, lane); bci = new File(bciDir, "s_" + lane + ".bci"); if (bci.exists()) { tileIndex = new TileIndex(bci); } else { tileIndex = null; } final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern); if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) { dataFile = null; } else if (filesMatchingRegexp.length == 1) { dataFile = filesMatchingRegexp[0]; } else { throw new PicardException("More than one filter file found in " + base.getAbsolutePath()); } }
MultiTileFileUtil(final String extension, final File base, final File bciDir, final FileFaker fileFaker, final int lane) { super(false, extension, base, fileFaker, lane); bci = new File(bciDir, "s_" + lane + ".bci"); if (bci.exists()) { tileIndex = new TileIndex(bci); } else { tileIndex = null; } final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern); if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) { dataFile = null; } else if (filesMatchingRegexp.length == 1) { dataFile = filesMatchingRegexp[0]; } else { throw new PicardException("More than one filter file found in " + base.getAbsolutePath()); } }
/** * Return all files that match pattern of the given file type in the given base directory */ protected IlluminaFileMap getTiledFiles(final File baseDirectory, final Pattern pattern) { final IlluminaFileMap fileMap = new IlluminaFileMap(); if (baseDirectory.exists()) { IOUtil.assertDirectoryIsReadable(baseDirectory); final File[] files = IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); for (final File file : files) { if (!skipEmptyFiles || file.length() > 0) { fileMap.put(fileToTile(file.getName()), file); } } } return fileMap; }
/** * Return all files that match pattern of the given file type in the given base directory */ protected IlluminaFileMap getTiledFiles(final File baseDirectory, final Pattern pattern) { final IlluminaFileMap fileMap = new IlluminaFileMap(); if (baseDirectory.exists()) { IOUtil.assertDirectoryIsReadable(baseDirectory); final File[] files = IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); for (final File file : files) { if (!skipEmptyFiles || file.length() > 0) { fileMap.put(fileToTile(file.getName()), file); } } } return fileMap; }
MultiTileBclFileUtil(final File basecallLaneDir, final int lane) { // Since these file names do not contain lane number, first two args to ctor are the same. super("^(\\d{4}).bcl.bgzf$", ".bcl.bgzf", basecallLaneDir, new MultiTileBclFileFaker(), lane); this.basecallLaneDir = basecallLaneDir; bci = new File(basecallLaneDir, "s_" + lane + ".bci"); // Do this once rather than when deciding if these files exist and again later. final File[] cycleFiles = IOUtil.getFilesMatchingRegexp(base, matchPattern); if (bci.exists()) { tileIndex = new TileIndex(bci); if (cycleFiles != null) { for (final File file : cycleFiles) { final String fileName = file.getName(); final String cycleNum = fileName.substring(0, fileName.indexOf('.')); final IlluminaFileMap fileMap = new IlluminaFileMap(); for(final Integer tile : tileIndex.getTiles()) { fileMap.put(tile, file); } cycleFileMap.put(Integer.valueOf(cycleNum), fileMap); } } } else { tileIndex = null; } }
@Test(dataProvider = "regExpTests") public void testRegExp(final String regexp, final String[] expected) throws IOException { final String[] allNames = {"5newline5.txt", "Level2.fofn", "example.bam", "ipsum.txt.bgz", "ipsum.txt.bgzipped_with_gzextension.gz", "slurptest.txt", "Level1.fofn", "empty.txt", "ipsum.txt", "ipsum.txt.bgz.wrongextension", "ipsum.txt.gz"}; final Path regExpDir = Files.createTempDirectory("regExpDir"); regExpDir.toFile().deleteOnExit(); final List<String> listExpected = Arrays.asList(expected); final List<File> expectedFiles = new ArrayList<File>(); for (String name : allNames) { final Path file = regExpDir.resolve(name); file.toFile().deleteOnExit(); file.toFile().createNewFile(); if (listExpected.contains(name)) { expectedFiles.add(file.toFile()); } } final File[] result = IOUtil.getFilesMatchingRegexp(regExpDir.toFile(), regexp); Assert.assertEqualsNoOrder(result, expectedFiles.toArray()); }
/** * For the given tiles, populate a CycleIlluminaFileMap that contains all these tiles and will iterate through * all the files for these tiles in expectedBase * Side Effect: Assigns numCycles * * @return A CycleIlluminaFileMap with the listed (or all) tiles for at least expectedCycles number of cycles(or total available * cycles if expectedCycles is null) */ protected CycleIlluminaFileMap getPerTilePerCycleFiles() { final CycleIlluminaFileMap cycledMap = new CycleIlluminaFileMap(); final File laneDir = base; final File[] tempCycleDirs; tempCycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); if (tempCycleDirs == null || tempCycleDirs.length == 0) { return cycledMap; } for (final File tempCycleDir : tempCycleDirs) { detectedCycles.add(getCycleFromDir(tempCycleDir)); } final Set<Integer> uniqueTiles = new HashSet<Integer>(); for (final File cycleDir : tempCycleDirs) { final IlluminaFileMap fileMap = getTiledFiles(cycleDir, matchPattern); uniqueTiles.addAll(fileMap.keySet()); cycledMap.put(getCycleFromDir(cycleDir), fileMap); } this.tiles = new ArrayList<>(uniqueTiles); return cycledMap; }
@Override public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles, final IlluminaFileUtil.SupportedIlluminaFormat format) { //we need to fake a bci file for the tile index final BciFileFaker bciFileFaker = new BciFileFaker(); try { bciFileFaker.fakeBciFile(bci, expectedTiles); tileIndex = new TileIndex(bci); faker.fakeFile(base, expectedTiles, lane, extension); final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern); if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) { dataFile = null; } else if (filesMatchingRegexp.length == 1) { dataFile = filesMatchingRegexp[0]; } else { throw new PicardException("More than one filter file found in " + base.getAbsolutePath()); } } catch (final IOException e) { return Collections.singletonList("Could not create tile index file: " + bci.getAbsolutePath()); } return tileIndex.verify(expectedTiles); }
@Override public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles, final IlluminaFileUtil.SupportedIlluminaFormat format) { //we need to fake a bci file for the tile index final BciFileFaker bciFileFaker = new BciFileFaker(); try { bciFileFaker.fakeBciFile(bci, expectedTiles); tileIndex = new TileIndex(bci); faker.fakeFile(base, expectedTiles, lane, extension); final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern); if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) { dataFile = null; } else if (filesMatchingRegexp.length == 1) { dataFile = filesMatchingRegexp[0]; } else { throw new PicardException("More than one filter file found in " + base.getAbsolutePath()); } } catch (final IOException e) { return Collections.singletonList("Could not create tile index file: " + bci.getAbsolutePath()); } return tileIndex.verify(expectedTiles); }