Source code for pyproteome.motifs.plogo

# -*- coding: utf-8 -*-
from __future__ import division

# Built-ins
import logging
import math
import requests
import time

try:
    from IPython.display import Image
except ImportError:
    Image = None

from . import motif


LOGGER = logging.getLogger('pyproteome.plogo')
PLOGO_BASE = 'https://plogo.uconn.edu/main'


[docs]def format_title( f=None, data=None, ): ''' Generates a title automatically from a given data set and list of filters. Parameters ---------- f : dict or list of dict data : :class:`pyproteome.data_sets.data_set.DataSet` Returns ------- str ''' title = [] if 'fold' in f: title.append( 'abs(FC) > {:.2f}'.format(f['fold']) ) if 'asym_fold' in f: title.append( 'FC {} {:.2f}'.format( '>' if f['asym_fold'] > 1 else '<', f['asym_fold'], ) ) if 'p' in f: title.append( 'p < {:.2f}'.format(f['p']) ) title = ', '.join(title) if data: title = '{} - {}'.format(data.name, title) return title
def _plogo_wait_job(s, job, delay=1): while True: response = s.get( '{}/getPlogo/{}'.format(PLOGO_BASE, job), ) response.raise_for_status() json = response.json() if json['complete']: break time.sleep(delay) def _check_plogo_response(response, message=''): response.raise_for_status() json = response.json() assert json['message'] == message assert json['success'] return json