X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fws%2Fdbsources%2FEBIAlfaFold.java;h=5ab05e09598353709bdb7a0888044931719a7ae3;hb=a06dd69fae641b3f5a8f202b439796df8469abb6;hp=8592bd339568db6b8ce2b9e79687c044f716db16;hpb=978323b040861e0e5bf01fcf0f2454d0dbf294a9;p=jalview.git diff --git a/src/jalview/ws/dbsources/EBIAlfaFold.java b/src/jalview/ws/dbsources/EBIAlfaFold.java index 8592bd3..5ab05e0 100644 --- a/src/jalview/ws/dbsources/EBIAlfaFold.java +++ b/src/jalview/ws/dbsources/EBIAlfaFold.java @@ -44,6 +44,7 @@ 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; @@ -294,11 +295,12 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy 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 @@ -313,12 +315,14 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy 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); } } @@ -328,7 +332,7 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy try { if (!importPaeJSONAsContactMatrixToSequence(pdbAlignment, paeInput, - index, id)) + index, id, label)) { Console.warn("Could not import contact matrix from '" + pae.getAbsolutePath() + "' to sequence."); @@ -347,7 +351,7 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy } public static void addPAEToStructure(StructureSelectionManager ssm, - String structFilename, File pae) + String structFilename, File pae, String label) { FileInputStream paeInput = null; try @@ -370,7 +374,8 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy try { - if (!importPaeJSONAsContactMatrixToStructure(smArray, paeInput)) + if (!importPaeJSONAsContactMatrixToStructure(smArray, paeInput, + label)) { Console.warn("Could not import contact matrix from '" + pae.getAbsolutePath() + "' to structure."); @@ -400,7 +405,7 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy */ 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) @@ -427,12 +432,13 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy return false; } return importPaeJSONAsContactMatrixToSequence(pdbAlignment, 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) @@ -444,6 +450,8 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy (Map) paeDict); AlignmentAnnotation cmannot = sequence.addContactList(matrix); + if (label != null) + cmannot.label = label; pdbAlignment.addAnnotation(cmannot); return true; @@ -468,22 +476,23 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy 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); @@ -493,12 +502,13 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy return false; } - ContactMatrixI matrix = new PAEContactMatrix(sm.getSequence(), + SequenceI seq = sm.getSequence(); + ContactMatrixI matrix = new PAEContactMatrix(seq, (Map) pae_obj); - AlignmentAnnotation cmannot = sm.getSequence().addContactList(matrix); - sm.getSequence().addAlignmentAnnotation(cmannot); - + /* this already happens in Sequence.addContactList() + seq.addAlignmentAnnotation(cmannot); + */ return true; }