import org.forester.protein.BasicProtein;
import org.forester.protein.Domain;
import org.forester.protein.Protein;
+import org.forester.sequence.MolecularSequence;
+import org.forester.sequence.MolecularSequence.TYPE;
import org.forester.surfacing.SurfacingUtil;
public final class ForesterUtil {
FORMATTER_3 = new DecimalFormat( "#.###", dfs );
}
- private ForesterUtil() {
- }
-
final public static void appendSeparatorIfNotEmpty( final StringBuffer sb, final char separator ) {
if ( sb.length() > 0 ) {
sb.append( separator );
* This calculates a color. If value is equal to min the returned color is
* minColor, if value is equal to max the returned color is maxColor,
* otherwise a color 'proportional' to value is returned.
- *
+ *
* @param value
- * the value
+ * the value
* @param min
- * the smallest value
+ * the smallest value
* @param max
- * the largest value
+ * the largest value
* @param minColor
* the color for min
* @param maxColor
* value is equal to mean the returned color is meanColor, otherwise a color
* 'proportional' to value is returned -- either between min-mean or
* mean-max
- *
+ *
* @param value
* the value
* @param min
* the smallest value
* @param max
- * the largest value
+ * the largest value
* @param mean
- * the mean/median value
+ * the mean/median value
* @param minColor
* the color for min
* @param maxColor
}
}
+ /**
+ * Helper method for calcColor methods.
+ *
+ * @param smallercolor_component_x
+ * color component the smaller color
+ * @param largercolor_component_x
+ * color component the larger color
+ * @param x
+ * factor
+ * @return an int representing a color component
+ */
+ final private static int calculateColorComponent( final double smallercolor_component_x,
+ final double largercolor_component_x,
+ final double x ) {
+ return ( int ) ( smallercolor_component_x + ( ( x * ( largercolor_component_x - smallercolor_component_x ) ) / 255.0 ) );
+ }
+
+ /**
+ * Helper method for calcColor methods.
+ *
+ *
+ * @param value
+ * the value
+ * @param larger
+ * the largest value
+ * @param smaller
+ * the smallest value
+ * @return a normalized value between larger and smaller
+ */
+ final private static double calculateColorFactor( final double value, final double larger, final double smaller ) {
+ return ( 255.0 * ( value - smaller ) ) / ( larger - smaller );
+ }
+
public static int calculateOverlap( final Domain domain, final List<Boolean> covered_positions ) {
int overlap_count = 0;
for( int i = domain.getFrom(); i <= domain.getTo(); ++i ) {
return ForesterUtil.LINE_SEPARATOR;
}
+ final public static MolecularSequence.TYPE guessMolecularSequenceType( final String mol_seq ) {
+ if ( mol_seq.contains( "L" ) || mol_seq.contains( "I" ) || mol_seq.contains( "E" ) || mol_seq.contains( "H" )
+ || mol_seq.contains( "D" ) || mol_seq.contains( "Q" ) ) {
+ return TYPE.AA;
+ }
+ else {
+ if ( mol_seq.contains( "T" ) ) {
+ return TYPE.DNA;
+ }
+ else if ( mol_seq.contains( "U" ) ) {
+ return TYPE.RNA;
+ }
+ }
+ return null;
+ }
+
final public static void increaseCountingMap( final Map<String, Integer> counting_map, final String item_name ) {
if ( !counting_map.containsKey( item_name ) ) {
counting_map.put( item_name, 1 );
/**
* Returns true is Domain domain falls in an uninterrupted stretch of
* covered positions.
- *
+ *
* @param domain
* @param covered_positions
* @return
* This determines whether String[] a and String[] b have at least one
* String in common (intersect). Returns false if at least one String[] is
* null or empty.
- *
+ *
* @param a
* a String[] b a String[]
* @return true if both a and b or not empty or null and contain at least
}
else {
throw new IllegalArgumentException( "attempt to parse object of type [" + source.getClass()
- + "] (can only parse objects of type File, InputStream, String, or StringBuffer)" );
+ + "] (can only parse objects of type File, InputStream, String, or StringBuffer)" );
}
return reader;
}
System.out.println( "[" + prg_name + "] > " + message );
}
+ public static List<String> readUrl( final String url_str ) throws IOException {
+ final URL url = new URL( url_str );
+ final URLConnection urlc = url.openConnection();
+ //urlc.setRequestProperty( "User-Agent", "" );
+ final BufferedReader in = new BufferedReader( new InputStreamReader( urlc.getInputStream() ) );
+ String line;
+ final List<String> result = new ArrayList<String>();
+ while ( ( line = in.readLine() ) != null ) {
+ result.add( line );
+ }
+ in.close();
+ return result;
+ }
+
/**
- *
+ *
* Example regarding engulfment: ------------0.1 ----------0.2 --0.3 =>
* domain with 0.3 is ignored
- *
+ *
* -----------0.1 ----------0.2 --0.3 => domain with 0.3 is ignored
- *
- *
+ *
+ *
* ------------0.1 ----------0.3 --0.2 => domains with 0.3 and 0.2 are _not_
* ignored
- *
+ *
* @param max_allowed_overlap
* maximal allowed overlap (inclusive) to be still considered not
* overlapping (zero or negative value to allow any overlap)
final boolean remove_engulfed_domains,
final Protein protein ) {
final Protein pruned_protein = new BasicProtein( protein.getProteinId().getId(), protein.getSpecies()
- .getSpeciesId(), protein.getLength() );
+ .getSpeciesId(), protein.getLength() );
final List<Domain> sorted = SurfacingUtil.sortDomainsWithAscendingConfidenceValues( protein );
final List<Boolean> covered_positions = new ArrayList<Boolean>();
for( final Domain domain : sorted ) {
/**
* Removes all white space from String s.
- *
+ *
* @return String s with white space removed
*/
final public static String removeWhiteSpace( String s ) {
return false;
}
+ final private static String[] splitString( final String str ) {
+ final String regex = "[\\s;,]+";
+ return str.split( regex );
+ }
+
final public static String stringArrayToString( final String[] a ) {
return stringArrayToString( a, ", " );
}
final public static void unexpectedFatalError( final String prg_name, final Exception e ) {
System.err.println();
System.err.println( "[" + prg_name
- + "] > unexpected error; should not have occured! Please contact program author(s)." );
+ + "] > unexpected error; should not have occured! Please contact program author(s)." );
e.printStackTrace( System.err );
System.err.println();
System.exit( -1 );
final public static void unexpectedFatalError( final String prg_name, final String message ) {
System.err.println();
System.err.println( "[" + prg_name
- + "] > unexpected error: should not have occured! Please contact program author(s)." );
+ + "] > unexpected error: should not have occured! Please contact program author(s)." );
System.err.println( message );
System.err.println();
System.exit( -1 );
final public static void unexpectedFatalError( final String prg_name, final String message, final Exception e ) {
System.err.println();
System.err.println( "[" + prg_name
- + "] > unexpected error: should not have occured! Please contact program author(s)." );
+ + "] > unexpected error: should not have occured! Please contact program author(s)." );
System.err.println( message );
e.printStackTrace( System.err );
System.err.println();
return sb.toString();
}
- /**
- * Helper method for calcColor methods.
- *
- * @param smallercolor_component_x
- * color component the smaller color
- * @param largercolor_component_x
- * color component the larger color
- * @param x
- * factor
- * @return an int representing a color component
- */
- final private static int calculateColorComponent( final double smallercolor_component_x,
- final double largercolor_component_x,
- final double x ) {
- return ( int ) ( smallercolor_component_x + ( ( x * ( largercolor_component_x - smallercolor_component_x ) ) / 255.0 ) );
- }
-
- /**
- * Helper method for calcColor methods.
- *
- *
- * @param value
- * the value
- * @param larger
- * the largest value
- * @param smaller
- * the smallest value
- * @return a normalized value between larger and smaller
- */
- final private static double calculateColorFactor( final double value, final double larger, final double smaller ) {
- return ( 255.0 * ( value - smaller ) ) / ( larger - smaller );
- }
-
- final private static String[] splitString( final String str ) {
- final String regex = "[\\s;,]+";
- return str.split( regex );
+ private ForesterUtil() {
}
}