def _makePositionId(self, reference, coordinate, types=None):
        """
        Note that positions should have a reference (we will enforce).
        Only exact positions need a coordinate.
        :param reference:
        :param coordinate:
        :param types:
        :return:
        """

        if reference is None:
            LOG.error("Trying to make position with no reference.")
            return None

        curie = '_:'
        reference = re.sub(r'\w+\:', '', reference, 1)
        if re.match(r'^_', reference):
            # this is in the case if the reference is a bnode
            reference = re.sub(r'^_', '', reference)
        curie += reference
        if coordinate is not None:
            # just in case it isn't a string already
            curie = '-'.join((curie, str(coordinate)))
        if types is not None:
            tstring = self._getStrandStringFromPositionTypes(types)
            if tstring is not None:
                curie = '-'.join((curie, tstring))

        return curie
def _makePositionId ( self , reference , coordinate , types = None ) : if reference is None : LOG . error ( "Trying to make position with no reference." ) return None curie = '_:' reference = re . sub ( r'\w+\:' , '' , reference , 1 ) if re . match ( r'^_' , reference ) : reference = re . sub ( r'^_' , '' , reference ) curie += reference if coordinate is not None : curie = '-' . join ( ( curie , str ( coordinate ) ) ) if types is not None : tstring = self . _getStrandStringFromPositionTypes ( types ) if tstring is not None : curie = '-' . join ( ( curie , tstring ) ) return curie
Note that positions should have a reference (we will enforce).
        Only exact positions need a coordinate.
        :param reference:
        :param coordinate:
        :param types:
        :return: