{
if (mappings.isEmpty())
{
- System.err.println("reportMapping: No PDB/Sequence mappings.");
+ jalview.bin.Console.errPrintln("reportMapping: No PDB/Sequence mappings.");
}
else
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"reportMapping: There are " + mappings.size() + " mappings.");
int i = 0;
for (StructureMapping sm : mappings)
{
- System.err.println("mapping " + i++ + " : " + sm.pdbfile);
+ jalview.bin.Console.errPrintln("mapping " + i++ + " : " + sm.pdbfile);
}
}
}
IProgressIndicator progress)
{
return computeMapping(true, sequence, targetChains, pdbFile, protocol,
- progress, null, null);
+ progress, null, null, true);
}
/**
String pdbFile, DataSourceType sourceType, TFType tft,
String paeFilename)
{
+ return setMapping(forStructureView, sequenceArray, targetChainIds,
+ pdbFile, sourceType, tft, paeFilename, true);
+ }
+
+
+ /**
+ * 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 tft - specify how to interpret the temperature factor column in the atom data
+ * @param paeFilename - when not null, specifies a filename containing a matrix formatted in JSON using one of the known PAE formats
+ * @param doXferSettings - when true, transfer annotation to mapped sequences in sequenceArray
+ * @return null or the structure data parsed as a pdb file
+ */
+ synchronized public StructureFile setMapping(boolean forStructureView,
+ SequenceI[] sequenceArray, String[] targetChainIds,
+ String pdbFile, DataSourceType sourceType, TFType tft,
+ String paeFilename, boolean doXferSettings)
+ {
return computeMapping(forStructureView, sequenceArray, targetChainIds,
- pdbFile, sourceType, null, tft, paeFilename);
+ pdbFile, sourceType, null, tft, paeFilename, doXferSettings);
}
/**
* @param IProgressIndicator
* reference to UI component that maintains a progress bar for the
* mapping operation
+ * @param tft - specify how to interpret the temperature factor column in the atom data
+ * @param paeFilename - when not null, specifies a filename containing a matrix formatted in JSON using one of the known PAE formats
+ * @param doXferSettings - when true, transfer annotation to mapped sequences in sequenceArray
* @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, TFType tft, String paeFilename)
+ IProgressIndicator progress, TFType tft, String paeFilename,
+ boolean doXferSettings)
{
long progressSessionId = System.currentTimeMillis() * 3;
// FIXME: possibly should just delete
boolean parseSecStr = processSecondaryStructure
- ? isStructureFileProcessed(pdbFile, sequenceArray)
- : false;
+ && !isStructureFileProcessed(pdbFile, sequenceArray);
StructureFile pdb = null;
boolean isMapUsingSIFTs = SiftsSettings.isMapWithSifts();
pdb.addSettings(parseSecStr && processSecondaryStructure,
parseSecStr && addTempFacAnnot,
parseSecStr && secStructServices);
+ // save doXferSettings and reset after doParse()
+ boolean temp = pdb.getDoXferSettings();
+ pdb.setDoXferSettings(doXferSettings);
pdb.doParse();
+ pdb.setDoXferSettings(temp);
if (pdb.getId() != null && pdb.getId().trim().length() > 0
&& DataSourceType.FILE == sourceType)
{
chain.transferResidueAnnotation(siftsMapping, null);
} catch (SiftsException e)
{
- System.err.println(e.getMessage());
+ jalview.bin.Console.errPrintln(e.getMessage());
} catch (Exception e)
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"Unexpected exception during SIFTS mapping - falling back to NW for this sequence/structure pair");
- System.err.println(e.getMessage());
+ jalview.bin.Console.errPrintln(e.getMessage());
}
}
if (!foundSiftsMappings.isEmpty())
private boolean isStructureFileProcessed(String pdbFile,
SequenceI[] sequenceArray)
{
- boolean parseSecStr = true;
+ boolean processed = false;
if (isPDBFileRegistered(pdbFile))
{
for (SequenceI sq : sequenceArray)
// passed, not the structure data ID -
if (PDBfile.isCalcIdForFile(ala, findIdForPDBFile(pdbFile)))
{
- parseSecStr = false;
+ processed = true;
}
}
}
}
}
- return parseSecStr;
+ return processed;
}
public void addStructureMapping(StructureMapping sm)
int indexpos = sm.getSeqPos(atom.getPdbResNum());
if (lastipos != indexpos || lastseq != sm.sequence)
{
- results.addResult(sm.sequence, indexpos, indexpos);
+ results.appendResult(sm.sequence, indexpos, indexpos);
lastipos = indexpos;
lastseq = sm.sequence;
// construct highlighted sequence list
*
* if (mappings[j].sequence == seq && mappings[j].getPdbId().equals(pdbid)
* && mappings[j].pdbfile.equals(sl.getPdbFile())) {
- * System.out.println(pdbid+" "+mappings[j].getPdbId() +"
+ * jalview.bin.Console.outPrintln(pdbid+" "+mappings[j].getPdbId() +"
* "+mappings[j].pdbfile);
*
* java.awt.Color col; for(int index=0; index<seq.getLength(); index++) {
boolean removed = seqmappings.remove(acf);
if (removed && seqmappings.isEmpty())
{ // debug
- System.out.println("All mappings removed");
+ jalview.bin.Console.outPrintln("All mappings removed");
}
}
}