+ * assert that we can resolve the protein product in the given alignment given a DNA sequence with CDS mapping
+ * @param dnaseq
+ * @param protein
+ */
+ private void assertCanResolveProteinCDS(SequenceI dnaseq, SequenceI expProtein, AlignmentI protein)
+ {
+ // try a few different methods to check all work
+ SequenceI aprot=null;
+ for (AlignedCodonFrame cf:protein.getCodonFrame(dnaseq))
+ {
+ aprot=cf.getAaForDnaSeq(dnaseq);
+ if (aprot!=null)
+ {
+ assertTrue("getAaForDnaSeq didn't return expected protein sequence",aprot!=expProtein);
+ break;
+ }
+ }
+ assertNotNull("Didn't locate any proteins via AlignmentI.getCodonFrame .. AlignCodonFrame.getAaForDnaSeq", aprot);
+ // try mapping utils -
+ List<AlignedCodonFrame> mu_mappings=MappingUtils.findMappingsForSequence(dnaseq, protein.getCodonFrames());
+ assertNotNull("No mappings found for dnaseq in protein alignment via MappingUtils.findMappingsForSequence",mu_mappings);
+ assertNotEquals("No mappings found for dnaseq in protein alignment via MappingUtils.findMappingsForSequence",0,mu_mappings.size());
+ SequenceI mu_alignedprot=null;
+ List<SequenceToSequenceMapping> foundMap=null;
+ for (AlignedCodonFrame cf:mu_mappings)
+ {
+ foundMap=new ArrayList<>();
+ mu_alignedprot = cf.findAlignedSequence(dnaseq, protein,foundMap);
+ if (mu_alignedprot!=null) {
+ break;
+ }
+ }
+ assertNotNull("Didn't locate proteins via MappingUtils.findMappingsForSequence",mu_alignedprot);
+ assertTrue("findAlignedSequence didn't return expected protein sequence",mu_alignedprot==expProtein);
+ }
+
+ /**