/**
* Removes from the list of features any that start after, or end before, the
* given column position. This allows us to retain only those features
- * adjacent to a gapped position that straddle the position.
+ * adjacent to a gapped position that straddle the position. Contact features
+ * that 'straddle' the position are also removed, since they are not 'at' the
+ * position.
*
* @param features
* @param column
while (it.hasNext())
{
SequenceFeature sf = it.next();
- if (sequence.findIndex(sf.getBegin()) > column
+ if (sf.isContactFeature()
+ || sequence.findIndex(sf.getBegin()) > column
|| sequence.findIndex(sf.getEnd()) < column)
{
it.remove();
/**
* Removes from the list of features any that start after, or end before, the
* given column position. This allows us to retain only those features
- * adjacent to a gapped position that straddle the position.
+ * adjacent to a gapped position that straddle the position. Contact features
+ * that 'straddle' the position are also removed, since they are not 'at' the
+ * position.
*
* @param features
* @param column
while (it.hasNext())
{
SequenceFeature sf = it.next();
- if (sequence.findIndex(sf.getBegin()) > column
+ if (sf.isContactFeature()
+ || sequence.findIndex(sf.getBegin()) > column
|| sequence.findIndex(sf.getEnd()) < column)
{
it.remove();