package jalview.io;
import jalview.analysis.AlignSeq;
+import jalview.api.FeatureSettingsModelI;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
import jalview.datamodel.SequenceI;
-import jalview.structure.StructureViewSettings;
+import jalview.structure.StructureImportSettings;
import java.awt.Color;
import java.io.IOException;
private String id;
- private String dbRefType;
+ private PDBEntry.Type dbRefType;
+
/**
* set to true to add derived sequence annotations (temp factor read from
* file, or computed secondary structure) to the alignment
this.predictSecondaryStructure = predictSecondaryStructure;
this.externalSecondaryStructure = externalSecStr;
}
- public StructureFile(boolean parseImmediately, String inFile, String type)
+
+ public void xferSettings()
+ {
+ this.visibleChainAnnotation = StructureImportSettings
+ .isVisibleChainAnnotation();
+ this.predictSecondaryStructure = StructureImportSettings
+ .isProcessSecondaryStructure();
+ this.externalSecondaryStructure = StructureImportSettings
+ .isExternalSecondaryStructure();
+
+ }
+
+ public StructureFile(boolean parseImmediately, String dataObject, String type)
throws IOException
{
- super(parseImmediately, inFile, type);
+ super(parseImmediately, dataObject, type);
}
public StructureFile(boolean a, FileParse fp) throws IOException
DBRefEntry sourceDBRef = new DBRefEntry();
sourceDBRef.setAccessionId(getId());
sourceDBRef.setSource(DBRefSource.PDB);
- sourceDBRef.setStartRes(pdbSequence.getStart());
- sourceDBRef.setEndRes(pdbSequence.getEnd());
-
- SequenceI chainseq = pdbSequence.deriveSequence();
- chainseq.setSourceDBRef(sourceDBRef);
- chainseq.addPDBId(entry);
- chainseq.addDBRef(sourceDBRef);
-
+ // TODO: specify version for 'PDB' database ref if it is read from a file.
+ // TODO: decide if jalview.io should be creating primary refs!
+ sourceDBRef.setVersion("");
+ pdbSequence.addPDBId(entry);
+ pdbSequence.addDBRef(sourceDBRef);
+ SequenceI chainseq = pdbSequence;
seqs.addElement(chainseq);
-
AlignmentAnnotation[] chainannot = chainseq.getAnnotation();
if (chainannot != null && visibleChainAnnotation)
@SuppressWarnings("unchecked")
protected void replaceAndUpdateChains(List<SequenceI> prot,
- AlignmentI al,
- String pep, boolean b)
+ AlignmentI al, String pep, boolean b)
{
List<List<? extends Object>> replaced = AlignSeq
.replaceMatchingSeqsWith(seqs, annotations, prot, al, pep,
}
@SuppressWarnings({ "unchecked", "rawtypes" })
- private void processWithJmolParser(List<SequenceI> prot)
- throws Exception
+ private void processWithJmolParser(List<SequenceI> prot) throws Exception
{
try
{
Class cl = Class.forName("jalview.ext.jmol.JmolParser");
if (cl != null)
{
- final Constructor constructor = cl
-.getConstructor(new Class[] {
+ final Constructor constructor = cl.getConstructor(new Class[] {
boolean.class, boolean.class, boolean.class, FileParse.class });
- final Object[] args = new Object[] { true, true, true,
- new FileParse(getDataName(),
- type) };
-
- StructureViewSettings.setShowSeqFeatures(false);
- StructureViewSettings.setPredictSecondaryStructure(true);
+ final Object[] args = new Object[] { visibleChainAnnotation,
+ predictSecondaryStructure, externalSecondaryStructure,
+ new FileParse(getDataName(), type) };
+
+ StructureImportSettings.setShowSeqFeatures(false);
+ StructureImportSettings.setVisibleChainAnnotation(false);
+ StructureImportSettings
+ .setProcessSecondaryStructure(predictSecondaryStructure);
+ StructureImportSettings
+ .setExternalSecondaryStructure(externalSecondaryStructure);
Object jmf = constructor.newInstance(args);
AlignmentI al = new Alignment((SequenceI[]) cl.getMethod(
"getSeqsAsArray", new Class[] {}).invoke(jmf));
} catch (ClassNotFoundException q)
{
}
+ StructureImportSettings.setShowSeqFeatures(true);
}
public PDBChain findChain(String id) throws Exception
{
for (PDBChain chain : getChains())
{
- if (chain.id.equalsIgnoreCase(id))
+ if (chain.id.equals(id))
{
return chain;
}
this.chains = chains;
}
- public String getDbRefType()
+ public Type getDbRefType()
{
return dbRefType;
}
public void setDbRefType(String dbRefType)
{
+ this.dbRefType = Type.valueOf(dbRefType);
+ }
+
+ public void setDbRefType(Type dbRefType)
+ {
this.dbRefType = dbRefType;
}
+
+ /**
+ * Returns a descriptor for suitable feature display settings with
+ * <ul>
+ * <li>ResNums or insertions features visible</li>
+ * <li>insertions features coloured red</li>
+ * <li>ResNum features coloured by label</li>
+ * <li>Insertions displayed above (on top of) ResNums</li>
+ * </ul>
+ */
+ @Override
+ public FeatureSettingsModelI getFeatureColourScheme()
+ {
+ return new PDBFeatureSettings();
+ }
}