resolved merge conflict
[jalview.git] / src / jalview / ws / phyre2 / Phyre2Client.java
index a54c924..80dc841 100644 (file)
@@ -3,6 +3,7 @@ package jalview.ws.phyre2;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.fts.core.DecimalFormatTableCellRenderer;
+import jalview.io.AppletFormatAdapter;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FormatAdapter;
@@ -15,7 +16,6 @@ import jalview.util.Comparison;
 import jalview.util.Format;
 
 import java.io.BufferedReader;
-import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintStream;
@@ -30,10 +30,6 @@ public class Phyre2Client extends StructureMappingClient
 {
   private final static String NEWLINE = System.lineSeparator();
 
-  public static final int UNASSIGNED = -1;
-
-  private final static String PATH_SEPARATOR = File.separator;
-
   private String fastaMappingFile;
 
   public Phyre2Client(StructureFile structureFile)
@@ -82,8 +78,11 @@ public class Phyre2Client extends StructureMappingClient
     AlignmentI seq2Phyre2ModelFastaMapping = null;
     try
     {
-      seq2Phyre2ModelFastaMapping = new FormatAdapter().readFile(
-              getFastaMappingFile(), DataSourceType.FILE, FileFormat.Fasta);
+      String fastaFile = getFastaMappingFile();
+      DataSourceType protocol = AppletFormatAdapter
+              .checkProtocol(fastaFile);
+      seq2Phyre2ModelFastaMapping = new FormatAdapter().readFile(fastaFile,
+              protocol, FileFormat.Fasta);
     } catch (IOException e1)
     {
       e1.printStackTrace();
@@ -101,24 +100,25 @@ public class Phyre2Client extends StructureMappingClient
     tStructureRes.setEnd(structureFile.getSeqsAsArray()[0].getEnd());
     try
     {
-      int sequenceResLenght = tSequenceRes.getLength();
-      int structureResLenght = tStructureRes.getLength();
-      if (sequenceResLenght == structureResLenght)
+      int sequenceResLength = tSequenceRes.getLength();
+      int structureResLength = tStructureRes.getLength();
+      if (sequenceResLength == structureResLength)
       {
         int prevStructResNum = -1;
-        int alignmentLenght = sequenceResLenght + tSequenceRes.getStart();
-        for (int x = 0; x < alignmentLenght; x++)
+        int alignmentLength = sequenceResLength + tSequenceRes.getStart();
+        for (int x = 0; x < alignmentLength; x++)
         {
           int alignSeqResidueIndex = tSequenceRes.findIndex(x);
           int structResNum = tStructureRes
                   .findPosition(alignSeqResidueIndex);
           int sequenceResNum = tSequenceRes
                   .findPosition(alignSeqResidueIndex - 1);
-          boolean sameResNum = (structResNum == prevStructResNum);
-          // System.out.println(sequenceResNum + " : "
-          // + (sameResNum ? -1 : prevStructResNum));
-          mapping.put(sequenceResNum, new int[] {
-              sameResNum ? -1 : prevStructResNum, -1 });
+          if (structResNum != prevStructResNum)
+          {
+            // System.out.println(sequenceResNum + " : " + prevStructResNum);
+            mapping.put(sequenceResNum, new int[] { prevStructResNum,
+                StructureMapping.UNASSIGNED });
+          }
           prevStructResNum = structResNum;
         }
       }
@@ -127,6 +127,10 @@ public class Phyre2Client extends StructureMappingClient
       e.printStackTrace();
     }
 
+    /*
+     * now populate atom positions for structure residues (and remove
+     * residue if atom position cannot be found)
+     */
     try
     {
       populateAtomPositions(" ", mapping);
@@ -169,6 +173,11 @@ public class Phyre2Client extends StructureMappingClient
     return fastaMappingFile;
   }
 
+  void setFastaMappingFile(String fastaMappingFile)
+  {
+    this.fastaMappingFile = fastaMappingFile;
+  }
+
   @Override
   public StringBuffer getMappingOutput(MappingOutputModel mp)
           throws StructureMappingException