* @param ac2
* @return
*/
- public static final int compareCodonPos(AlignedCodon ac1, AlignedCodon ac2)
+ public static final int compareCodonPos(AlignedCodon ac1,
+ AlignedCodon ac2)
{
return comparator.compare(ac1, ac2);
// return jalview_2_8_2compare(ac1, ac2);
}
/**
+ * Translates cDNA using the specified code table
*
* @return
*/
- public AlignmentI translateCdna()
+ public AlignmentI translateCdna(GeneticCodeI codeTable)
{
AlignedCodonFrame acf = new AlignedCodonFrame();
for (s = 0; s < sSize; s++)
{
SequenceI newseq = translateCodingRegion(selection.get(s),
- seqstring[s], acf, pepseqs);
+ seqstring[s], acf, pepseqs, codeTable);
if (newseq != null)
{
for (int gd = 0; gd < selection.length; gd++)
{
SequenceI dna = selection[gd];
- DBRefEntry[] dnarefs = DBRefUtils.selectRefs(dna.getDBRefs(),
+ List<DBRefEntry> dnarefs = DBRefUtils.selectRefs(dna.getDBRefs(),
jalview.datamodel.DBRefSource.DNACODINGDBS);
if (dnarefs != null)
{
// intersect with pep
List<DBRefEntry> mappedrefs = new ArrayList<>();
- DBRefEntry[] refs = dna.getDBRefs();
- for (int d = 0; d < refs.length; d++)
+ List<DBRefEntry> refs = dna.getDBRefs();
+ for (int d = 0, nd = refs.size(); d < nd; d++)
{
- if (refs[d].getMap() != null && refs[d].getMap().getMap() != null
- && refs[d].getMap().getMap().getFromRatio() == 3
- && refs[d].getMap().getMap().getToRatio() == 1)
+ DBRefEntry ref = refs.get(d);
+ if (ref.getMap() != null && ref.getMap().getMap() != null
+ && ref.getMap().getMap().getFromRatio() == 3
+ && ref.getMap().getMap().getToRatio() == 1)
{
- mappedrefs.add(refs[d]); // add translated protein maps
+ mappedrefs.add(ref); // add translated protein maps
}
}
- dnarefs = mappedrefs.toArray(new DBRefEntry[mappedrefs.size()]);
- for (int d = 0; d < dnarefs.length; d++)
+ dnarefs = mappedrefs;// .toArray(new DBRefEntry[mappedrefs.size()]);
+ for (int d = 0, nd = dnarefs.size(); d < nd; d++)
{
- Mapping mp = dnarefs[d].getMap();
+ Mapping mp = dnarefs.get(d).getMap();
if (mp != null)
{
- for (int vc = 0; vc < viscontigs.length; vc += 2)
+ for (int vc = 0, nv = viscontigs.length; vc < nv; vc += 2)
{
int[] mpr = mp.locateMappedRange(viscontigs[vc],
viscontigs[vc + 1]);
* @param acf
* Definition of global ORF alignment reference frame
* @param proteinSeqs
+ * @param codeTable
* @return sequence ready to be added to alignment.
*/
protected SequenceI translateCodingRegion(SequenceI selection,
String seqstring, AlignedCodonFrame acf,
- List<SequenceI> proteinSeqs)
+ List<SequenceI> proteinSeqs, GeneticCodeI codeTable)
{
List<int[]> skip = new ArrayList<>();
int[] skipint = null;
*/
AlignedCodon alignedCodon = new AlignedCodon(cdp[0], cdp[1],
cdp[2]);
- String aa = ResidueProperties.codonTranslate(new String(codon));
+ String aa = codeTable.translate(new String(codon));
rf = 0;
final String gapString = String.valueOf(gapChar);
if (aa == null)
private static void transferCodedFeatures(SequenceI dna, SequenceI pep,
MapList map)
{
- DBRefEntry[] dnarefs = DBRefUtils.selectRefs(dna.getDBRefs(),
- DBRefSource.DNACODINGDBS);
- if (dnarefs != null)
- {
- // intersect with pep
- for (int d = 0; d < dnarefs.length; d++)
- {
- Mapping mp = dnarefs[d].getMap();
- if (mp != null)
- {
- }
- }
- }
+ // BH 2019.01.25 nop?
+ // List<DBRefEntry> dnarefs = DBRefUtils.selectRefs(dna.getDBRefs(),
+ // DBRefSource.DNACODINGDBS);
+ // if (dnarefs != null)
+ // {
+ // // intersect with pep
+ // for (int d = 0, nd = dnarefs.size(); d < nd; d++)
+ // {
+ // Mapping mp = dnarefs.get(d).getMap();
+ // if (mp != null)
+ // {
+ // }
+ // }
+ // }
for (SequenceFeature sf : dna.getFeatures().getAllFeatures())
{
- if (FeatureProperties.isCodingFeature(null, sf.getType()))
+ if (FeatureProperties.isCodingFeature(null, sf.getType()))
+ {
+ // if (map.intersectsFrom(sf[f].begin, sf[f].end))
{
- // if (map.intersectsFrom(sf[f].begin, sf[f].end))
- {
- }
}
+ }
}
}