/** * Build a (modified) nucleic acid base node, this node should already registared in the database * * @param monomerID : the name of the base node * @return a graph contains a single (base) node */ @Deprecated public static Graph2D createNucleicAcidBaseNode(String monomerID) throws MonomerException, IOException, JDOMException { MonomerFactory monomerFactory = MonomerFactory.getInstance(); Map<String, Map<String, Monomer>> monomerDB = monomerFactory.getMonomerDB(); Graph2D graph = new Graph2D(); MonomerNodeRealizer baseNodeRealizer = new MonomerNodeRealizer(MonomerNodeRealizer.DIAMOND); graph.setDefaultNodeRealizer(baseNodeRealizer); baseNodeRealizer.setSize(size, size); MonomerInfo monomerKeys = new MonomerInfo(Monomer.NUCLIEC_ACID_POLYMER_TYPE, monomerID); Monomer baseMonomer = monomerDB.get(monomerKeys.getPolymerType()).get(monomerKeys.getMonomerID()); if (baseMonomer == null) { throw new MonomerException("Invalid base monomer " + monomerID); } Node baseNode = graph.createNode(); Color fillColor = ColorMap.getNucleotidesColor(baseMonomer.getNaturalAnalog()); baseNodeRealizer.setFillColor(fillColor); Color textColor = Color.BLACK; // was: Color textColor = new Color(23 - fillColor.getRGB()); // but we want identical view at left panel and at sequence panel, so // textColor is always set to black. baseNodeRealizer.setLabelText(monomerID); baseNodeRealizer.getLabel().setTextColor(textColor); baseNodeRealizer.getLabel().setFontSize(calculateFontSize(monomerID)); graph.setRealizer(baseNode, baseNodeRealizer); NodeMap nodePropertiesNodeMap = graph.createNodeMap(); graph.addDataProvider(NodeMapKeys.MONOMER_REF, nodePropertiesNodeMap); nodePropertiesNodeMap.set(baseNode, monomerKeys); return graph; }
/** * create a (modified) nucleic acid backbone node. this monomer should already registared in the * monomer database * * @param monomerID * @return A graph contains a nucleic acid backbone node */ @Deprecated public static Graph2D createNucleicAcidBackboneNode(String monomerID, String naturalAnalog) throws MonomerException, IOException, JDOMException { final String url = MacromoleculeEditor.class.getResource("resource/").getFile(); MonomerFactory monomerFactory = MonomerFactory.getInstance(); Map<String, Map<String, Monomer>> monomerDB = monomerFactory.getMonomerDB(); Graph2D graph = new Graph2D(); MonomerNodeRealizer backboneNodeRealizer = null; if (naturalAnalog.equalsIgnoreCase(Monomer.ID_R)) { backboneNodeRealizer = new MonomerNodeRealizer(MonomerNodeRealizer.ROUND_RECT); } else if (naturalAnalog.equalsIgnoreCase(Monomer.ID_P)) { backboneNodeRealizer = new MonomerNodeRealizer(MonomerNodeRealizer.ELLIPSE); } else { backboneNodeRealizer = new MonomerNodeRealizer(MonomerNodeRealizer.OCTAGON); } backboneNodeRealizer.setFillColor(ColorMap.getNucleotidesColor(naturalAnalog)); backboneNodeRealizer.setSize(size, size); graph.setDefaultNodeRealizer(backboneNodeRealizer); MonomerInfo monomerKeys = new MonomerInfo(Monomer.NUCLIEC_ACID_POLYMER_TYPE, monomerID); Monomer monomer = monomerDB.get(monomerKeys.getPolymerType()).get(monomerKeys.getMonomerID()); if (monomer == null) { throw new MonomerException("Invalid backbone monomer ID " + monomerID); } Node baseNode = graph.createNode(); backboneNodeRealizer.setLabelText(monomerID); backboneNodeRealizer.setFillColor(ColorMap.getNucleotidesColor(monomer.getNaturalAnalog())); graph.setRealizer(baseNode, backboneNodeRealizer); NodeMap nodePropertiesNodeMap = graph.createNodeMap(); graph.addDataProvider(NodeMapKeys.MONOMER_REF, nodePropertiesNodeMap); nodePropertiesNodeMap.set(baseNode, monomerKeys); return graph; }
/** * a dummy base node with no monomer attached to it * * @param monomerID * @return dummy nucleic acid base node graph */ public static Graph2D createDummyNucleicAcidBaseNode(String monomerID) { Graph2D graph = new Graph2D(); MonomerNodeRealizer baseNodeRealizer = new MonomerNodeRealizer(MonomerNodeRealizer.DIAMOND); graph.setDefaultNodeRealizer(baseNodeRealizer); final int size = 30; baseNodeRealizer.setSize(size, size); MonomerInfo monomerKeys = new MonomerInfo(Monomer.NUCLIEC_ACID_POLYMER_TYPE, monomerID); Node baseNode = graph.createNode(); Color fillColor = ColorMap.getNucleotidesColor("X"); baseNodeRealizer.setFillColor(fillColor); Color textColor = new Color(23 - fillColor.getRGB()); baseNodeRealizer.setLabelText(monomerID); baseNodeRealizer.getLabel().setTextColor(textColor); baseNodeRealizer.getLabel().setFontSize(14); graph.setRealizer(baseNode, baseNodeRealizer); NodeMap nodePropertiesNodeMap = graph.createNodeMap(); graph.addDataProvider(NodeMapKeys.MONOMER_REF, nodePropertiesNodeMap); nodePropertiesNodeMap.set(baseNode, monomerKeys); NodeLabel anotationLabel = new NodeLabel(""); anotationLabel.setModel(NodeLabel.FREE); anotationLabel.setFreeOffset( -baseNodeRealizer.getHeight() / 2, -baseNodeRealizer.getWidth() / 4); anotationLabel.setTextColor(ANOTATION_COLOR); anotationLabel.setFontSize(baseNodeRealizer.getLabel().getFontSize() + 2); baseNodeRealizer.addLabel(anotationLabel); return graph; }