import jalview.api.FeatureSettingsModelI;
import jalview.bin.Console;
-import jalview.datamodel.AlignedCodonFrame;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ContactMatrixI;
import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.GroupSet;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.PDBFeatureSettings;
+import jalview.structure.StructureImportSettings.TFType;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
import jalview.util.MessageManager;
{
return null;
}
+ // TODO Get the PAE file somewhere around here and remove from JmolParser
pdbAlignment = importDownloadedStructureFromUrl(alphaFoldCif, tmpFile,
id, chain, getDbSource(), getDbVersion());
AlignmentI pdbAlignment, String retrievalUrl) throws IOException
{
File pae = fetchAlphaFoldPAE(id, retrievalUrl);
- addAlphaFoldPAE(pdbAlignment, pae, 0, null, false, false);
+ addAlphaFoldPAE(pdbAlignment, pae, 0, null, false, false, null);
}
public static void addAlphaFoldPAE(AlignmentI pdbAlignment, File pae,
- int index, String id, boolean isStruct, boolean isStructId)
+ int index, String id, boolean isStruct, boolean isStructId,
+ String label)
{
FileInputStream paeInput = null;
try
if (isStruct)
{
+ // ###### WRITE A TEST for this bit of the logic addAlphaFoldPAE with
+ // different params.
StructureSelectionManager ssm = StructureSelectionManager
.getStructureSelectionManager(Desktop.instance);
if (ssm != null)
{
String structFilename = isStructId ? ssm.findFileForPDBId(id) : id;
- addPAEToStructure(ssm, structFilename, pae);
+ addPAEToStructure(ssm, structFilename, pae, label);
}
}
try
{
if (!importPaeJSONAsContactMatrixToSequence(pdbAlignment, paeInput,
- index, id))
+ index, id, label))
{
Console.warn("Could not import contact matrix from '"
+ pae.getAbsolutePath() + "' to sequence.");
}
public static void addPAEToStructure(StructureSelectionManager ssm,
- String structFilename, File pae)
+ String structFilename, File pae, String label)
{
FileInputStream paeInput = null;
try
try
{
- if (!importPaeJSONAsContactMatrixToStructure(smArray, paeInput))
+ if (!importPaeJSONAsContactMatrixToStructure(smArray, paeInput,
+ label))
{
Console.warn("Could not import contact matrix from '"
+ pae.getAbsolutePath() + "' to structure.");
* @throws Exception
*/
public static boolean importPaeJSONAsContactMatrixToSequence(
- AlignmentI pdbAlignment, InputStream pae_input)
- throws IOException, ParseException
- {
- return importPaeJSONAsContactMatrixToSequence(pdbAlignment, pae_input,
- 0, null);
- }
-
- public static boolean importPaeJSONAsContactMatrixToSequence(
- AlignmentI pdbAlignment, File paeFile, int index, String seqId)
- throws FileNotFoundException, IOException, ParseException
- {
- return importPaeJSONAsContactMatrixToSequence(pdbAlignment,
- new FileInputStream(paeFile), index, seqId);
- }
-
- public static boolean importPaeJSONAsContactMatrixToSequence(
AlignmentI pdbAlignment, InputStream pae_input, int index,
- String seqId) throws IOException, ParseException
+ String seqId, String label) throws IOException, ParseException
{
SequenceI sequence = null;
if (seqId == null)
return false;
}
return importPaeJSONAsContactMatrixToSequence(pdbAlignment, pae_input,
- sequence);
- }
-
- public static boolean importPaeJSONAsContactMatrixToSequence(
- AlignmentI pdbAlignment, File pae_input, SequenceI sequence)
- throws IOException, ParseException
- {
- return importPaeJSONAsContactMatrixToSequence(pdbAlignment,
- new FileInputStream(pae_input), sequence);
+ sequence, label);
}
public static boolean importPaeJSONAsContactMatrixToSequence(
AlignmentI pdbAlignment, InputStream pae_input,
- SequenceI sequence) throws IOException, ParseException
+ SequenceI sequence, String label)
+ throws IOException, ParseException
{
JSONObject paeDict = parseJSONtoPAEContactMatrix(pae_input);
if (paeDict == null)
}
ContactMatrixI matrix = new PAEContactMatrix(sequence,
(Map<String, Object>) paeDict);
+ matrix.setGroupSet(GroupSet.makeGroups(matrix, 5f, true));
AlignmentAnnotation cmannot = sequence.addContactList(matrix);
+ if (label != null)
+ cmannot.label = label;
pdbAlignment.addAnnotation(cmannot);
return true;
return paeDict;
}
+ // ###### TEST THIS
public static boolean importPaeJSONAsContactMatrixToStructure(
- StructureMapping[] smArray, InputStream paeInput)
+ StructureMapping[] smArray, InputStream paeInput, String label)
throws IOException, ParseException
{
boolean someDone = false;
for (StructureMapping sm : smArray)
{
boolean thisDone = importPaeJSONAsContactMatrixToStructure(sm,
- paeInput);
+ paeInput, label);
someDone |= thisDone;
}
return someDone;
}
public static boolean importPaeJSONAsContactMatrixToStructure(
- StructureMapping sm, InputStream paeInput)
+ StructureMapping sm, InputStream paeInput, String label)
throws IOException, ParseException
{
JSONObject pae_obj = parseJSONtoPAEContactMatrix(paeInput);
return false;
}
- ContactMatrixI matrix = new PAEContactMatrix(sm.getSequence(),
+ SequenceI seq = sm.getSequence();
+ ContactMatrixI matrix = new PAEContactMatrix(seq,
(Map<String, Object>) pae_obj);
-
+ matrix.setGroupSet(GroupSet.makeGroups(matrix, 5f, true));
AlignmentAnnotation cmannot = sm.getSequence().addContactList(matrix);
- // sm.getSequence().addAlignmentAnnotation(cmannot);
- sm.transfer(cmannot);
- // return true;
-
- StructureSelectionManager ssm = StructureSelectionManager
- .getStructureSelectionManager(Desktop.instance);
- List<AlignedCodonFrame> acfList = ssm.getSequenceMappings();
-
+ /* this already happens in Sequence.addContactList()
+ seq.addAlignmentAnnotation(cmannot);
+ */
return true;
}
String file = tmpFile.getAbsolutePath();
// todo get rid of Type and use FileFormatI instead?
FileFormatI fileFormat = FileFormat.MMCif;
- AlignmentI pdbAlignment = new FormatAdapter().readFile(tmpFile,
- DataSourceType.FILE, fileFormat);
+ TFType tempfacType = TFType.PLDDT;
+ AlignmentI pdbAlignment = new FormatAdapter().readFile(tmpFile, file,
+ DataSourceType.FILE, fileFormat, tempfacType);
+
if (pdbAlignment != null)
{
List<SequenceI> toremove = new ArrayList<SequenceI>();
if (pid.getFile() == file)
{
chid = pid.getChainCode();
-
}
}
if (chain == null || (chid != null && (chid.equals(chain)