X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2FEBIAlfaFold.java;h=5ab05e09598353709bdb7a0888044931719a7ae3;hb=a7169b1c72607f3c9357195b4999869650a2a891;hp=aba0d4b3a77437bbb6eea9e9f105f260e0dc30e7;hpb=7e3a6674abdd31bf48e7e249a74eff50fd2ce589;p=jalview.git diff --git a/src/jalview/ws/dbsources/EBIAlfaFold.java b/src/jalview/ws/dbsources/EBIAlfaFold.java index aba0d4b..5ab05e0 100644 --- a/src/jalview/ws/dbsources/EBIAlfaFold.java +++ b/src/jalview/ws/dbsources/EBIAlfaFold.java @@ -40,11 +40,11 @@ import com.stevesoft.pat.Regex; 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; @@ -54,6 +54,7 @@ import jalview.io.FileFormat; 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; @@ -199,6 +200,7 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy { return null; } + // TODO Get the PAE file somewhere around here and remove from JmolParser pdbAlignment = importDownloadedStructureFromUrl(alphaFoldCif, tmpFile, id, chain, getDbSource(), getDbVersion()); @@ -293,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 @@ -312,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); } } @@ -327,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."); @@ -346,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 @@ -369,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."); @@ -398,24 +404,8 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy * @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) @@ -442,20 +432,13 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy 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) @@ -467,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; @@ -491,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); @@ -516,18 +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); - sm.transfer(cmannot); - // return true; - - StructureSelectionManager ssm = StructureSelectionManager - .getStructureSelectionManager(Desktop.instance); - List acfList = ssm.getSequenceMappings(); - + /* this already happens in Sequence.addContactList() + seq.addAlignmentAnnotation(cmannot); + */ return true; } @@ -551,8 +532,10 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy 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 toremove = new ArrayList(); @@ -565,7 +548,6 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy if (pid.getFile() == file) { chid = pid.getChainCode(); - } } if (chain == null || (chid != null && (chid.equals(chain)