jalview.release=releases/Release_2_11_2_Branch
-jalview.version=2.11.2.4
+jalview.version=2.11.2.5
<tocitem text="ClustalX" target="colours.clustal" />
<tocitem text="Zappo" target="colours.zappo" />
<tocitem text="Taylor" target="colours.taylor" />
- <tocitem text="gecos:flower" target="colours.gecos-flower" />
- <tocitem text="gecos:blossom" target="colours.gecos-blossom" />
- <tocitem text="gecos:sunset" target="colours.gecos-sunset" />
- <tocitem text="gecos:ocean" target="colours.gecos-ocean" />
+ <tocitem text="gecos Flower" target="colours.gecos-flower" />
+ <tocitem text="gecos Blossom" target="colours.gecos-blossom" />
+ <tocitem text="gecos Sunset" target="colours.gecos-sunset" />
+ <tocitem text="gecos Ocean" target="colours.gecos-ocean" />
<tocitem text="Hydrophobicity" target="colours.hydro" />
<tocitem text="Helix propensity" target="colours.helix" />
<tocitem text="Strand propensity" target="colours.strand" />
<td></td>
</tr>
<tr>
- <td>gecos:flower</td>
+ <td>gecos Flower</td>
<td bgcolor="#b18a51"></td>
<td bgcolor="#83bff1"></td>
<td></td>
</tr>
<tr>
- <td>gecos:blossom</td>
+ <td>gecos Blossom</td>
<td bgcolor="#8bc4b4"></td>
<td bgcolor="#fc9502"></td>
<td bgcolor="#b5c206"></td>
<td></td>
</tr>
<tr>
- <td>gecos:sunset</td>
+ <td>gecos Sunset</td>
<td bgcolor="#fea0fd"></td>
<td bgcolor="#85746a"></td>
<td bgcolor="#abc8f5"></td>
<td></td>
</tr>
<tr>
- <td>gecos:ocean</td>
+ <td>gecos Ocean</td>
<td bgcolor="#c6ca9b"></td>
<td bgcolor="#0ca0a8"></td>
<td bgcolor="#0adfc3"></td>
Bioinformatics Institute.<br> Nucleic Acids Res.
33(1):W25-W28 (2005) <br> <br>
</li>
+ <li>
+ <a href="https://docs.rfam.org/en/latest/citing-rfam.html#rfam-references">RFAM - a database of RNA families</a>
+ </li>
+ <li>
+ <a href="https://pfam-docs.readthedocs.io/en/latest/citing-pfam.html">PFAM - a database of protein families</a><br/>
+ <a href="https://academic.oup.com/nar/article/49/D1/D344/5958491">Data is provided by the Interpro Web API</a>
+ </li>
</ul>
</body>
</html>
---
version: 2.11.2.5
-date: 2022-10-01
+date: 2022-10-11
channel: "release"
---
-## New Features
-
## Issues Resolved
+- <!-- JAL-4073 --> Pfam Full and Seed alignment retrieval switched to use http://www.ebi.ac.uk/interpro/api/
+- <!-- JAL-4074 --> URLs reporting Content-Type as application/gzip not being recognized as a gzipped stream
- <!-- JAL-4063 --> Clustalx colour scheme renamed (back) to Clustal in the GUI
- <!-- JAL-4014 --> Spanish translations added for gecos colour schemes introduced in 2.11.2.4
- <!-- JAL-3612 --> Overview doesn't colour nested features the same as in the alignment view
--- /dev/null
+Jalview 2.11.2.5 is the fifth patch release in the 2.11.2 series. It includes several minor revisions, including a revised Pfam alignment retrieval client based on the Interpro web API, and a fix for a bug where overlapping features of the same type assigned different colours were not shown as coloured differently in the overview window.
+
System.setProperty("com.apple.mrj.application.apple.menu.about.name",
ChannelProperties.getProperty("app_name"));
System.setProperty("apple.laf.useScreenMenuBar", "true");
+ /*
+ * broken native LAFs on (ARM?) macbooks
set = setQuaquaLookAndFeel();
if ((!set) || !UIManager.getLookAndFeel().getClass().toString()
.toLowerCase(Locale.ROOT).contains("quaqua"))
{
set = setVaquaLookAndFeel();
}
+ */
+ set = setFlatLookAndFeel();
return set;
}
}
String encoding = _conn.getContentEncoding();
String contentType = _conn.getContentType();
- boolean isgzipped = "application/x-gzip".equalsIgnoreCase(contentType)
+ boolean isgzipped = "application/x-gzip".equalsIgnoreCase(contentType) || contentType.endsWith("gzip")
|| "gzip".equals(encoding);
Exception e = null;
InputStream inputStream = _conn.getInputStream();
if (!r.search(nextLine()))
{
throw new IOException(MessageManager
- .getString("exception.stockholm_invalid_format"));
+ .getString("exception.stockholm_invalid_format") +" ("+r+")");
}
else
{
*/
package jalview.ws.dbsources;
+import java.util.Locale;
+
+import com.stevesoft.pat.Regex;
+
import jalview.bin.Cache;
import jalview.datamodel.DBRefSource;
import jalview.util.Platform;
-import com.stevesoft.pat.Regex;
-
/**
* TODO: later PFAM is a complex datasource - it could return a tree in addition
* to an alignment TODO: create interface to pass alignment properties and tree
*/
abstract public class Pfam extends Xfam
{
- /*
- * append to URLs to retrieve as a gzipped file
- */
- protected static final String GZIPPED = "/gzipped";
+ public static final String FULL = "full", RP35 = "rp35", RP15 = "rp15",
+ RP75 = "rp75", RP55 = "rp55", SEED = "seed", UNIPROT = "uniprot";
+
+ public String getPfamDownloadURL(String id, String alType)
+ {
+ String url = Cache.getDefault(PFAM_BASEURL_KEY, DEFAULT_PFAM_BASEURL);
+ url = url.replace("$PFAMID$", id);
+ url = url.replace("$ALTYPE$", alType);
+ return url;
+ }
+
+ static final String PFAM_BASEURL_KEY = "PFAM_INTERPRO_URL_TEMPLATE";
- static final String PFAM_BASEURL_KEY = "PFAM_BASEURL";
+ protected String alignmentType;
+
+ /**
+ * docs are http://www.ebi.ac.uk/interpro/api/
+ */
+ private static final String DEFAULT_PFAM_BASEURL = "https://www.ebi.ac.uk/interpro/api/entry/pfam/$PFAMID$/?annotation=alignment:$ALTYPE$";
- private static final String DEFAULT_PFAM_BASEURL = "https://pfam.xfam.org";
static
{
Platform.addJ2SDirectDatabaseCall(DEFAULT_PFAM_BASEURL);
super();
}
+ @Override
+ String getURL(String queries)
+ {
+ return getPfamDownloadURL(queries.trim().toUpperCase(Locale.ROOT),
+ alignmentType);
+ }
+
/*
* (non-Javadoc)
*
{
return DBRefSource.PFAM;
}
-
}
public PfamFull()
{
super();
- }
-
- @Override
- public String getURLSuffix()
- {
- return "/alignment/full" + GZIPPED;
+ alignmentType = FULL;
}
/*
public PfamSeed()
{
super();
- }
-
- @Override
- public String getURLSuffix()
- {
- return "/alignment/seed" + GZIPPED;
+ alignmentType = SEED;
}
/*
// number of lines expected on STDERR when Jalview starts up normally
// may need to adjust this if Jalview is excessively noisy ?
- final int STDERR_SETUPLINES = 30;
+ final int STDERR_SETUPLINES = 50;
// thread monitors stderr - bails after SETUP_TIMEOUT or when
// STDERR_SETUPLINES have been read
import static org.testng.Assert.assertEquals;
-import jalview.bin.Cache;
-
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import jalview.bin.Cache;
+
public class PfamFullTest
{
@BeforeClass(alwaysRun = true)
@Test(groups = "Functional")
public void testGetURL()
{
- String path = "pfam.xfam.org/family/ABC/alignment/full/gzipped";
+ String path = "www.ebi.ac.uk/interpro/api/entry/pfam/ABC/?annotation=alignment:full";
// with default value for domain
String url = new PfamFull().getURL(" abc ");
assertEquals(url, "https://" + path);
// with override in properties
- Cache.setProperty(Pfam.PFAM_BASEURL_KEY, "http://pfam.xfam.org");
+ Cache.setProperty(Pfam.PFAM_BASEURL_KEY,
+ "http://www.ebi.ac.uk/interpro/api/entry/pfam/$PFAMID$/?annotation=alignment:$ALTYPE$");
url = new PfamFull().getURL(" abc ");
assertEquals(url, "http://" + path);
}
import static org.testng.Assert.assertEquals;
-import jalview.bin.Cache;
-
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import jalview.bin.Cache;
+
public class PfamSeedTest
{
@BeforeClass(alwaysRun = true)
@Test(groups = "Functional")
public void testGetURL()
{
- String path = "pfam.xfam.org/family/ABC/alignment/seed/gzipped";
+ String path = "www.ebi.ac.uk/interpro/api/entry/pfam/ABC/?annotation=alignment:seed";
// with default value for domain
String url = new PfamSeed().getURL(" abc ");
assertEquals(url, "https://" + path);
// with override in properties
- Cache.setProperty(Pfam.PFAM_BASEURL_KEY, "http://pfam.xfam.org");
+ Cache.setProperty(Pfam.PFAM_BASEURL_KEY,
+ "http://www.ebi.ac.uk/interpro/api/entry/pfam/$PFAMID$/?annotation=alignment:$ALTYPE$");
url = new PfamSeed().getURL(" abc ");
assertEquals(url, "http://" + path);
}