From: tcofoegbu
Date: Wed, 5 Oct 2016 15:13:33 +0000 (+0100)
Subject: QQMerge branch 'develop' of https://source.jalview.org/git/jalview into develop
X-Git-Tag: Release_2_10_0~10
X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=a9a8a71c1682f639552e9954e565042847513195;hp=5db30ec116d5cc2668b6fc8db01de2ef53435d41;p=jalview.git
QQMerge branch 'develop' of https://source.jalview.org/git/jalview into develop
---
diff --git a/help/html/features/chimera.html b/help/html/features/chimera.html
index 0569513..98d8966 100644
--- a/help/html/features/chimera.html
+++ b/help/html/features/chimera.html
@@ -28,43 +28,23 @@
Since Jalview 2.8.2, Chimera
- (http://www.cgl.ucsf.edu/chimera/) has been integrated into Jalview
- for interactively viewing structures opened by entries in the "Structure"
- submenu in the sequence id
- pop-up menu (if you can't see this, then you need to associate a PDB structure with the sequence). Chimera is
- available from the Jalview desktop, provided Chimera has been
- separately installed.
+ (http://www.cgl.ucsf.edu/chimera/) can be used for viewing
+ structures opened via the "View
+ Structure Data.." dialog.
You can set a default choice of Jmol or Chimera structure viewer in
Preferences. You can also
optionally specify the path to the Chimera program here (if it
- differs from the standard paths searched by Jalview).
+ differs from the standard paths searched by Jalview).
+ Please make sure your version of Chimera is up to
+ date. Jalview requires at least Chimera version 1.11.1
+
If you save your Jalview session as a project file, the state of any
open Chimera windows will also be saved, and can be reopened by
loading the project file on any machine with Chimera installed. Since
Jalview 2.9.
-
Superposing structures based on
their aligned sequences
If several structures are
diff --git a/help/html/releases.html b/help/html/releases.html
index 3a8c9f9..6eb42bc 100755
--- a/help/html/releases.html
+++ b/help/html/releases.html
@@ -90,11 +90,15 @@
Alignment sort by feature scores and feature counts preserves alignment ordering (and debugged for complex feature sets).
-
+ Chimera 1.11.1 minimum requirement for viewing structures with Jalview 2.10
-
+ Retrieve genome, transcript CCDS and gene ids via the Ensembl and Ensembl Genomes REST API
+
+
+ Protein sequence variant annotation computed for 'sequence_variant' annotation on CDS regions (Ensembl)
+ ENA CDS 'show cross references' for Uniprot sequences
@@ -113,7 +117,7 @@
- reinstate CTRL-click for opening pop-up menu on OSX
- Export features in Jalview format (again) includes graduated colourschemes
- - More responsive when working with big alignments and lots of hidden columns
+ - More responsive when working with big alignments and lots of hidden columns
- Hidden column markers not always rendered at right of alignment window
- Tidied up links in help file table of contents
- Feature based tree calculation not shown for DNA alignments
@@ -154,7 +158,7 @@
- Quality and Conservation are now shown on load even when Consensus calculation is disabled
-
-
+
-
@@ -186,7 +190,7 @@
- Export features should only export the currently displayed features for the current selection or view
- Enable 'Get Cross-References' in menu after fetching cross-references
- Mouseover of a copy of a sequence is not followed in the structure viewer
- - Titles for individual alignments in splitframe not restored from project
+ - Titles for individual alignments in splitframe not restored from project
-
missing autocalculated annotation at trailing end of protein alignment in transcript/product splitview when pad-gaps not enabled by default
diff --git a/help/html/whatsNew.html b/help/html/whatsNew.html
index 1743f1c..21e6ffa 100755
--- a/help/html/whatsNew.html
+++ b/help/html/whatsNew.html
@@ -24,15 +24,13 @@
- What's new ?
+ What's new in Jalview 2.10 ?
Jalview 2.10 is the next major release in the Jalview 2 series. Full
details are in the Jalview
2.10 Release Notes, but the highlights are below.
-
- Highlights in Jalview 2.10
- UniProt Free Text Search. The new search
dialog for UniProt allows you to browse and retrieve sequences
@@ -69,9 +71,10 @@
sequence. The reference sequence for alignment views can also be
saved and restored from Jalview projects.
- Ensembl and ENA 'show cross-references'
- support.The Calculations menu's 'Show cross-references' will now
+ support.The Calculations menu's 'Show cross-references' will now
offer Ensembl as well as EMBLCDS and Uniprot when CDS/Protein
mapping data is available for download or display.
+
diff --git a/resources/embl_mapping.xml b/resources/embl_mapping.xml
index 7e494b4..01b921a 100644
--- a/resources/embl_mapping.xml
+++ b/resources/embl_mapping.xml
@@ -26,7 +26,6 @@
see ftp://ftp.sra.ebi.ac.uk/meta/xsd/sra_1_5/ENA.embl.xsd
see http://www.ebi.ac.uk/ena/submit/data-formats
-->
-
-
diff --git a/src/jalview/datamodel/xdb/embl/EmblFile.java b/src/jalview/datamodel/xdb/embl/EmblFile.java
index 534b38c..69870b6 100644
--- a/src/jalview/datamodel/xdb/embl/EmblFile.java
+++ b/src/jalview/datamodel/xdb/embl/EmblFile.java
@@ -20,7 +20,6 @@
*/
package jalview.datamodel.xdb.embl;
-import jalview.bin.Cache;
import jalview.datamodel.DBRefEntry;
import jalview.ws.dbsources.Uniprot;
@@ -28,7 +27,6 @@ import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.Reader;
-import java.net.URL;
import java.util.Vector;
import org.exolab.castor.mapping.Mapping;
@@ -83,12 +81,12 @@ public class EmblFile
}
/**
- * Parse an Embl XML file into an EmblEntry object
+ * Parse an EmblXML file into an EmblFile object
*
* @param file
* @return parsed EmblXML or null if exceptions were raised
*/
- public static EmblEntry getEmblEntry(File file)
+ public static EmblFile getEmblFile(File file)
{
if (file == null)
{
@@ -96,7 +94,7 @@ public class EmblFile
}
try
{
- return EmblFile.getEntry(new FileReader(file));
+ return EmblFile.getEmblFile(new FileReader(file));
} catch (Exception e)
{
System.err.println("Exception whilst reading EMBLfile from " + file);
@@ -105,32 +103,26 @@ public class EmblFile
return null;
}
- /**
- * Reads the XML response from file and unmarshals into a Java object
- *
- * @param fileReader
- * @return
- */
- public static EmblEntry getEntry(Reader fileReader)
+ public static EmblFile getEmblFile(Reader file)
{
- EmblEntry record = new EmblEntry();
+ EmblFile record = new EmblFile();
try
{
// 1. Load the mapping information from the file
Mapping map = new Mapping(record.getClass().getClassLoader());
- URL url = record.getClass().getResource("/embl_mapping.xml");
+ java.net.URL url = record.getClass().getResource("/embl_mapping.xml");
map.loadMapping(url);
// 2. Unmarshal the data
Unmarshaller unmar = new Unmarshaller(record);
try
{
- if (Cache.getDefault(Cache.CASTORLOGLEVEL,
+ // uncomment to DEBUG EMBLFile reading
+ if (jalview.bin.Cache.getDefault(jalview.bin.Cache.CASTORLOGLEVEL,
"debug").equalsIgnoreCase("DEBUG"))
{
- unmar.setDebug(Cache.log.isDebugEnabled());
- // unmar.setDebug(true);// uncomment to debug unmarshalling
+ unmar.setDebug(jalview.bin.Cache.log.isDebugEnabled());
}
} catch (Exception e)
{
@@ -139,7 +131,7 @@ public class EmblFile
unmar.setIgnoreExtraAttributes(true);
unmar.setMapping(map);
unmar.setLogWriter(new PrintWriter(System.out));
- record = (EmblEntry) unmar.unmarshal(fileReader);
+ record = (EmblFile) unmar.unmarshal(file);
canonicaliseDbRefs(record);
} catch (Exception e)
@@ -155,17 +147,13 @@ public class EmblFile
* Change blank version to "0" in any DBRefEntry, to ensure consistent
* comparison with other DBRefEntry in Jalview
*
- * @param entry
+ * @param record
* @see Uniprot#getDbVersion
*/
- static void canonicaliseDbRefs(EmblEntry entry)
+ static void canonicaliseDbRefs(EmblFile record)
{
- if (entry == null)
+ for (EmblEntry entry : record.getEntries())
{
- return;
- }
-// for (EmblEntry entry : record.getEntries())
-// {
if (entry.getDbRefs() != null)
{
for (DBRefEntry dbref : entry.getDbRefs())
@@ -177,7 +165,7 @@ public class EmblFile
}
}
- if (entry.getFeatures() != null)
+ if (entry.getFeatures() != null)
{
for (EmblFeature feature : entry.getFeatures())
{
@@ -193,6 +181,6 @@ public class EmblFile
}
}
}
- // }
+ }
}
}
diff --git a/src/jalview/ws/dbsources/EmblXmlSource.java b/src/jalview/ws/dbsources/EmblXmlSource.java
index 73e67aa..2049766 100644
--- a/src/jalview/ws/dbsources/EmblXmlSource.java
+++ b/src/jalview/ws/dbsources/EmblXmlSource.java
@@ -72,7 +72,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy
"exception.ebiembl_retrieval_failed_on", new String[] {
emprefx.toLowerCase(), query.trim() }), e);
}
- return getEmblSequenceRecords(emprefx, reply);
+ return getEmblSequenceRecords(emprefx, query, reply);
}
/**
@@ -81,38 +81,46 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy
* @param emprefx
* either EMBL or EMBLCDS strings are allowed - anything else will
* not retrieve emblxml
+ * @param query
* @param file
* the EMBL XML file containing the results of a query
* @return
* @throws Exception
*/
- public AlignmentI getEmblSequenceRecords(String emprefx, File reply)
- throws Exception
+ public AlignmentI getEmblSequenceRecords(String emprefx, String query,
+ File reply) throws Exception
{
- EmblEntry entry = null;
+ EmblFile efile = null;
+ List seqs = new ArrayList();
if (reply != null && reply.exists())
{
file = reply.getAbsolutePath();
if (reply.length() > EMBL_NOT_FOUND_REPLY.length())
{
- entry = EmblFile.getEmblEntry(reply);
+ efile = EmblFile.getEmblFile(reply);
}
}
- // TODO don't need peptides any more?
List peptides = new ArrayList();
- AlignmentI al = null;
- if (entry != null)
+ if (efile != null)
{
- SequenceI seq = entry.getSequence(emprefx, peptides);
- if (seq != null)
+ for (EmblEntry entry : efile.getEntries())
{
- seq.deriveSequence();
- // place DBReferences on dataset and refer
- al = new Alignment(new SequenceI[] { seq });
+ SequenceI seq = entry.getSequence(emprefx, peptides);
+ if (seq != null)
+ {
+ seqs.add(seq.deriveSequence());
+ // place DBReferences on dataset and refer
+ }
}
}
+
+ AlignmentI al = null;
+ if (!seqs.isEmpty())
+ {
+ al = new Alignment(seqs.toArray(new SequenceI[seqs.size()]));
+ }
stopQuery();
return al;
}
diff --git a/src/jalview/ws/ebi/EBIFetchClient.java b/src/jalview/ws/ebi/EBIFetchClient.java
index 5531512..1dff32f 100644
--- a/src/jalview/ws/ebi/EBIFetchClient.java
+++ b/src/jalview/ws/ebi/EBIFetchClient.java
@@ -208,7 +208,6 @@ public class EBIFetchClient
if (outFile != null)
{
FileOutputStream fio = new FileOutputStream(outFile);
- // fio.write("\n".getBytes());
byte[] bb = new byte[32 * 1024];
int l;
while ((l = is.read(bb)) > 0)
diff --git a/test/jalview/datamodel/xdb/embl/EmblEntryTest.java b/test/jalview/datamodel/xdb/embl/EmblEntryTest.java
index f332fa6..abe5099 100644
--- a/test/jalview/datamodel/xdb/embl/EmblEntryTest.java
+++ b/test/jalview/datamodel/xdb/embl/EmblEntryTest.java
@@ -1,7 +1,6 @@
package jalview.datamodel.xdb.embl;
import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
@@ -41,21 +40,20 @@ public class EmblEntryTest
// not the whole sequence but enough for this test...
List peptides = new ArrayList();
SequenceIdMatcher matcher = new SequenceIdMatcher(peptides);
- EmblEntry ef = EmblTestHelper.getEmblFile();
- assertNotNull(ef);
- // assertEquals(1, ef.getEntries().size());
- // EmblEntry testee = ef.getEntries().get(0);
+ EmblFile ef = EmblTestHelper.getEmblFile();
+ assertEquals(1, ef.getEntries().size());
+ EmblEntry testee = ef.getEntries().get(0);
String sourceDb = "EMBL";
- SequenceI dna = ef.makeSequence(sourceDb);
+ SequenceI dna = testee.makeSequence(sourceDb);
/*
* parse three CDS features, with two/one/no Uniprot cross-refs
*/
- for (EmblFeature feature : ef.getFeatures())
+ for (EmblFeature feature : ef.getEntries().get(0).getFeatures())
{
if ("CDS".equals(feature.getName()))
{
- ef.parseCodingFeature(feature, sourceDb, dna, peptides, matcher);
+ testee.parseCodingFeature(feature, sourceDb, dna, peptides, matcher);
}
}
diff --git a/test/jalview/datamodel/xdb/embl/EmblFileTest.java b/test/jalview/datamodel/xdb/embl/EmblFileTest.java
index 6afdced..906436f 100644
--- a/test/jalview/datamodel/xdb/embl/EmblFileTest.java
+++ b/test/jalview/datamodel/xdb/embl/EmblFileTest.java
@@ -21,11 +21,12 @@
package jalview.datamodel.xdb.embl;
import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
import jalview.datamodel.DBRefEntry;
+import java.util.Vector;
+
import org.testng.annotations.Test;
public class EmblFileTest
@@ -34,10 +35,9 @@ public class EmblFileTest
@Test(groups = { "Functional" })
public void testGetEmblFile()
{
- EmblEntry entry = EmblTestHelper.getEmblFile();
- assertNotNull(entry);
- // assertEquals(1, entries.size());
- // EmblEntry entry = entries.get(0);
+ Vector entries = EmblTestHelper.getEmblFile().getEntries();
+ assertEquals(1, entries.size());
+ EmblEntry entry = entries.get(0);
assertEquals("X07547", entry.getAccession());
assertEquals("C. trachomatis plasmid", entry.getDescription());
diff --git a/test/jalview/datamodel/xdb/embl/EmblTestHelper.java b/test/jalview/datamodel/xdb/embl/EmblTestHelper.java
index a79bdb8..6349164 100644
--- a/test/jalview/datamodel/xdb/embl/EmblTestHelper.java
+++ b/test/jalview/datamodel/xdb/embl/EmblTestHelper.java
@@ -7,7 +7,7 @@ public class EmblTestHelper
// adapted from http://www.ebi.ac.uk/ena/data/view/X07547&display=xml
// dna and translations truncated for convenience
private static final String TESTDATA = ""
- // + ""
+ + ""
+ "GGTATGTCCTCTAGTACAAAC\n"
+ "ACCCCCAATATTGTGATATAATTAAAAACATAGCAT"
- + "";
+ + "";
- static EmblEntry getEmblFile()
+ static EmblFile getEmblFile()
{
- return EmblFile.getEntry(new StringReader(TESTDATA));
+ return EmblFile.getEmblFile(new StringReader(TESTDATA));
}
}