import static org.testng.AssertJUnit.assertTrue;
import jalview.datamodel.AlignedCodonFrame;
-import jalview.datamodel.AlignedCodonFrame.SequenceToSequenceMapping;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.datamodel.SequenceMapping;
+import jalview.gui.JvOptionPane;
import jalview.util.DBRefUtils;
import jalview.util.MapList;
import jalview.ws.SequenceFetcher;
import java.util.List;
import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class CrossRefTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testFindXDbRefs()
{
public void testFindXrefSourcesForSequence_proteinToDna()
{
SequenceI seq = new Sequence("Seq1", "MGKYQARLSS");
- List<String> sources = new ArrayList<String>();
+ List<String> sources = new ArrayList<>();
AlignmentI al = new Alignment(new SequenceI[] {});
/*
seq.addDBRef(new DBRefEntry("ENSEMBLGENOMES", "0", "E2350"));
sources = new CrossRef(new SequenceI[] { seq }, al)
.findXrefSourcesForSequences(false);
+ // method is patched to remove EMBL from the sources to match
assertEquals(4, sources.size());
- assertEquals("[EMBL, EMBLCDS, GENEDB, ENSEMBL]", sources.toString());
+ assertEquals("[EMBLCDS, GENEDB, ENSEMBL, ENSEMBLGENOMES]",
+ sources.toString());
/*
* add a sequence to the alignment which has a dbref to UNIPROT|A1234
al.addSequence(seq2);
sources = new CrossRef(new SequenceI[] { seq, seq2 }, al)
.findXrefSourcesForSequences(false);
- assertEquals(3, sources.size());
- assertEquals("[EMBLCDS, EMBL, GENEDB]", sources.toString());
+ // method removed EMBL from sources to match
+ assertEquals(2, sources.size());
+ assertEquals("[EMBLCDS, GENEDB]", sources.toString());
}
/**
*/
SequenceI dna1 = new Sequence("AF039662", "GGGGCAGCACAAGAAC");
Mapping map = new Mapping(new Sequence("pep2", "MLAVSRG"), new MapList(
- new int[] { 1, 21 }, new int[] {
- 1, 7 }, 3, 1));
+ new int[] { 1, 21 }, new int[] { 1, 7 }, 3, 1));
DBRefEntry dbref = new DBRefEntry("UNIPROT", "0", "Q9ZTS2", map);
dna1.addDBRef(dbref);
dna1.addDBRef(new DBRefEntry("EMBL", "0", "AF039662"));
pep1.addDBRef(new DBRefEntry("UNIPROT", "0", "Q9ZTS2"));
AlignmentI al = new Alignment(new SequenceI[] { dna1, pep1 });
- List<SequenceI> result = new ArrayList<SequenceI>();
+ List<SequenceI> result = new ArrayList<>();
/*
* first search for a dbref nowhere on the alignment:
dbref = new DBRefEntry("UNIPROT", "0", "Q9ZTS2");
found = testee.searchDataset(!dna1.isProtein(), dna1, dbref, result,
acf, false); // search dataset with a protein xref from a dna
- // sequence to locate the protein product
+ // sequence to locate the protein product
assertTrue(found);
assertEquals(1, result.size());
assertSame(pep1, result.get(0));
dbref = new DBRefEntry("UNIPROT", "0", "Q9ZTS2");
found = testee.searchDataset(!pep1.isProtein(), pep1, dbref, result,
acf, false); // search dataset with a protein's direct dbref to
- // locate dna sequences with matching xref
+ // locate dna sequences with matching xref
assertTrue(found);
assertEquals(1, result.size());
assertSame(dna1, result.get(0));
// should now have a mapping from dna to pep1
- List<SequenceToSequenceMapping> mappings = acf.getMappings();
+ List<SequenceMapping> mappings = acf.getMappings();
assertEquals(1, mappings.size());
- SequenceToSequenceMapping mapping = mappings.get(0);
+ SequenceMapping mapping = mappings.get(0);
assertSame(dna1, mapping.getFromSeq());
assertSame(pep1, mapping.getMapping().getTo());
MapList mapList = mapping.getMapping().getMap();
public void testFindXrefSequences_withFetch()
{
SequenceI dna1 = new Sequence("AF039662", "GGGGCAGCACAAGAAC");
- dna1.addDBRef(new DBRefEntry("UNIPROT", "0", "Q9ZTS2"));
- dna1.addDBRef(new DBRefEntry("UNIPROT", "0", "P30419"));
- dna1.addDBRef(new DBRefEntry("UNIPROT", "0", "P00314"));
+ dna1.addDBRef(new DBRefEntry("UNIPROT", "ENA:0", "Q9ZTS2"));
+ dna1.addDBRef(new DBRefEntry("UNIPROT", "ENA:0", "P30419"));
+ dna1.addDBRef(new DBRefEntry("UNIPROT", "ENA:0", "P00314"));
final SequenceI pep1 = new Sequence("Q9ZTS2", "MYQLIRSSW");
+ pep1.addDBRef(new DBRefEntry("UNIPROT", "0", "Q9ZTS2"));
+
final SequenceI pep2 = new Sequence("P00314", "MRKLLAASG");
+ pep2.addDBRef(new DBRefEntry("UNIPROT", "0", "P00314"));
/*
* argument false suppresses adding DAS sources
* todo: define an interface type SequenceFetcherI and mock that
*/
- SequenceFetcher mockFetcher = new SequenceFetcher(false)
+ SequenceFetcher mockFetcher = new SequenceFetcher()
{
@Override
public boolean isFetchable(String source)
assertSame(pep2, xrefs.getSequenceAt(1));
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void tearDown()
{
SequenceFetcherFactory.setSequenceFetcher(null);
* 'spliced transcript' with CDS ranges
*/
SequenceI braf002 = new Sequence("ENST00000497784", "gCAGGCtaTCTGTTCaa");
- braf002.addDBRef(new DBRefEntry("UNIPROT", "0", "H7C5K3"));
+ braf002.addDBRef(new DBRefEntry("UNIPROT", "ENSEMBL|0", "H7C5K3"));
braf002.addSequenceFeature(new SequenceFeature("CDS", "", 2, 6, 0f,
null));
braf002.addSequenceFeature(new SequenceFeature("CDS", "", 9, 15, 0f,
* which happens to be true for Uniprot,PDB,EMBL but not Pfam,Rfam,Ensembl
*/
final SequenceI pep1 = new Sequence("UNIPROT|P15056", "MAAL");
+ pep1.addDBRef(new DBRefEntry("UNIPROT", "0", "P15056"));
final SequenceI pep2 = new Sequence("UNIPROT|H7C5K3", "QALF");
-
+ pep2.addDBRef(new DBRefEntry("UNIPROT", "0", "H7C5K3"));
/*
* argument false suppresses adding DAS sources
* todo: define an interface type SequenceFetcherI and mock that
*/
- SequenceFetcher mockFetcher = new SequenceFetcher(false)
+ SequenceFetcher mockFetcher = new SequenceFetcher()
{
@Override
public boolean isFetchable(String source)
*/
final SequenceI x07547 = new Sequence("EMBL|X07547", "cccAAACCCTTTGGG");
DBRefEntry dbref7 = new DBRefEntry("UNIPROT", "0", "P0CE20");
- dbref7.setMap(new Mapping(new Sequence("UNIPROT|P0CE19", "KPFG"),
+ dbref7.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "PFGK"),
new MapList(map2)));
x07547.addDBRef(dbref7);
DBRefEntry dbref8 = new DBRefEntry("UNIPROT", "0", "B0BCM4");
* passed in calls to getSequences() - important to verify that
* duplicate sequence fetches are not requested
*/
- SequenceFetcher mockFetcher = new SequenceFetcher(false)
+ SequenceFetcher mockFetcher = new SequenceFetcher()
{
int call = 0;