*/
package jalview.ext.jmol;
+import java.util.Locale;
+
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Annotation;
import jalview.datamodel.PDBEntry;
// }
// ;
// instead, we distinguish .cif from non-.cif by filename
- setStructureFileType(getDataName().toLowerCase().endsWith(".cif")
- ? PDBEntry.Type.MMCIF.toString()
- : "PDB");
+ setStructureFileType(
+ getDataName().toLowerCase(Locale.ROOT).endsWith(".cif")
+ ? PDBEntry.Type.MMCIF.toString()
+ : "PDB");
transformJmolModelToJalview(jmolModel.ms);
}
* params -o (output to sysout) -n (nodisplay) -x (exit when finished)
* see http://wiki.jmol.org/index.php/Jmol_Application
*/
-
+
viewer = JalviewJmolBinding.getJmolData(this);
// ensure the 'new' (DSSP) not 'old' (Ramachandran) SS method is used
viewer.setBooleanProperty("defaultStructureDSSP", true);
}
return viewer;
}
-
+
public static Regex getNewAlphafoldValidator()
{
- Regex validator = new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)");
+ Regex validator = new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)");
validator.setIgnoreCase(true);
return validator;
}
+ PDBEntry.Type jmolFiletype = null;
+
+ /**
+ * resolve a jmol filetype string and update the jmolFiletype field
+ * accordingly
+ *
+ * @param jmolIdentifiedFileType
+ * @return true if filetype was identified as MMCIF, PDB
+ */
+ public boolean updateFileType(String jmolIdentifiedFileType)
+ {
+ if (jmolIdentifiedFileType == null
+ || jmolIdentifiedFileType.trim().equals(""))
+ {
+ return false;
+ }
+ if ("mmcif".equalsIgnoreCase(jmolIdentifiedFileType))
+ {
+ jmolFiletype = PDBEntry.Type.MMCIF;
+ return true;
+ }
+ if ("pdb".equalsIgnoreCase(jmolIdentifiedFileType))
+ {
+ jmolFiletype = PDBEntry.Type.PDB;
+ return true;
+ }
+ return false;
+ }
public void transformJmolModelToJalview(ModelSet ms) throws IOException
{
List<SequenceI> prot = new ArrayList<SequenceI>();
PDBChain tmpchain;
String pdbId = (String) ms.getInfo(0, "title");
- String isMMCIF = (String) ms.getInfo(0, "fileType");
+ boolean isMMCIF = false;
+ String jmolFileType_String = (String) ms.getInfo(0, "fileType");
+ if (updateFileType(jmolFileType_String))
+ {
+ setStructureFileType(jmolFiletype.toString());
+ }
+
+ isMMCIF = PDBEntry.Type.MMCIF.equals(jmolFiletype);
if (pdbId == null)
{
{
setId(pdbId);
setPDBIdAvailable(true);
- alphaFoldModel = alphaFold.search(pdbId) && isMMCIF!=null && isMMCIF.equalsIgnoreCase("mmcif");
+ alphaFoldModel = alphaFold.search(pdbId) && isMMCIF;
}
List<Atom> significantAtoms = convertSignificantAtoms(ms);
if (tmpchain != null)
{
tmpchain.atoms.addElement(tmpatom);
- } else
+ }
+ else
{
- tmpchain = new PDBChain(getId(), tmpatom.chain,isAlphafoldModel());
+ String tempFString = null;
+ if (isAlphafoldModel())
+ {
+ tempFString = "Alphafold Reliability";
+ }
+
+ tmpchain = new PDBChain(getId(), tmpatom.chain, tempFString);
getChains().add(tmpchain);
tmpchain.atoms.addElement(tmpatom);
}
{
int length = sq.getLength();
boolean ssFound = false;
- Annotation asecstr[] = new Annotation[length + firstResNum - 1];
+ Annotation asecstr[] = new Annotation[length + (firstResNum-sq.getStart())];
for (int p = 0; p < length; p++)
{
if (secstr[p] >= 'A' && secstr[p] <= 'z')