import jalview.datamodel.SearchResults;
import jalview.datamodel.SequenceI;
import jalview.io.AppletFormatAdapter;
+import jalview.io.SiftsClient;
import jalview.util.MappingUtils;
import jalview.util.MessageManager;
}
};
+ // mapWithNWAlignment();
+ // mapWithSIFTS();
maxAlignseq.printAlignment(ps);
mappingDetails.append(NEWLINE).append("PDB start/end ");
{
pdbFile = "INLINE" + pdb.id;
}
- StructureMapping newMapping = new StructureMapping(seq, pdbFile,
- pdb.id, maxChainId, mapping, mappingDetails.toString());
+ // StructureMapping newMapping = new StructureMapping(seq, pdbFile,
+ // pdb.id, maxChainId, mapping, mappingDetails.toString());
+ StructureMapping newMapping = new SiftsClient(pdb.id)
+ .getSiftsMappingsFor(seq, pdbFile, maxChainId);
if (forStructureView)
{
mappings.add(newMapping);
return pdb;
}
+ private StructureMapping mapWithNWAlignment(StringBuilder mappingDetails,
+ PDBChain maxChain, AlignSeq maxAlignseq, SequenceI seq,
+ PrintStream ps)
+ {
+ maxAlignseq.printAlignment(ps);
+
+ mappingDetails.append(NEWLINE).append("PDB start/end ");
+ mappingDetails.append(String.valueOf(maxAlignseq.seq2start))
+ .append(" ");
+ mappingDetails.append(String.valueOf(maxAlignseq.seq2end));
+ mappingDetails.append(NEWLINE).append("SEQ start/end ");
+ // TODO JAL-1887 should be fixed from here
+ mappingDetails.append(
+ String.valueOf(maxAlignseq.seq1start + seq.getStart() - 1))
+ .append(" ");
+ mappingDetails.append(String.valueOf(maxAlignseq.seq1end + seq.getEnd()
+ - 1));
+
+ maxChain.makeExactMapping(maxAlignseq, seq);
+ jalview.datamodel.Mapping sqmpping = maxAlignseq
+ .getMappingFromS1(false);
+ jalview.datamodel.Mapping omap = new jalview.datamodel.Mapping(sqmpping
+ .getMap().getInverse());
+ maxChain.transferRESNUMFeatures(seq, null);
+
+ // allocate enough slots to store the mapping from positions in
+ // sequence[s] to the associated chain
+ int[][] mapping = new int[seq.findPosition(seq.getLength()) + 2][2];
+ int resNum = -10000;
+ int index = 0;
+
+ do
+ {
+ Atom tmp = maxChain.atoms.elementAt(index);
+ if (resNum != tmp.resNumber && tmp.alignmentMapping != -1)
+ {
+ resNum = tmp.resNumber;
+ if (tmp.alignmentMapping >= -1)
+ {
+ // TODO (JAL-1836) address root cause: negative residue no in PDB
+ // file
+ mapping[tmp.alignmentMapping + 1][0] = tmp.resNumber;
+ mapping[tmp.alignmentMapping + 1][1] = tmp.atomIndex;
+ }
+ }
+
+ index++;
+ } while (index < maxChain.atoms.size());
+
+ return null;
+ }
+
public void removeStructureViewerListener(Object svl, String[] pdbfiles)
{
listeners.removeElement(svl);