Package picard.nio

Class PicardHtsPath

java.lang.Object
htsjdk.io.HtsPath
picard.nio.PicardHtsPath
All Implemented Interfaces:
htsjdk.io.IOPath, Serializable

public class PicardHtsPath extends htsjdk.io.HtsPath
A Subclass of HtsPath with conversion to Path making use of IOUtil
See Also:
  • Constructor Details

    • PicardHtsPath

      public PicardHtsPath(String rawInputString)
      Create a PicardHtsPath from a raw input path string.

      If the raw input string already contains a scheme (including a "file" scheme), assume its already properly escape/encoded. If no scheme component is present, assume it references a raw path on the local file system, so try to get a Path first, and then retrieve the URI from the resulting Path. This ensures that input strings that are local file references without a scheme component and contain embedded characters are valid in file names, but which would otherwise be interpreted as excluded URI characters (such as the URI fragment delimiter "#") are properly escape/encoded.

      Parameters:
      rawInputString - a string specifying an input path. May not be null.
    • PicardHtsPath

      public PicardHtsPath(htsjdk.io.HtsPath htsPath)
      Create a PicardHtsPath from an existing HtsPath or subclass.
      Parameters:
      htsPath - an existing PathSpecifier. May not be null.
    • PicardHtsPath

      public PicardHtsPath(File file)
      Create a PicardHtsPath from a File reference. Uses the URI string of file.
      Parameters:
      file - the file reference to create this object from
  • Method Details

    • fromPaths

      public static List<PicardHtsPath> fromPaths(Collection<String> paths)
      Create a List<PicardHtsPath> from path representations.
      Parameters:
      paths - URIs or local paths. May not be null but may be empty.
      Returns:
      the converted List
    • toPath

      public Path toPath()
      Resolve the URI of this object to a Path object.
      Specified by:
      toPath in interface htsjdk.io.IOPath
      Overrides:
      toPath in class htsjdk.io.HtsPath
      Returns:
      the resulting Path
      Throws:
      RuntimeException - if an I/O error occurs when creating the file system
    • fromPath

      public static PicardHtsPath fromPath(Path path)
      Construct a PicardHtsPath from a Path
      Parameters:
      path - may NOT be null
      Returns:
      a new object representing path
    • isOther

      public static boolean isOther(htsjdk.io.IOPath ioPath)
      Test if ioPath is something other than a regular file, directory, or symbolic link.
      Returns:
      true if it's a device, named pipe, htsget API URL, etc.
      Throws:
      RuntimeException - if an I/O error occurs when creating the file system
    • toPaths

      public static List<Path> toPaths(Collection<PicardHtsPath> picardHtsPaths)
      Create a List<Path> from PicardHtsPaths
      Parameters:
      picardHtsPaths - may NOT be null
      Returns:
      Path representations of the input picardHtsPaths
    • replaceExtension

      public static PicardHtsPath replaceExtension(htsjdk.io.IOPath path, String newExtension, boolean append)
      Takes an IOPath and returns a new PicardHtsPath object that keeps the same basename as the original but has a new extension. If append is set to false, only the last component of an extension will be replaced. e.g. "my.fasta.gz" -> "my.fasta.tmp" If the input IOPath was created from a rawInputString that specifies a relative local path, the new path will have a rawInputString that specifies an absolute path. (This perhaps unwanted conversion occurs when we call PicardHtsPath.toPath().) Examples: - (test_na12878.bam, .bai) -> test_na12878.bai (append = false) - (test_na12878.bam, .md5) -> test_na12878.bam.md5 (append = true)
      Parameters:
      path - The original path
      newExtension - A new file extension. Must include the leading dot e.g. ".txt", ".bam"
      append - If set to true, append the new extension to the original basename. If false, replace the original extension with the new extension. If append = false and the original name has no extension, an exception will be thrown.
      Returns:
      A new PicardHtsPath object with the new extension
    • resolve

      public static PicardHtsPath resolve(PicardHtsPath absPath, String relativePath)
      Wrapper for Path.resolve()