X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2FEBIAlfaFold.java;h=6b27488b24a67750f23a9e24735292502412817b;hb=1ef93cb2817f75699773f049b8d25e5b509c2830;hp=8609046af8a05a3ef0c17403119fc8bd6308ab6c;hpb=a5d05d981da8510d2fc2e02aec0b110d6f5dc47e;p=jalview.git diff --git a/src/jalview/ws/dbsources/EBIAlfaFold.java b/src/jalview/ws/dbsources/EBIAlfaFold.java index 8609046..6b27488 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; @@ -154,20 +155,12 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy @Override public AlignmentI getSequenceRecords(String queries) throws Exception { - // used by the SequenceFetcher. Put forSequencesOnly to true (don't open - // structure viewer later) - return getSequenceRecords(queries, null, true); + return getSequenceRecords(queries, null); } public AlignmentI getSequenceRecords(String queries, String retrievalUrl) throws Exception { - return getSequenceRecords(queries, retrievalUrl, false); - } - - public AlignmentI getSequenceRecords(String queries, String retrievalUrl, - boolean forSequencesOnly) throws Exception - { AlignmentI pdbAlignment = null; String chain = null; String id = null; @@ -183,7 +176,7 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy if (!isValidReference(id)) { - System.err.println( + jalview.bin.Console.errPrintln( "(AFClient) Ignoring invalid alphafold query: '" + id + "'"); stopQuery(); return null; @@ -226,8 +219,6 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy stopQuery(); throw (ex); } - // distinguish between AlphaFold cif/pdb opened as structure file or fetched - // as sequence/alignment return pdbAlignment; } @@ -304,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 @@ -323,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); } } @@ -338,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."); @@ -357,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 @@ -380,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."); @@ -410,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) @@ -437,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) @@ -454,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; @@ -478,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); @@ -503,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; }