예제 #1
0
  @Override
  public void performOperation() throws OperationFailedException {
    if (verbose) {
      System.out.println("TestOperator is performing operation");
    }

    inputFile = inputBuffers.get(0).getFile();

    try {
      BufferedReader reader = new BufferedReader(new FileReader(inputFile));
      FileBuffer output = outputBuffers.get(0);

      String line = reader.readLine();

      BufferedWriter writer = new BufferedWriter(new FileWriter(output.getFile()));
      writer.write("Top of the new output buffer!\n");

      int count = 0;
      while (line != null) {
        System.out.println("Read this line from input file : " + line);
        writer.write(count + "\t " + line + "\n");
        count++;
        line = reader.readLine();
      }

      reader.close();
      writer.close();
    } catch (FileNotFoundException e) {
      throw new OperationFailedException(e.getCause() + "\t" + e.getMessage(), this);
    } catch (IOException e) {
      throw new OperationFailedException(e.getCause() + "\t" + e.getMessage(), this);
    }
  }
예제 #2
0
  @Override
  protected String[] getCommand(FileBuffer inputBuffer) throws OperationFailedException {
    if (cutAdaptPath == null) {
      cutAdaptPath = this.getPipelineProperty(CUTADAPT_PATH);
      if (cutAdaptPath == null)
        throw new OperationFailedException("No path to cutadapt found", this);
    }

    if (!(inputBuffer instanceof FastQFile)) {
      return null;
    }

    if (adapterString == null) {
      try {
        FileBuffer adapterBuf = this.getInputBufferForClass(TextBuffer.class);
        if (adapterBuf == null)
          throw new OperationFailedException(
              "No adapter file specified, cannot cut adapters", this);
        BufferedReader reader = new BufferedReader(new FileReader(adapterBuf.getFile()));
        StringBuffer adapterStr = new StringBuffer();
        String line = reader.readLine();
        while (line != null) {
          adapterStr.append(" -a " + line.trim());
          line = reader.readLine();
        }
        reader.close();
        adapterString = adapterStr.toString();
      } catch (IOException ex) {
        throw new OperationFailedException(
            "Error reading adapter sequences : " + ex.getMessage(), this);
      }
    }

    String outputFilename = "adaptercut-" + inputBuffer.getFilename();
    FastQFile outputFile = new FastQFile(new File(getProjectHome() + outputFilename));
    super.addOutputFile(outputFile);
    String command =
        cutAdaptPath
            + adapterString
            + " -o "
            + outputFile.getAbsolutePath()
            + " "
            + inputBuffer.getAbsolutePath();

    return new String[] {command};
  }
예제 #3
0
  protected void parseOptions() {
    FileBuffer inputBEDfb = this.getInputBufferForClass(BEDFile.class);
    if (inputBEDfb != null) {
      inputBED = (BEDFile) inputBEDfb;
      bedFileOpt = " -t " + inputBED.getAbsolutePath();
    } else {
      bedFileOpt = "";
    }

    List<FileBuffer> inputBAMBuffers = this.getAllInputBuffersForClass(BAMFile.class);
    for (FileBuffer bamBuffer : inputBAMBuffers) {
      inputBAMs = inputBAMs + " -b " + bamBuffer.getAbsolutePath();
    }

    if (extraOptions == null || extraOptions.equals("null")) {
      extraOptions = "";
    }
    inputBuffers = this.getAllInputBuffersForClass(BAMFile.class);
    refBuf = (ReferenceFile) this.getInputBufferForClass(ReferenceFile.class);
    outputVCF = (VCFFile) this.getOutputBufferForClass(VCFFile.class);
  }