import jalview.datamodel.SequenceI;
import jalview.gui.IProgressIndicator;
import jalview.io.AppletFormatAdapter;
+import jalview.io.StructureFile;
import jalview.util.MappingUtils;
import jalview.util.MessageManager;
import jalview.ws.sifts.SiftsClient;
* - how to resolve data from resource
* @return null or the structure data parsed as a pdb file
*/
- synchronized public PDBfile setMapping(SequenceI[] sequence,
+ synchronized public StructureFile setMapping(SequenceI[] sequence,
String[] targetChains, String pdbFile, String protocol)
{
return setMapping(true, sequence, targetChains, pdbFile, protocol);
}
+
/**
* create sequence structure mappings between each sequence and the given
* pdbFile (retrieved via the given protocol).
* - how to resolve data from resource
* @return null or the structure data parsed as a pdb file
*/
- synchronized public PDBfile setMapping(boolean forStructureView,
+ synchronized public StructureFile setMapping(boolean forStructureView,
SequenceI[] sequenceArray, String[] targetChainIds,
String pdbFile,
String protocol)
}
}
}
- PDBfile pdb = null;
+ StructureFile pdb = null;
boolean isMapUsingSIFTs = SiftsSettings.isMapWithSifts();
try
{
- pdb = new PDBfile(addTempFacAnnot, parseSecStr, secStructServices,
- pdbFile, protocol);
- if (pdb.id != null && pdb.id.trim().length() > 0
+ if (pdbFile != null && isCIFFile(pdbFile))
+ {
+ pdb = new jalview.ext.jmol.JmolParser(addTempFacAnnot, parseSecStr,
+ secStructServices, pdbFile, protocol);
+ }
+ else
+ {
+ pdb = new PDBfile(addTempFacAnnot, parseSecStr, secStructServices,
+ pdbFile, protocol);
+ }
+
+ if (pdb.getId() != null && pdb.getId().trim().length() > 0
&& AppletFormatAdapter.FILE.equals(protocol))
{
- registerPDBFile(pdb.id.trim(), pdbFile);
+ registerPDBFile(pdb.getId().trim(), pdbFile);
}
} catch (Exception ex)
{
String maxChainId = " ";
PDBChain maxChain = null;
boolean first = true;
- for (PDBChain chain : pdb.chains)
+ for (PDBChain chain : pdb.getChains())
{
if (targetChainId.length() > 0 && !targetChainId.equals(chain.id)
&& !infChain)
if (protocol.equals(jalview.io.AppletFormatAdapter.PASTE))
{
- pdbFile = "INLINE" + pdb.id;
+ pdbFile = "INLINE" + pdb.getId();
}
ArrayList<StructureMapping> seqToStrucMapping = new ArrayList<StructureMapping>();
}
else
{
- for (PDBChain chain : pdb.chains)
+ for (PDBChain chain : pdb.getChains())
{
StructureMapping mapping = getStructureMapping(seq, pdbFile,
chain.id, pdb, chain, sqmpping, maxAlignseq);
return pdb;
}
+ private boolean isCIFFile(String filename)
+ {
+ String fileExt = filename.substring(filename.lastIndexOf(".") + 1,
+ filename.length());
+ return "cif".equalsIgnoreCase(fileExt);
+ }
+
private StructureMapping getStructureMapping(SequenceI seq,
- String pdbFile, String targetChainId, PDBfile pdb,
+ String pdbFile, String targetChainId, StructureFile pdb,
PDBChain maxChain, jalview.datamodel.Mapping sqmpping,
AlignSeq maxAlignseq)
{
{
StructureMapping curChainMapping = siftsClient
.getSiftsStructureMapping(seq, pdbFile, targetChainId);
+ try
+ {
PDBChain chain = pdb.findChain(targetChainId);
if (chain != null)
{
chain.transferResidueAnnotation(curChainMapping, sqmpping);
}
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
return curChainMapping;
} catch (SiftsException e)
{
private StructureMapping getNWMappings(SequenceI seq,
String pdbFile,
- String maxChainId, PDBChain maxChain, PDBfile pdb,
+ String maxChainId, PDBChain maxChain, StructureFile pdb,
AlignSeq maxAlignseq)
{
final StringBuilder mappingDetails = new StringBuilder(128);
} while (index < maxChain.atoms.size());
StructureMapping nwMapping = new StructureMapping(seq, pdbFile,
- pdb.id, maxChainId, mapping, mappingDetails.toString());
+ pdb.getId(), maxChainId, mapping, mappingDetails.toString());
maxChain.transferResidueAnnotation(nwMapping, sqmpping);
return nwMapping;
}