public boolean updateFrom(DBRefEntryI otherEntry);
/**
- * Method to distinguish between direct and indirect database references. <br>
+ * Answers true if the ref looks like a primary (direct) database reference. <br>
+ * The only way a dbref's mappings can be fully verified is via the local
+ * sequence frame, so rather than use isPrimaryCandidate directly, please use
+ * SequenceI.getPrimaryDbRefs(). <br>
* Primary references indicate the local sequence data directly corresponds
* with the database record. All other references are secondary. Direct
* references indicate that part or all of the local sequence data can be
* This method is also sufficient to distinguish direct DBRefEntry mappings
* from other relationships - e.g. coding relationships (imply a 1:3/3:1
* mapping), but not transcript relationships, which imply a (possibly
- * non-contiguous) 1:1 mapping. <br>
- * The only way a dbref's mappings can be fully verified is via the local
- * sequence frame, so rather than use isPrimary directly, please use
- * SequenceI.getPrimaryDbRefs().
+ * non-contiguous) 1:1 mapping.
*
* @return true if this reference provides a primary accession for the
* associated sequence object
*/
- public boolean isPrimary();
+ public boolean isPrimaryCandidate();
}
}
@Test(groups = { "Functional" })
- public void testIsPrimary()
+ public void testIsPrimaryCandidate()
{
DBRefEntry dbr = new DBRefEntry(DBRefSource.UNIPROT, "", "Q12345");
- assertTrue(dbr.isPrimary());
+ assertTrue(dbr.isPrimaryCandidate());
/*
* 1:1 mapping - ok
*/
dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 1, 3 }, 1,
1));
- assertTrue(dbr.isPrimary());
+ assertTrue(dbr.isPrimaryCandidate());
/*
* 1:1 mapping of identical split ranges - not ok
*/
dbr.setMap(new Mapping(null, new int[] { 1, 3, 6, 9 }, new int[] { 1,
3, 6, 9 }, 1, 1));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
/*
* 1:1 mapping of different ranges - not ok
*/
dbr.setMap(new Mapping(null, new int[] { 1, 4 }, new int[] { 2, 5 }, 1,
1));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
/*
* 1:1 mapping of 'isoform' ranges - not ok
*/
dbr.setMap(new Mapping(null, new int[] { 1, 2, 6, 9 }, new int[] { 1,
3, 7, 9 }, 1, 1));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
dbr.setMap(null);
- assertTrue(dbr.isPrimary());
+ assertTrue(dbr.isPrimaryCandidate());
/*
* Version string is prefixed with another dbref source string (fail)
*/
dbr.setVersion(DBRefSource.EMBL + ":0");
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
/*
* Version string is alphanumeric
*/
dbr.setVersion("0.1.b");
- assertTrue(dbr.isPrimary());
+ assertTrue(dbr.isPrimaryCandidate());
/*
* null version string can't be primary ref
*/
dbr.setVersion(null);
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
dbr.setVersion("");
- assertTrue(dbr.isPrimary());
+ assertTrue(dbr.isPrimaryCandidate());
/*
* 1:1 mapping and sequenceRef (fail)
*/
dbr.setMap(new Mapping(new Sequence("foo", "ASDF"), new int[] { 1, 3 },
new int[] { 1, 3 }, 1, 1));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
/*
* 1:3 mapping (fail)
*/
dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 1, 3 }, 1,
3));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
/*
* 2:2 mapping with shift (expected fail, but maybe use case for a pass)
*/
dbr.setMap(new Mapping(null, new int[] { 1, 4 }, new int[] { 1, 4 }, 2,
2));
- assertFalse(dbr.isPrimary());
+ assertFalse(dbr.isPrimaryCandidate());
}
}
assertEquals(2, dbrefs.size());
assertEquals("CCDS", dbrefs.get(0).getSource());
assertEquals("CCDS5863", dbrefs.get(0).getAccessionId());
- assertFalse(dbrefs.get(0).isPrimary());
+ assertFalse(dbrefs.get(0).isPrimaryCandidate());
assertEquals(dbName + ":" + dbVers, dbrefs.get(0).getVersion());
// Uniprot name should get converted to Jalview canonical form
assertEquals("UNIPROT", dbrefs.get(1).getSource());
assertEquals("P15056", dbrefs.get(1).getAccessionId());
assertEquals(dbName + ":" + dbVers, dbrefs.get(1).getVersion());
- assertFalse(dbrefs.get(1).isPrimary());
+ assertFalse(dbrefs.get(1).isPrimaryCandidate());
}
}