jalview.release=releases/Release_2_11_3_Branch
-jalview.version=2.11.3.2
+jalview.version=2.11.3.3
```
# download
git clone http://source.jalview.org/git/jalview.git
-# compile
+# compile - needs java 11 JDK
cd ./jalview
-gradle shadowJar
+gradle shadowJar # needs to be gradle 7.6.3 or above (but not gradle 8)
# run
java -jar build/libs/jalview-all-*-j11.jar
<tr>
<td rowspan="2">Hydrophobic</td>
<td rowspan="2" bgcolor="#80a0f0">BLUE</td>
- <td>A,I,L,M,F,W,V</td>
- <td>{>60%, WLVIMAFCHP}</td>
+ <td>A,C,I,L,M,F,W,V</td>
+ <td>{>60%, WLVIMAFCYHP}</td>
</tr>
<tr>
<td>C</td>
- <td>{>60%, WLVIMAFCHP}</td>
+ <td>{>60%, WLVIMAFCYHP}</td>
</tr>
<tr>
<td>Positive charge</td>
<td bgcolor="#f01505">RED</td>
<td>K,R</td>
- <td>{>60%,KR},{>80%, K,R,Q}</td>
+ <td>{>60%,KR},{>85%, K,R,Q}</td>
</tr>
<tr>
<td rowspan="2">Negative charge</td>
<td rowspan="2" bgcolor="#c048c0">MAGENTA</td>
<td>E</td>
- <td>{>60%,KR},{>50%,QE},{>85%,E,Q,D}</td>
+ <td>{>60%,KR},{>50%,QE},{>50%,ED},{>85%,E,Q,D}</td>
</tr>
<tr>
<td>D</td>
- <td>{>60%,KR}, {>85%, K,R,Q}, {>50%,ED}</td>
+ <td>{>60%,KR}, {>85%, D,E,N}, {>50%,ED}</td>
</tr>
<tr>
<td rowspan="3">Polar</td>
<td rowspan="3" bgcolor="#15c015">GREEN</td>
<td>N</td>
- <td>{>50%, N}, {>85%, N,Y}</td>
+ <td>{>50%, N}, {>85%, N,D}</td>
</tr>
<tr>
<td>Q</td>
- <td>{>60%,KR},{>50%,QE},{>85%,Q,E,K,R}</td>
+ <td>{>60%,KR},{>50%,QE},{>85%,Q,T,K,R}</td>
</tr>
<tr>
<td>S,T</td>
- <td>{>60%, WLVIMAFCHP}, {>50%, TS}, {>85%,S,T}</td>
+ <td>{>60%, WLVIMAFCYHP}, {>50%, TS}, {>85%,S,T}</td>
</tr>
<tr>
<td>Cysteines</td>
<td>Aromatic</td>
<td bgcolor="#15a4a4">CYAN</td>
<td>H,Y</td>
- <td>{>60%, WLVIMAFCHP}, {>85%,
+ <td>{>60%, WLVIMAFCYHP}, {>85%,
W,Y,A,C,P,Q,F,H,I,L,M,V}</td>
</tr>
<tr>
--- /dev/null
+---
+version: 2.11.3.3
+date: 2023-12-14
+channel: "release"
+---
+
+## New Features
+
+## Issues Resolved
+
+- <!-- JAL-840 --> Clustal colourscheme documentation not consistent with implementation
+
+
+
--- /dev/null
+The 2.11.3.3 release features minor updates to documentation, and addresses bugs affecting export of multiple images for structure views.
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JTextPane;
+import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
}
try
{
-
- iframe.setClosed(true); // ##### implicated BLOCKED
+ final JInternalFrame frme = iframe;
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ frme.setClosed(true);
+ } catch (Exception ex)
+ {
+ }
+ }
+ });
} catch (Exception ex)
{
}
package jalview.schemes;
import java.awt.Color;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.SequenceCollectionI;
import jalview.datamodel.SequenceI;
+import jalview.util.ColorUtils;
import jalview.util.Comparison;
public class ClustalxColourScheme extends ResidueColourScheme
{
return false;
}
+ public String toRuleRep()
+ {
+ makeColours();
+ HashMap<String, String> cols=new HashMap();
+ for (String res:ResidueProperties.aa) {
+ StringBuilder sb = new StringBuilder();
+
+ int rnum=ResidueProperties.aaIndex[res.charAt(0)];
+ if (rnum<0 || rnum>=residueColour.length)
+ {
+ continue;
+ }
+
+ ConsensusColour cc = residueColour[rnum];
+ if (cc==null)
+ {
+ continue;
+ }
+ //sb.append("Residue "+res+" ("+rnum+")");
+ //sb.append("\t");
+ sb.append(cc.c.toString());
+ double f=0;
+ sb.append("\t");
+ for (Consensus cons: cc.cons) {
+ if (cons.threshold==0 || f!=cons.threshold)
+ {
+ if (f!=0)
+ {
+
+ sb.append("}, {");
+ } else {
+ sb.append("{");
+ }
+ sb.append(cons.threshold);
+ sb.append(",");
+ f=cons.threshold;
+ } else {
+ sb.append(",");
+ }
+ sb.append(cons.maskstr);
+ }
+ sb.append("}");
+ String clxrep=sb.toString();
+ String xres = cols.get(clxrep);
+ if (xres==null) { xres = "";}
+ xres+=res;
+ cols.put(clxrep, xres);
+ }
+ StringBuilder sb = new StringBuilder();
+ for (String clxrep:cols.keySet())
+ {
+ sb.append(cols.get(clxrep));
+ sb.append("\t");
+ sb.append(clxrep);
+ sb.append("\n");
+
+ }
+ return sb.toString();
+ }
}
Assert.assertTrue(Files.size(file.toPath()) > 0, "File '" + filename
+ "' has no content from '" + cmdLine + "'");
// make sure the successive output files get bigger!
- if (lastFile != null)
- Assert.assertTrue(Files.size(file.toPath()) > Files
- .size(lastFile.toPath()));
+ if (lastFile != null) {
+ Assert.assertTrue(Files.size(file.toPath()) > Files.size(lastFile.toPath()));
+ System.out.println("this file: " + file + " +" + Files.size(file.toPath()) + " greater than "
+ + Files.size(lastFile.toPath()));
+ }
+ // remember it for next file
+ lastFile = file;
}
} catch (Exception x)
{
Assert.assertTrue(Files.size(file.toPath()) > 0, "File '" + filename
+ "' has no content from '" + cmdLine + "'");
// make sure the successive output files get bigger!
- if (lastFile != null)
+ if (lastFile != null) {
Assert.assertTrue(Files.size(file.toPath()) > Files
.size(lastFile.toPath()));
+ System.out.println("this file: "+file+" +"+Files.size(file.toPath()) + " greater than " +Files.size(lastFile.toPath()));
+ }
+ // remember it for next file
+ lastFile = file;
}
} catch (Exception x)
{
{ testfiles + "/structureimage1.png",
testfiles + "/structureimage2.png",
testfiles + "/structureimage3.png" } },
+ { "--gui --nonews --nosplash --open examples/1gaq.txt --append ./examples/3W5V.pdb "+"--structure examples/1gaq.txt --seqid \"1GAQ|A\" "+"--structureimage "+testfiles+"/1gaq.png --structure examples/3W5V.pdb "+"--seqid \"3W5V|A\" --structureimage "+testfiles+"/3w5v.png --overwrite",
+
+ new String[] {
+ testfiles+"/1gaq.png",testfiles+"/3w5v.png"
+ }
+ },
+ { "--headless --noquit --open ./examples/1gaq.txt --append ./examples/3W5V.pdb "+"--structure examples/1gaq.txt --seqid \"1GAQ|A\" "+"--structureimage "+testfiles+"/1gaq.png --structure examples/3W5V.pdb "+"--seqid \"3W5V|A\" --structureimage "+testfiles+"/3w5v.png --overwrite",
+
+ new String[] {
+ testfiles+"/1gaq.png",testfiles+"/3w5v.png"
+ }
+ }
+
/*
*/
//
// viewport
// assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalPink);
}
+ @Test
+ public void testDocString()
+ {
+ /* verify we have some sort of useful output */
+ ClustalxColourScheme x = new ClustalxColourScheme();
+ String out = x.toRuleRep();
+ System.out.print(out);
+ }
}