def getRawResults(params): ''' params: a 4-tuple of roundup params like (qdb, sdb, div, evalue). returns: a string containing all the orthologs for the params. in the form external query sequence id, external subject sequence id, and distance or None if the results do not exist. ''' qdb, sdb, div, evalue = params pair = roundup_common.makePair(qdb, sdb) # get orthologs from db orthologs = roundup_db.getOrthologs(release=webconfig.CURRENT_RELEASE, qdb=pair[0], sdb=pair[1], divergence=div, evalue=evalue) # get a map to external sequence ids sequenceIds = set() for ortholog in orthologs: sequenceIds.add(ortholog[0]) sequenceIds.add(ortholog[1]) sequenceIds = list(sequenceIds) sequenceIdToSequenceDataMap = roundup_db.getSequenceIdToSequenceDataMap( release=webconfig.CURRENT_RELEASE, sequenceIds=sequenceIds) # format orthologs for download by mapping to external sequence ids. results = None if orthologs: results = ''.join(['{}\t{}\t{}\n'.format(sequenceIdToSequenceDataMap[qid][roundup_common.EXTERNAL_SEQUENCE_ID_KEY], sequenceIdToSequenceDataMap[sid][roundup_common.EXTERNAL_SEQUENCE_ID_KEY], dist) for qid, sid, dist in orthologs]) return results
def getOrthData(params): qdb, sdb, div, evalue = params pair = roundup_common.makePair(qdb, sdb) # get orthologs from db dbOrthologs = roundup_db.getOrthologs(release=webconfig.CURRENT_RELEASE, qdb=pair[0], sdb=pair[1], divergence=div, evalue=evalue) # get a map to external sequence ids sequenceIds = set() for ortholog in dbOrthologs: sequenceIds.add(ortholog[0]) sequenceIds.add(ortholog[1]) sequenceIds = list(sequenceIds) sequenceIdToSequenceDataMap = roundup_db.getSequenceIdToSequenceDataMap( release=webconfig.CURRENT_RELEASE, sequenceIds=sequenceIds) # orthologs = [(sequenceIdToSequenceDataMap[qid][roundup_common.EXTERNAL_SEQUENCE_ID_KEY], sequenceIdToSequenceDataMap[sid][roundup_common.EXTERNAL_SEQUENCE_ID_KEY], str(dist)) for qid, sid, dist in dbOrthologs] return (params, orthologs)