org.biojava.nbio.ronn.RonnConstraint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biojava-protein-disorder Show documentation
Show all versions of biojava-protein-disorder Show documentation
This module is for predicting disordered regions in protein sequences
The newest version!
/*
* @(#)RonnConstraint.java 1.0 June 2010
*
* Copyright (c) 2010 Peter Troshin
*
* JRONN version: 3.1
*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
*/
package org.biojava.nbio.ronn;
/**
* A collection of various constrain values used by RONN
*
* @author Peter Troshin
* @version 1.0
* @since 3.0.2
*/
public final class RonnConstraint {
public final static float DEFAULT_DISORDER = 0.53f;
public final static float DEFAULT_ORDER = 0.47f;
public final static float DEFAULT_RANGE_PROBABILITY_THRESHOLD = 0.50f;
// A b C D E F G H I j K L M N o P Q R S T u V W x Y
//
// 0 0 1 2 3 4 5 6 7 0 8 9 10 11 0 12 13 14 15 16 0 17 18 0 19
public static final short[] INDEX = new short[] { 0, 0, 1, 2, 3, 4, 5, 6,
7, 0, 8, 9, 10, 11, 0, 12, 13, 14, 15, 16, 0, 17, 18, 0, 19 };
public static final short[][] Blosum62 = new short[][] {
{ 4, 0, -2, -1, -2, 0, -2, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
-2, -3, -2 },
{ 0, 9, -3, -4, -2, -3, -3, -1, -3, -1, -1, -3, -3, -3, -3, -1, -1,
-1, -2, -2 },
{ -2, -3, 6, 2, -3, -1, -1, -3, -1, -4, -3, 1, -1, 0, -2, 0, 1, -3,
-4, -3 },
{ -1, -4, 2, 5, -3, -2, 0, -3, 1, -3, -2, 0, -1, 2, 0, 0, 0, -3,
-3, -2 },
{ -2, -2, -3, -3, 6, -3, -1, 0, -3, 0, 0, -3, -4, -3, -3, -2, -2,
-1, 1, 3 },
{ 0, -3, -1, -2, -3, 6, -2, -4, -2, -4, -3, -2, -2, -2, -2, 0, 1,
0, -2, -3 },
{ -2, -3, 1, 0, -1, -2, 8, -3, -1, -3, -2, 1, -2, 0, 0, -1, 0, -2,
-2, 2 },
{ -1, -1, -3, -3, 0, -4, -3, 4, -3, 2, 1, -3, -3, -3, -3, -2, -2,
1, -3, -1 },
{ -1, -3, -1, 1, -3, -2, -1, -3, 5, -2, -1, 0, -1, 1, 2, 0, 0, -3,
-3, -2 },
{ -1, -1, -4, -3, 0, -4, -3, 2, -2, 4, 2, -3, -3, -2, -2, -2, -2,
3, -2, -1 },
{ -1, -1, -3, -2, 0, -3, -2, 1, -1, 2, 5, -2, -2, 0, -1, -1, -1,
-2, -1, -1 },
{ -2, -3, 1, 0, -3, 0, -1, -3, 0, -3, -2, 6, -2, 0, 0, 1, 0, -3,
-4, -2 },
{ -1, -3, -1, -1, -4, -2, -2, -3, -1, -3, -2, -1, 7, -1, -2, -1, 1,
-2, -4, -3 },
{ -1, -3, 0, 2, -3, -2, 0, -3, 1, -2, 0, 0, -1, 5, 1, 0, 0, -2, -2,
-1 },
{ -1, -3, -2, 0, -3, -2, 0, -3, 2, -2, -1, 0, -2, 1, 5, -1, -1, -3,
-3, -2 },
{ 1, -1, 0, 0, -2, 0, -1, -2, 0, -2, -1, 1, -1, 0, -1, 4, 1, -2,
-3, -2 },
{ -1, -1, 1, 0, -2, 1, 0, -2, 0, -2, -1, 0, 1, 0, -1, 1, 4, -2, -3,
-2 },
{ 0, -1, -3, -2, -1, -3, -3, 3, -2, 1, 1, -3, -2, -2, -3, -2, -2,
4, -3, -1 },
{ -3, -2, -4, -3, 1, -2, -2, -3, -3, -2, -1, -4, -4, -2, -3, -3,
-3, -3, 11, 2 },
{ -2, -2, -3, -2, 3, -3, 2, -1, -2, -1, -1, -2, -3, -1, -2, -2, -2,
-1, 2, 7 } };
public static enum Threshold {
T0(0, RonnConstraint.THRESHOLD0), T1(1, RonnConstraint.THRESHOLD1), T2(
2, RonnConstraint.THRESHOLD2), T3(3, RonnConstraint.THRESHOLD3), T4(
4, RonnConstraint.THRESHOLD4), T5(5, RonnConstraint.THRESHOLD5), T6(
6, RonnConstraint.THRESHOLD6), T7(7, RonnConstraint.THRESHOLD7), T8(
8, RonnConstraint.THRESHOLD8), T9(9, RonnConstraint.THRESHOLD9);
private final int tnum;
private final float[] values;
private Threshold(final int tnum, final float[] values) {
this.tnum = tnum;
this.values = values;
}
public float[] getValues() {
return values;
}
public static float[] getTreshold(final int number) {
assert (number >= 0) && (number < 10) : number;
for (final Threshold t : Threshold.values()) {
if (t.tnum == number) {
return t.values;
}
}
return null;
}
}
static final float[] THRESHOLD0 = { 0.09847548204866169f,
0.5537946867723033f, 0.052493213903229766f, 0.07714031903493762f };
static final float[] THRESHOLD1 = { 0.09032956077766974f,
0.5167594539472075f, 0.04596823441915963f, 0.06455503987769765f };
static final float[] THRESHOLD2 = { 0.09266796710382286f,
0.5127732233896729f, 0.04963484289158484f, 0.061048745226114226f };
static final float[] THRESHOLD3 = { 0.10562230953899814f,
0.4488757690530404f, 0.04922765471815812f, 0.0824807293665649f };
static final float[] THRESHOLD4 = { 0.1163716006651586f,
0.5315238539228951f, 0.0556565226094971f, 0.0714892726762588f };
static final float[] THRESHOLD5 = { 0.09358976618303182f,
0.49296410198137725f, 0.054219917228374236f, 0.06593535778132877f };
static final float[] THRESHOLD6 = { 0.10526844980518248f,
0.4842710501752991f, 0.05215080306266067f, 0.06518758643119664f };
static final float[] THRESHOLD7 = { 0.08434396215650031f,
0.6007148113473553f, 0.05107636795876212f, 0.10341362611675203f };
static final float[] THRESHOLD8 = { 0.1309148603226209f,
0.5122245658772394f, 0.06436561753520677f, 0.06639259175313134f };
static final float[] THRESHOLD9 = { 0.18610705811017647f,
0.5279244438321989f, 0.0721466513318003f, 0.07983168408322228f };
static final byte MIN_SEQUENCE_LENGTH = 19;
static final String HELP_MESSAGE = " \r\n" +
"JRONN version 3.1b usage 1 August 2011:\r\n" +
"java -jar JRONN_JAR_NAME -i=inputfile \r\n" +
"\r\n" +
"Where -i=input file \r\n" +
" Input file can contain one or more FASTA formatted sequences.\r\n" +
"\r\n" +
"All OPTIONS are optional\r\n" +
"Supported OPTIONS are: \r\n" +
" -o=output file\r\n" +
" -d=disorder value\r\n" +
" -f=V or H \r\n" +
" -s=statistics file\r\n" +
" -n=number of threads to use\r\n" +
"OPTION DETAILED DESCRIPTION:\r\n" +
" -o full path to the output file, if not specified \r\n" +
" standard out is used\r\n" +
"\r\n" +
" -d the value of disorder, defaults to 0.5\r\n" +
"\r\n" +
" -f output format, V for vertical, where the letters \r\n" +
" of the sequence and corresponding disorder values are \r\n" +
" output in two column layout. H for horizontal, where the\r\n" +
" disorder values are provided under the letters of the \r\n" +
" sequence. Letters and values separated by tabulation in\r\n" +
" this case. Defaults to V.\r\n" +
"\r\n" +
" -s the file name to write execution statistics to.\r\n" +
"\r\n" +
" -n the number of threads to use. Defaults to the number of \r\n" +
" cores available on the computer. n=1 mean sequential \r\n" +
" processing. Valid values are 1 < n < (2 x num_of_cores)\r\n" +
" Default value will give the best performance.\r\n" +
" \r\n" +
"EXAMPLES: \r\n" +
"\r\n" +
" Predict disorder values for sequences from input file /home/input.fasta\r\n" +
" output the results to the standard out. Use default disorder value\r\n" +
" and utilise all cpus available on the computer.\r\n" +
"\r\n" +
" java -jar JRONN.JAR -i=/home/input.fasta\r\n" +
" \r\n" +
" Predict disorder values for sequences from input file /home/input.fasta\r\n" +
" output the results in horizontal layout to the /home/jronn.out, collect \r\n" +
" execution statistics to /home/jronn.stat.txt file and limit the number \r\n" +
" of threads to two. \r\n" +
" \r\n" +
" java -jar JRONN.JAR -i=/home/input.fasta -o=/home/jronn.out -d=0.6 -n=2 -f=H\r\n" +
" \r\n" +
" The arguments can be provided in any order.\r\n" +
"\r\n" +
"ABOUT THE PROGRAM: \r\n" +
" \r\n" +
" JRONN is a Java implementation of RONN. JRONN is based on RONN and uses the \r\n" +
" same model data, therefore gives the same predictions. Main motivation \r\n" +
" behind JRONN development was providing an implementation of RONN more \r\n" +
" suitable to use by the automated analysis pipelines and web services. \r\n" +
" \r\n" +
" Original version of RONN is described in Yang,Z.R., Thomson,R., \r\n" +
" McMeil,P. and Esnouf,R.M. (2005) RONN: the bio-basis function neural network\r\n" +
" technique applied to the detection of natively disordered regions in proteins \r\n" +
" Bioinformatics 21: 3369-3376\r\n" +
" See also http://www.strubi.ox.ac.uk/RONN\r\n" +
" \r\n" +
" Author: Peter Troshin \r\n" +
" email: to.petr AT gmail DOT com\r\n" +
" \r\n" +
" This is a free software which comes with no guarantees.\r\n" +
" JRONN is distributed under Apache Licence version 2. The full version of \r\n" +
" licence can be obtained from http://www.apache.org/licenses/LICENSE-2.0\r\n" +
" ";
/**
* 700 - maximum number of lines (with sequence values) in the single model
* file.
*/
static final int maxD = 700;
}