}
/**
- * create sequence structure mappings between each sequence and the given
- * pdbFile (retrieved via the given protocol).
+ * Import a single structure file and register sequence structure mappings for
+ * broadcasting colouring, mouseovers and selection events (convenience
+ * wrapper).
*
* @param forStructureView
* when true, record the mapping for use in mouseOvers
- *
- * @param sequenceArray
+ * @param sequence
* - one or more sequences to be mapped to pdbFile
- * @param targetChainIds
+ * @param targetChains
* - optional chain specification for mapping each sequence to pdb
- * (may be nill, individual elements may be nill) - JBPNote: JAL-2693
- * - this should be List<List<String>>, empty lists indicate no
- * predefined mappings
+ * (may be nill, individual elements may be nill)
* @param pdbFile
* - structure data resource
- * @param sourceType
+ * @param protocol
* - how to resolve data from resource
* @return null or the structure data parsed as a pdb file
*/
pdbFile, sourceType, null);
}
+ /**
+ * create sequence structure mappings between each sequence and the given
+ * pdbFile (retrieved via the given protocol). Either constructs a mapping
+ * using NW alignment or derives one from any available SIFTS mapping data.
+ *
+ * @param forStructureView
+ * when true, record the mapping for use in mouseOvers
+ *
+ * @param sequenceArray
+ * - one or more sequences to be mapped to pdbFile
+ * @param targetChainIds
+ * - optional chain specification for mapping each sequence to pdb
+ * (may be nill, individual elements may be nill) - JBPNote: JAL-2693
+ * - this should be List<List<String>>, empty lists indicate no
+ * predefined mappings
+ * @param pdbFile
+ * - structure data resource
+ * @param sourceType
+ * - how to resolve data from resource
+ * @param IProgressIndicator
+ * reference to UI component that maintains a progress bar for the
+ * mapping operation
+ * @return null or the structure data parsed as a pdb file
+ */
synchronized public StructureFile computeMapping(
boolean forStructureView, SequenceI[] sequenceArray,
String[] targetChainIds, String pdbFile, DataSourceType sourceType,
IProgressIndicator progress)
{
long progressSessionId = System.currentTimeMillis() * 3;
- /*
- * There will be better ways of doing this in the future, for now we'll use
- * the tried and tested MCview pdb mapping
*/
boolean parseSecStr = processSecondaryStructure;
if (isPDBFileRegistered(pdbFile))
siftsMapping = getStructureMapping(seq, pdbFile, targetChainId,
pdb, maxChain, sqmpping, maxAlignseq);
seqToStrucMapping.add(siftsMapping);
- maxChain.makeExactMapping(maxAlignseq, seq);
- maxChain.transferRESNUMFeatures(seq, null);// FIXME: is this
+ maxChain.makeExactMapping(siftsMapping, seq);
+ maxChain.transferRESNUMFeatures(seq, "IEA: SIFTS");// FIXME: is this
// "IEA:SIFTS" ?
- maxChain.transferResidueAnnotation(siftsMapping, sqmpping);
+ maxChain.transferResidueAnnotation(siftsMapping, null);
ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));
} catch (SiftsException e)
targetChainId, maxChain, pdb, maxAlignseq);
seqToStrucMapping.add(nwMapping);
maxChain.makeExactMapping(maxAlignseq, seq);
- maxChain.transferRESNUMFeatures(seq, null); // FIXME: is this
+ maxChain.transferRESNUMFeatures(seq, "IEA:Jalview"); // FIXME: is
+ // this
// "IEA:Jalview" ?
maxChain.transferResidueAnnotation(nwMapping, sqmpping);
ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));
List<StructureMapping> foundSiftsMappings = new ArrayList<>();
for (PDBChain chain : pdb.getChains())
{
+ StructureMapping siftsMapping = null;
try
{
- StructureMapping siftsMapping = getStructureMapping(seq,
+ siftsMapping = getStructureMapping(seq,
pdbFile, chain.id, pdb, chain, sqmpping, maxAlignseq);
foundSiftsMappings.add(siftsMapping);
+ chain.makeExactMapping(siftsMapping, seq);
+ chain.transferRESNUMFeatures(seq, "IEA: SIFTS");// FIXME: is this
+ // "IEA:SIFTS" ?
+ chain.transferResidueAnnotation(siftsMapping, null);
} catch (SiftsException e)
{
System.err.println(e.getMessage());
if (!foundSiftsMappings.isEmpty())
{
seqToStrucMapping.addAll(foundSiftsMappings);
- maxChain.makeExactMapping(maxAlignseq, seq);
- maxChain.transferRESNUMFeatures(seq, null);// FIXME: is this
- // "IEA:SIFTS" ?
- maxChain.transferResidueAnnotation(foundSiftsMappings.get(0),
- sqmpping);
ds.addPDBId(sqmpping.getTo().getAllPDBEntries().get(0));
}
else
PDBChain chain = pdb.findChain(targetChainId);
if (chain != null)
{
- chain.transferResidueAnnotation(curChainMapping, sqmpping);
+ chain.transferResidueAnnotation(curChainMapping, null);
}
} catch (Exception e)
{