package jalview.structure; import jalview.datamodel.PDBEntry; import jalview.datamodel.PDBEntry.Type; /** * bean holding settings for structure IO. TODO: tests for validation of values * TODO: tests for race conditions (all fields are static, is that correct ?) * * @author tcofoegbu * */ public class StructureImportSettings { /** * set to true to add derived sequence annotations (temp factor read from * file, or computed secondary structure) to the alignment */ private static boolean visibleChainAnnotation = false; /** * Set true to predict secondary structure (using JMol for protein, Annotate3D * for RNA) */ private static boolean processSecStr = false; /** * Set true (with predictSecondaryStructure=true) to predict secondary * structure using an external service (currently Annotate3D for RNA only) */ private static boolean externalSecondaryStructure = false; private static boolean showSeqFeatures = true; public enum StructureParser { JMOL_PARSER, JALVIEW_PARSER } /** * Determines the default file format for structure files to be downloaded * from the PDB sequence fetcher. Possible options include: PDB|mmCIF */ private static PDBEntry.Type defaultStructureFileFormat = Type.PDB; /** * Determines the parser used for parsing PDB format file. Possible options * are : JMolParser|JalveiwParser */ private static StructureParser defaultPDBFileParser = StructureParser.JMOL_PARSER; public static void addSettings(boolean addAlignmentAnnotations, boolean processSecStr, boolean externalSecStr) { StructureImportSettings.visibleChainAnnotation = addAlignmentAnnotations; StructureImportSettings.processSecStr = processSecStr; StructureImportSettings.externalSecondaryStructure = externalSecStr; StructureImportSettings.showSeqFeatures = true; } public static boolean isVisibleChainAnnotation() { return visibleChainAnnotation; } public static void setVisibleChainAnnotation( boolean visibleChainAnnotation) { StructureImportSettings.visibleChainAnnotation = visibleChainAnnotation; } public static boolean isProcessSecondaryStructure() { return processSecStr; } public static void setProcessSecondaryStructure( boolean processSecondaryStructure) { StructureImportSettings.processSecStr = processSecondaryStructure; } public static boolean isExternalSecondaryStructure() { return externalSecondaryStructure; } public static void setExternalSecondaryStructure( boolean externalSecondaryStructure) { StructureImportSettings.externalSecondaryStructure = externalSecondaryStructure; } public static boolean isShowSeqFeatures() { return showSeqFeatures; } public static void setShowSeqFeatures(boolean showSeqFeatures) { StructureImportSettings.showSeqFeatures = showSeqFeatures; } public static String getDefaultStructureFileFormat() { return defaultStructureFileFormat.toString(); } public static void setDefaultStructureFileFormat( String defaultStructureFileFormat) { StructureImportSettings.defaultStructureFileFormat = PDBEntry.Type .valueOf(defaultStructureFileFormat.toUpperCase()); } public static String getDefaultPDBFileParser() { return defaultPDBFileParser.toString(); } public static void setDefaultPDBFileParser( StructureParser defaultPDBFileParser) { StructureImportSettings.defaultPDBFileParser = defaultPDBFileParser; } public static void setDefaultPDBFileParser(String defaultPDBFileParser) { StructureImportSettings.defaultPDBFileParser = StructureParser .valueOf(defaultPDBFileParser.toUpperCase()); } }