* which may be direct (dbrefs on the sequence), or indirect (dbrefs on
* sequences which share a dbref with the sequence
*/
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional" }, enabled = false)
public void testFindXrefSourcesForSequence_proteinToDna()
{
SequenceI seq = new Sequence("Seq1", "MGKYQARLSS");
* xref is found - not on the nucleotide sequence but on a peptide sequence in
* the alignment which which it shares a nucleotide dbref
*/
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional" }, enabled = false)
public void testFindXrefSequences_indirectDbrefToProtein()
{
/*
* xref is found - not on the peptide sequence but on a nucleotide sequence in
* the alignment which which it shares a protein dbref
*/
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional" }, enabled = false)
public void testFindXrefSequences_indirectDbrefToNucleotide()
{
/*
* Tests for the method that searches an alignment (with one sequence
* excluded) for protein/nucleotide sequences with a given cross-reference
*/
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional" }, enabled = false)
public void testSearchDataset()
{
/*
/*
* Uniprot sequences, both with xrefs to EMBL|J03321
* and EMBL|X07547
- * Sequences faked to ensure dna translates to protein
- * (so that mappings can be made)
*/
SequenceI p0ce19 = new Sequence("UNIPROT|P0CE19", "KPFG");
p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "J03321"));
p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "X06707"));
p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "M19487"));
- SequenceI p0ce20 = new Sequence("UNIPROT|P0CE20", "KPFG");
+ SequenceI p0ce20 = new Sequence("UNIPROT|P0CE20", "PFGK");
p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "J03321"));
p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "X06707"));
p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "X07547"));
/*
* J03321 with mappings to P0CE19 and P0CE20
*/
- final SequenceI j03321 = new Sequence("EMBL|J03321", "AAACCCTTTGGG");
+ final SequenceI j03321 = new Sequence("EMBL|J03321", "AAACCCTTTGGGAAAA");
DBRefEntry dbref1 = new DBRefEntry("UNIPROT", "0", "P0CE19");
- MapList mapList = new MapList(new int[] { 1, 18 },
- new int[] { 1, 6 }, 3, 1);
+ MapList mapList = new MapList(new int[] { 1, 12 }, new int[] { 1, 4 },
+ 3, 1);
Mapping map = new Mapping(new Sequence("UNIPROT|P0CE19", "KPFG"), mapList);
// add a dbref to the mapped to sequence - should get copied to p0ce19
map.getTo().addDBRef(new DBRefEntry("PIR", "0", "S01875"));
dbref1.setMap(map);
j03321.addDBRef(dbref1);
DBRefEntry dbref2 = new DBRefEntry("UNIPROT", "0", "P0CE20");
- dbref2.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "KPFG"),
+ mapList = new MapList(new int[] { 4, 15 }, new int[] { 2, 5 }, 3, 1);
+ dbref2.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "PFGK"),
new MapList(mapList)));
j03321.addDBRef(dbref2);
* X06707 with mappings to P0CE19 and P0CE20
*/
final SequenceI x06707 = new Sequence("EMBL|X06707", "atgAAACCCTTTGGG");
- // TODO CrossRef.constructMapping ignores the reverse mapping ??
- // should it not use its inverse if available?
- // how does this work for real?
DBRefEntry dbref3 = new DBRefEntry("UNIPROT", "0", "P0CE19");
- MapList map2 = new MapList(new int[] { 4, 21 }, new int[] { 1, 6 }, 3,
+ MapList map2 = new MapList(new int[] { 4, 15 }, new int[] { 1, 4 }, 3,
1);
dbref3.setMap(new Mapping(new Sequence("UNIPROT|P0CE19", "KPFG"), map2));
x06707.addDBRef(dbref3);
DBRefEntry dbref4 = new DBRefEntry("UNIPROT", "0", "P0CE20");
- dbref4.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "KPFG"),
- new MapList(mapList)));
+ MapList map3 = new MapList(new int[] { 4, 15 }, new int[] { 1, 4 }, 3,
+ 1);
+ dbref4.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "PFGK"), map3));
x06707.addDBRef(dbref4);
/*
* mock sequence fetcher to 'return' the EMBL sequences
* TODO: Mockito would allow .thenReturn().thenReturn() here,
* and also capture and verification of the parameters
- * passed in calls to getSequences()
+ * passed in calls to getSequences() - important to verify that
+ * duplicate sequence fetches are not requested
*/
SequenceFetcher mockFetcher = new SequenceFetcher(false)
{
public SequenceI[] getSequences(List<DBRefEntry> refs, boolean dna)
{
call++;
- return call == 1 ? new SequenceI[] { j03321, x06707, m19487 }
- : new SequenceI[] { x07547 };
+ if (call == 1) {
+ assertEquals("Expected 3 embl seqs in first fetch", 3, refs.size());
+ return new SequenceI[] { j03321, x06707, m19487 };
+ } else {
+ assertEquals("Expected 1 embl seq in second fetch", 1, refs.size());
+ return new SequenceI[] { x07547 };
+ }
}
};
SequenceFetcherFactory.setSequenceFetcher(mockFetcher);