+ /**
+ * Predict secondary structure for RNA and/or protein sequences and add as
+ * annotations
+ *
+ * @param rnaSequences
+ * @param proteinSequences
+ */
+ protected void addSecondaryStructure(List<SequenceI> rnaSequences,
+ List<SequenceI> proteinSequences)
+ {
+ /*
+ * Currently using Annotate3D for RNA, but only if the 'use external
+ * prediction' flag is set
+ */
+ if (externalSecondaryStructure && rnaSequences.size() > 0)
+ {
+ try
+ {
+ processPdbFileWithAnnotate3d(rnaSequences);
+ } catch (Exception x)
+ {
+ System.err.println("Exceptions when dealing with RNA in pdb file");
+ x.printStackTrace();
+
+ }
+ }
+
+ /*
+ * Currently using JMol PDB parser for peptide
+ */
+ if (proteinSequences.size() > 0)
+ {
+ try
+ {
+ processWithJmolParser(proteinSequences, true);
+ } catch (Exception x)
+ {
+ System.err.println(
+ "Exceptions from Jmol when processing data in pdb file");
+ x.printStackTrace();
+ }
+ }
+ }
+
+ private void processWithJmolParser(List<SequenceI> prot,
+ boolean doXferSettings) throws MalformedURLException, IOException
+ {
+ FileParse fp = new FileParse(getDataName(), dataSourceType);
+
+ StructureImportSettings.setShowSeqFeatures(false);
+ StructureImportSettings.setVisibleChainAnnotation(false);
+ StructureImportSettings
+ .setProcessSecondaryStructure(predictSecondaryStructure);
+ StructureImportSettings
+ .setExternalSecondaryStructure(externalSecondaryStructure);
+ StructureImportSettings.setTemperatureFactorType(temperatureFactorType);
+ JmolParser jmf = new JmolParser(fp, doXferSettings);
+ AlignmentI al = new Alignment((SequenceI[]) jmf.getSeqsAsArray());
+ jmf.addAnnotations(al);
+ for (SequenceI sq : al.getSequences())
+ {
+ if (sq.getDatasetSequence() != null)
+ {
+ sq.getDatasetSequence().getAllPDBEntries().clear();
+ }
+ else
+ {
+ sq.getAllPDBEntries().clear();
+ }
+ }
+ replaceAndUpdateChains(prot, al, AlignSeq.PEP, false);
+ StructureImportSettings.setShowSeqFeatures(true);
+ }
+
+ /**
+ * Answers the first PDBChain found matching the given id, or null if none is
+ * found
+ *
+ * @param id
+ * @return
+ */
+ public PDBChain findChain(String id)