/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.40
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package RNAstructure_java_interface.source.startup;

public class RNAstructureBackendCalculator {
  private long swigCPtr;
  protected boolean swigCMemOwn;

  protected RNAstructureBackendCalculator(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(RNAstructureBackendCalculator obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        RNAstructureBackendCalculatorProxyJNI.delete_RNAstructureBackendCalculator(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public RNAstructureBackendCalculator() {
    this(RNAstructureBackendCalculatorProxyJNI.new_RNAstructureBackendCalculator(), true);
  }

  public String buildAllSubDataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildAllSubDataStructure(swigCPtr, this, file, isRNA);
  }

  public double getSuboptimalAbsoluteDiff() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getSuboptimalAbsoluteDiff(swigCPtr, this);
  }

  public float getSuboptimalPercentDiff() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getSuboptimalPercentDiff(swigCPtr, this);
  }

  public String runAllSub(String ct, float percent, double absolute) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runAllSub(swigCPtr, this, ct, percent, absolute);
  }

  public String buildBifoldDataStructure(String file1, String file2, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildBifoldDataStructure(swigCPtr, this, file1, file2, isRNA);
  }

  public String runBifold(String ctFile, float percent, int maxStructures, int windowSize, boolean saveFile, boolean intraForbidden) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runBifold(swigCPtr, this, ctFile, percent, maxStructures, windowSize, saveFile, intraForbidden);
  }

  public String buildBipartitionDataStructure(String file1, String file2, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildBipartitionDataStructure(swigCPtr, this, file1, file2, isRNA);
  }

  public String runBipartition(String pfsFile) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runBipartition(swigCPtr, this, pfsFile);
  }

  public String buildDynalignDataStructure(String file1, String file2, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildDynalignDataStructure(swigCPtr, this, file1, file2, isRNA);
  }

  public void clearDynalignAlignmentConstraints() {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_clearDynalignAlignmentConstraints(swigCPtr, this);
  }

  public String getDynalignAlignmentConstraints() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getDynalignAlignmentConstraints(swigCPtr, this);
  }

  public int getDynalignAlignmentWindowSize() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getDynalignAlignmentWindowSize(swigCPtr, this);
  }

  public int getDynalignStructureWindowSize() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getDynalignStructureWindowSize(swigCPtr, this);
  }

  public String readDynalignAlignmentConstraintsFile(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_readDynalignAlignmentConstraintsFile(swigCPtr, this, file);
  }

  public String runDynalign(String ctFile1, String ctFile2, String saveFile, String alignFile, double percent, int structures, int windowStr, int windowAli, float gap, boolean isInsert) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runDynalign(swigCPtr, this, ctFile1, ctFile2, saveFile, alignFile, percent, structures, windowStr, windowAli, gap, isInsert);
  }

  public String setDynalignAlignmentConstraint(int nuc1, int nuc2) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setDynalignAlignmentConstraint(swigCPtr, this, nuc1, nuc2);
  }

  public void writeDynalignAlignmentConstraintsFile(String file) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_writeDynalignAlignmentConstraintsFile(swigCPtr, this, file);
  }

  public String buildEfn2DataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildEfn2DataStructure(swigCPtr, this, file, isRNA);
  }

  public String runEfn2(String outFile, boolean writeDetails) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runEfn2(swigCPtr, this, outFile, writeDetails);
  }

  public String buildFoldDataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildFoldDataStructure(swigCPtr, this, file, isRNA);
  }

  public int getFoldWindowSize() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getFoldWindowSize(swigCPtr, this);
  }

  public String runFold(String ctFile, int percent, int structures, int window, boolean save) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runFold(swigCPtr, this, ctFile, percent, structures, window, save);
  }

  public String buildMaxExpectDataStructure(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildMaxExpectDataStructure(swigCPtr, this, file);
  }

  public String runMaxExpect(String ctFile, double score, int structures, int window, double gamma) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runMaxExpect(swigCPtr, this, ctFile, score, structures, window, gamma);
  }

  public void activateMultilign() {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_activateMultilign(swigCPtr, this);
  }

  public void addMultilignTuple(String seqFile, String ctFile) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_addMultilignTuple(swigCPtr, this, seqFile, ctFile);
  }

  public void deleteMultilignTuple(long index) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_deleteMultilignTuple(swigCPtr, this, index);
  }

  public String getMultilignCT(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMultilignCT(swigCPtr, this, index);
  }

  public int getMultilignMaxPairs() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMultilignMaxPairs(swigCPtr, this);
  }

  public String getMultilignSequenceSetData() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMultilignSequenceSetData(swigCPtr, this);
  }

  public int getNumMultilignSequences() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getNumMultilignSequences(swigCPtr, this);
  }

  public String runMultilign(int percent, int maxStructures, int bpWindow, int alignWindow, double gap, boolean insert, double maxDsvChange, int maxPairs, int cycles, String alignFile, boolean saveFiles, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runMultilign(swigCPtr, this, percent, maxStructures, bpWindow, alignWindow, gap, insert, maxDsvChange, maxPairs, cycles, alignFile, saveFiles, isRNA);
  }

  public String buildOligoScreenDataStructure() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildOligoScreenDataStructure(swigCPtr, this);
  }

  public String runOligoScreen(String in, String out, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runOligoScreen(swigCPtr, this, in, out, isRNA);
  }

  public String buildOligoWalkDataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildOligoWalkDataStructure(swigCPtr, this, file, isRNA);
  }

  public boolean canFoldOligoOligo(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_canFoldOligoOligo(swigCPtr, this, index);
  }

  public boolean canFoldOligoSelf(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_canFoldOligoSelf(swigCPtr, this, index);
  }

  public int determineOligoMaximum(int length) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_determineOligoMaximum(swigCPtr, this, length);
  }

  public void foldOligo(String sequence, int index, boolean bimolecular, boolean isRNA, String file) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_foldOligo(swigCPtr, this, sequence, index, bimolecular, isRNA, file);
  }

  public String getAllOligoData(int height) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getAllOligoData(swigCPtr, this, height);
  }

  public String getDisplayedOligo(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getDisplayedOligo(swigCPtr, this, index);
  }

  public int getGraphRegionBegin() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getGraphRegionBegin(swigCPtr, this);
  }

  public int getGraphRegionEnd() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getGraphRegionEnd(swigCPtr, this);
  }

  public int getMostStableOligo() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMostStableOligo(swigCPtr, this);
  }

  public String getOligoLabelData(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getOligoLabelData(swigCPtr, this, index);
  }

  public int getOligoTargetLength() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getOligoTargetLength(swigCPtr, this);
  }

  public String getOligoTargetSequence() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getOligoTargetSequence(swigCPtr, this);
  }

  public String runOligoWalk(String report, int mode, String chemistry, boolean suboptimal, int length, int amount, String unit, int start, int stop) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runOligoWalk(swigCPtr, this, report, mode, chemistry, suboptimal, length, amount, unit, start, stop);
  }

  public String buildPartitionDataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildPartitionDataStructure(swigCPtr, this, file, isRNA);
  }

  public String runPartition(String pfsFile) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runPartition(swigCPtr, this, pfsFile);
  }

  public String buildProbKnotDataStructure(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildProbKnotDataStructure(swigCPtr, this, file);
  }

  public String runPseudoknotPrediction(String ctFile, int iterations, int helix) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runPseudoknotPrediction(swigCPtr, this, ctFile, iterations, helix);
  }

  public String buildRefoldDynalignDataStructure(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildRefoldDynalignDataStructure(swigCPtr, this, file);
  }

  public String runDynalignRefold(String ctFile1, String ctFile2, String alignFile, int percent, int structures, int windowStr, int windowAli) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runDynalignRefold(swigCPtr, this, ctFile1, ctFile2, alignFile, percent, structures, windowStr, windowAli);
  }

  public String buildRefoldSingleDataStructure(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildRefoldSingleDataStructure(swigCPtr, this, file);
  }

  public int getRefoldWindowSize() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getRefoldWindowSize(swigCPtr, this);
  }

  public String runRefold(String ctFile, int percent, int structures, int window) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runRefold(swigCPtr, this, ctFile, percent, structures, window);
  }

  public String buildRemovePseudoknotsDataStructure(String file, boolean isRNA) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildRemovePseudoknotsDataStructure(swigCPtr, this, file, isRNA);
  }

  public String runPseudoknotRemoval(String ctFile, boolean minimize) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runPseudoknotRemoval(swigCPtr, this, ctFile, minimize);
  }

  public String getSequenceComment() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getSequenceComment(swigCPtr, this);
  }

  public String getSequenceData() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getSequenceData(swigCPtr, this);
  }

  public String getSequenceTitle() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getSequenceTitle(swigCPtr, this);
  }

  public void readSequenceData(String file) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_readSequenceData(swigCPtr, this, file);
  }

  public void setSequenceComment(String comment) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSequenceComment(swigCPtr, this, comment);
  }

  public void setSequenceData(String data) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSequenceData(swigCPtr, this, data);
  }

  public void setSequenceTitle(String title) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSequenceTitle(swigCPtr, this, title);
  }

  public String writeFastaFile(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_writeFastaFile(swigCPtr, this, file);
  }

  public String writeSequenceFile(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_writeSequenceFile(swigCPtr, this, file);
  }

  public String buildStochasticDataStructure(String file) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_buildStochasticDataStructure(swigCPtr, this, file);
  }

  public String runStochastic(String outFile, int ensemble, int seed) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runStochastic(swigCPtr, this, outFile, ensemble, seed);
  }

  public void activateTurboFold() {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_activateTurboFold(swigCPtr, this);
  }

  public void addTurboFoldTuple(String seqFile, String ctFile) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_addTurboFoldTuple(swigCPtr, this, seqFile, ctFile);
  }

  public void deleteTurboFoldTuple(long index) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_deleteTurboFoldTuple(swigCPtr, this, index);
  }

  public int getNumTurboFoldSequences() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getNumTurboFoldSequences(swigCPtr, this);
  }

  public String getTurboFoldCT(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getTurboFoldCT(swigCPtr, this, index);
  }

  public String getTurboFoldSaveFile(int index) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getTurboFoldSaveFile(swigCPtr, this, index);
  }

  public String getTurboFoldSequenceSetData() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getTurboFoldSequenceSetData(swigCPtr, this);
  }

  public String runTurboFoldMaximumExpectedAccuracy(double turboGamma, int turboIterations, double percent, int structures, int window, double meaGamma) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runTurboFoldMaximumExpectedAccuracy(swigCPtr, this, turboGamma, turboIterations, percent, structures, window, meaGamma);
  }

  public String runTurboFoldPseudoknot(double turboGamma, int turboIterations, int pkIterations, int helix) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runTurboFoldPseudoknot(swigCPtr, this, turboGamma, turboIterations, pkIterations, helix);
  }

  public String runTurboFoldThreshold(double turboGamma, int turboIterations, double threshold) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_runTurboFoldThreshold(swigCPtr, this, turboGamma, turboIterations, threshold);
  }

  public void clearFoldingConstraints(int strand) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_clearFoldingConstraints(swigCPtr, this, strand);
  }

  public String getFoldingConstraints(int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getFoldingConstraints(swigCPtr, this, strand);
  }

  public int getMaxConstraintIndex(int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMaxConstraintIndex(swigCPtr, this, strand);
  }

  public int getMaxLoop() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMaxLoop(swigCPtr, this);
  }

  public int getMaxPair() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getMaxPair(swigCPtr, this);
  }

  public double getTemperature() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getTemperature(swigCPtr, this);
  }

  public String readFoldingConstraintsFile(String file, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_readFoldingConstraintsFile(swigCPtr, this, file, strand);
  }

  public String setCleavedNucleotide(int nuc, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setCleavedNucleotide(swigCPtr, this, nuc, strand);
  }

  public String setDoubleStrandedNucleotide(int nuc, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setDoubleStrandedNucleotide(swigCPtr, this, nuc, strand);
  }

  public String setForcedHelix(int nuc1, int nuc2, int length, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setForcedHelix(swigCPtr, this, nuc1, nuc2, length, strand);
  }

  public void setMaxLoop(int newLoop) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setMaxLoop(swigCPtr, this, newLoop);
  }

  public void setMaxPair(int newPair) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setMaxPair(swigCPtr, this, newPair);
  }

  public String setModifiedNucleotide(int nuc, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setModifiedNucleotide(swigCPtr, this, nuc, strand);
  }

  public String setProhibitedHelix(int nuc1, int nuc2, int length, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setProhibitedHelix(swigCPtr, this, nuc1, nuc2, length, strand);
  }

  public void setSHAPEFile(String file) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSHAPEFile(swigCPtr, this, file);
  }

  public void setSHAPEParam1(double value) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSHAPEParam1(swigCPtr, this, value);
  }

  public void setSHAPEParam2(double value) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSHAPEParam2(swigCPtr, this, value);
  }

  public void setSHAPEType(boolean isEnergy) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSHAPEType(swigCPtr, this, isEnergy);
  }

  public String setSingleStrandedNucleotide(int nuc, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setSingleStrandedNucleotide(swigCPtr, this, nuc, strand);
  }

  public void setTemperature(double newTemp) {
    RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_setTemperature(swigCPtr, this, newTemp);
  }

  public String writeFoldingConstraintsFile(String file, int strand) {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_writeFoldingConstraintsFile(swigCPtr, this, file, strand);
  }

  public int getProgressNumber() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getProgressNumber(swigCPtr, this);
  }

  public String getStructureType() {
    return RNAstructureBackendCalculatorProxyJNI.RNAstructureBackendCalculator_getStructureType(swigCPtr, this);
  }

}
