Package net.sf.cram

Source Code of net.sf.cram.CramTools$ValidationStringencyConverter

/*******************************************************************************
* Copyright 2012 EMBL-EBI, Hinxton outstation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package net.sf.cram;

import net.sf.cram.index.CramIndexer;
import net.sf.picard.util.Log;
import net.sf.picard.util.Log.LogLevel;
import net.sf.samtools.SAMFileReader.ValidationStringency;

import com.beust.jcommander.IStringConverter;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;

public class CramTools {
  public static final String CRAM2BAM_COMMAND = "bam";
  public static final String BAM2CRAM_COMMAND = "cram";
  public static final String INDEX_COMMAND = "index";
  public static final String MERGE_COMMAND = "merge";

  private static Log log = Log.getInstance(CramTools.class);

  public static void main(String[] args) throws Exception {

    Params params = new Params();
    JCommander jc = new JCommander(params);
    jc.setProgramName("cramtools");

    Cram2Bam.Params cram2BamParams = new Cram2Bam.Params();
    Bam2Cram.Params bam2CramParams = new Bam2Cram.Params();
    CramIndexer.Params indexParams = new CramIndexer.Params();
    Merge.Params mergeParams = new Merge.Params();

    jc.addCommand(CRAM2BAM_COMMAND, cram2BamParams);
    jc.addCommand(BAM2CRAM_COMMAND, bam2CramParams);
    jc.addCommand(INDEX_COMMAND, indexParams);
    jc.addCommand(MERGE_COMMAND, mergeParams);

    jc.parse(args);

    String command = jc.getParsedCommand();

    if (command == null || params.help) {
      StringBuilder sb = new StringBuilder();
      sb.append("\n");
      jc.usage(sb);

      System.out.println("Version "
          + CramTools.class.getPackage().getImplementationVersion());
      System.out.println(sb.toString());
      return;
    }

    String[] commandArgs = new String[args.length - 1];
    System.arraycopy(args, 1, commandArgs, 0, commandArgs.length);

    if (CRAM2BAM_COMMAND.equals(command))
      Cram2Bam.main(commandArgs);
    else if (BAM2CRAM_COMMAND.equals(command))
      Bam2Cram.main(commandArgs);
    else if (INDEX_COMMAND.equals(command))
      CramIndexer.main(commandArgs);
    else if (MERGE_COMMAND.equals(command))
      Merge.main(commandArgs);

  }

  @Parameters(commandDescription = "CRAM tools. ")
  private static class Params {
    @Parameter(names = { "-h", "--help" }, description = "Print help and quit")
    private boolean help = false;
  }

  public static class LevelConverter implements IStringConverter<LogLevel> {

    @Override
    public LogLevel convert(String s) {
      return LogLevel.valueOf(s.toUpperCase());
    }

  }
 
  public static class ValidationStringencyConverter implements IStringConverter<ValidationStringency> {

    @Override
    public ValidationStringency convert(String s) {
      return ValidationStringency.valueOf(s.toUpperCase());
    }
  }
}
TOP

Related Classes of net.sf.cram.CramTools$ValidationStringencyConverter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.