def generateURI(cls,
                    galaxyFn='',
                    extraFileName='',
                    suffix='',
                    trackName=[],
                    doQuote=True):
        from quick.application.ExternalTrackManager import ExternalTrackManager

        databaseId = ExternalTrackManager.getEncodedDatasetIdFromGalaxyFn(
            galaxyFn)
        path = '/' + databaseId + ('/' + extraFileName
                                   if extraFileName != '' else '')

        query = 'track=' + ':'.join(trackName) if trackName else ''
        parseResult = urlparse.ParseResult(cls.SCHEME, '', path, suffix, query,
                                           '')

        if doQuote:
            parseResult = quoteParseResults(parseResult)

        return urlparse.urlunparse(parseResult)