Exemplo n.º 1
0
 def get_bid(self, trump_suit, bids, restriction, lead, you):
     num_cards = len(self.get_all_cards())
     if self.isYou:
         print("RESTRICTION:", restriction)
         self.print_all_cards()
         bid = 0
         print("Here are the bids so far: (- means hasn't bet)",
               helpers.convert_bid_array(bids, lead, you))
         bid_str = input(
             "Please bid the number of tricks you think you will take: ")
         while True:
             if helpers.check_int(bid_str) and int(bid_str) >= 0 and int(
                     bid_str) <= num_cards:
                 if int(bid_str) != restriction:
                     bid = int(bid_str)
                     break
                 bid_str = input(
                     "Sorry, you cannot bid that number. Please bid a different number: "
                 )
             else:
                 bid_str = input("Please input a valid bid: ")
         return bid
     bid = round(self.approx_win_tricks(trump_suit))
     bid = min(num_cards, bid)
     if bid == restriction:
         if bid > 0:
             bid -= 1
         else:
             bid += 1
     return bid
Exemplo n.º 2
0
 def get_you_card_choice(self, lead_suit):
     card_chosen = None
     card_str = input("Pick a card to play: ").strip()
     while True:
         card_info = card_str.split(" ")
         if len(card_info) == 2:
             suit = card_info[0].upper()
             if suit in ["C", "D", "H", "S"]:
                 all_cards_in_suit = self.cards[suit]
                 rank = card_info[1].upper()
                 for card in all_cards_in_suit:
                     if helpers.convert_rank_to_str(card.rank) == rank:
                         card_chosen = card
         elif len(card_info) == 1:
             if helpers.check_int(card_str):
                 card_index = int(card_str)
                 all_cards = self.get_all_cards()
                 if card_index > 0 and card_index <= len(all_cards):
                     card_chosen = all_cards[card_index - 1]
         if card_chosen:
             card_valid = self.check_valid_play(card_chosen, lead_suit)
             if card_valid:
                 break
             card_chosen = None
         card_str = input(
             "The card choice is not valid. Please try again: ").strip()
     return card_chosen
Exemplo n.º 3
0
def playing_bingo(request):
    id = helpers.check_int(request.GET.get('id', None))
    query = "INSERT INTO interpretome_exercises.bingo_players VALUES ('%s', NOW())" % id
    cursor = connections['default'].dict_cursor()
    cursor.execute(query)
    return http.HttpResponse(simplejson.dumps(None),
                             mimetype='application/json')
Exemplo n.º 4
0
def get_individuals(request):
  numsnps = helpers.check_int(request.GET.get('numsnps', None))
  if numsnps is None:
    return http.HttpResponseBadRequest()
  individuals = helpers.sanitize(request.GET.get('individuals', None)).split(',')
  individual_select = set()
  for individual in individuals:
    if individual == '210-2011-staff':
      individual_select.update(['Konrad', 'Nick', 'Noah', 'Rob', 'Stuart'])
    else:
      individual_select.add(individual)
  if len(individual_select) == 0:
    return http.HttpResponseBadRequest()
  cursor = connections['default'].dict_cursor()
  query = '''
    SELECT dbsnp, %s FROM interpretome_ancestry.similarity LIMIT %s;
  ''' % (",".join([str(i) for i in individual_select]), numsnps)
  cursor.execute(query)
  output = helpers.create_snp_dict(cursor.fetchall())
  return http.HttpResponse(simplejson.dumps(output), mimetype = 'application/json')
Exemplo n.º 5
0
def get_vis_info(request):
  dbsnp = helpers.check_int(request.GET.get('dbsnp', None))
  cursor = connections['default'].dict_cursor()
  query = 'SELECT DISTINCT protein_acc, aa_position FROM %s.b135_SNPContigLocusId_37_3 WHERE snp_id=%s' % (dbsnp_db, dbsnp)
  cursor.execute(query)
  output = {}
  output[dbsnp] = {}
  data = cursor.fetchone()
  if data['protein_acc'] == '':
    return http.HttpResponse(simplejson.dumps(output), mimetype = "application/json")
  query = '''
    SELECT b.mapped_id AS pdb FROM (
      SELECT * FROM interpretome_exercises.HUMAN_9606_idmapping WHERE type="RefSeq" AND mapped_id LIKE "%s%%"
    ) a
    JOIN interpretome_exercises.HUMAN_9606_idmapping b USING (internal_id) WHERE b.type="PDB"
  ''' % data['protein_acc']
  cursor.execute(query)
  data['pdbs'] = [x['pdb'] for x in cursor.fetchall()]
  data['dbsnp'] = dbsnp
  output[dbsnp] = data
  return http.HttpResponse(simplejson.dumps(output), mimetype = "application/json")
Exemplo n.º 6
0
def get_individuals(request):
    numsnps = helpers.check_int(request.GET.get('numsnps', None))
    if numsnps is None:
        return http.HttpResponseBadRequest()
    individuals = helpers.sanitize(request.GET.get('individuals',
                                                   None)).split(',')
    individual_select = set()
    for individual in individuals:
        if individual == '210-2011-staff':
            individual_select.update(
                ['Konrad', 'Nick', 'Noah', 'Rob', 'Stuart'])
        else:
            individual_select.add(individual)
    if len(individual_select) == 0:
        return http.HttpResponseBadRequest()
    cursor = connections['default'].dict_cursor()
    query = '''
    SELECT dbsnp, %s FROM interpretome_ancestry.similarity LIMIT %s;
  ''' % (",".join([str(i) for i in individual_select]), numsnps)
    cursor.execute(query)
    output = helpers.create_snp_dict(cursor.fetchall())
    return http.HttpResponse(simplejson.dumps(output),
                             mimetype='application/json')
Exemplo n.º 7
0
def get_vis_info(request):
    dbsnp = helpers.check_int(request.GET.get('dbsnp', None))
    cursor = connections['default'].dict_cursor()
    query = 'SELECT DISTINCT protein_acc, aa_position FROM %s.b135_SNPContigLocusId_37_3 WHERE snp_id=%s' % (
        dbsnp_db, dbsnp)
    cursor.execute(query)
    output = {}
    output[dbsnp] = {}
    data = cursor.fetchone()
    if data['protein_acc'] == '':
        return http.HttpResponse(simplejson.dumps(output),
                                 mimetype="application/json")
    query = '''
    SELECT b.mapped_id AS pdb FROM (
      SELECT * FROM interpretome_exercises.HUMAN_9606_idmapping WHERE type="RefSeq" AND mapped_id LIKE "%s%%"
    ) a
    JOIN interpretome_exercises.HUMAN_9606_idmapping b USING (internal_id) WHERE b.type="PDB"
  ''' % data['protein_acc']
    cursor.execute(query)
    data['pdbs'] = [x['pdb'] for x in cursor.fetchall()]
    data['dbsnp'] = dbsnp
    output[dbsnp] = data
    return http.HttpResponse(simplejson.dumps(output),
                             mimetype="application/json")
Exemplo n.º 8
0
def playing_bingo(request):
  id = helpers.check_int(request.GET.get('id', None))
  query = "INSERT INTO interpretome_exercises.bingo_players VALUES ('%s', NOW())" % id
  cursor = connections['default'].dict_cursor()
  cursor.execute(query)
  return http.HttpResponse(simplejson.dumps(None), mimetype = 'application/json')
Exemplo n.º 9
0
def get_pca_parameters(request):
  numsnps_request = helpers.check_int(request.GET.get('numsnps', None))
  source_request = helpers.check_pca_source(request.GET.get('source', None))
  level_request = helpers.check_int(request.GET.get('level', None))
  x_request = helpers.check_int(request.GET.get('axis1', None))
  y_request = helpers.check_int(request.GET.get('axis2', None))
  
  if None in (numsnps_request, source_request, level_request, x_request, y_request):
    return http.HttpResponseBadRequest()
  numsnps = numsnps_request
  source = source_request
  cursor = connections['default'].dict_cursor()
  
  lab_pc1 = str(x_request)
  lab_pc2 = str(y_request)
  
  query = '''
    SELECT rsid, pc%(pc1)s, pc%(pc2)s FROM interpretome_ancestry.loadings
    WHERE listcode="%(numsnps)s" AND pop="%(source)s"
  ''' % {"pc1": lab_pc1, "pc2": lab_pc2, "source":source, "numsnps": numsnps}
  cursor.execute(query)
  loadings = cursor.fetchall()
  
  main_source = source.split('_')[0]
  sub_source = source.split('_')[1]
  
  if source == 'hgdp_all':
    level = 1
  else:
    level = level_request
  
  query = '''
    SELECT sample_id, pcp%(pc1)s, pcp%(pc2)s, Level%(level)s_label AS population, Level2_label AS population_2 FROM interpretome_ancestry.projections
    JOIN interpretome_ancestry.%(main_source)s_poplabels ON (interpretome_ancestry.projections.sample_id = interpretome_ancestry.%(main_source)s_poplabels.id)
    WHERE listcode = "%(numsnps)s" and pop = "%(source)s"
    ORDER BY population
  ''' % {"pc1": lab_pc1, "pc2": lab_pc2, "source": source, "numsnps": numsnps, "main_source": main_source, "level": level}
  cursor.execute(query)
  projections = cursor.fetchall()
  
  query = '''
    SELECT rsid, ref FROM interpretome_ancestry.%(main_source)s_snplist
    WHERE listcode = "%(numsnps)s"
  ''' % {"main_source": main_source, "numsnps": numsnps}
  cursor.execute(query)
  refs = cursor.fetchall()
  
  query = '''
    SELECT pc%(pc1)s, pc%(pc2)s FROM interpretome_ancestry.explained_vars
    WHERE pop = '%(source)s' AND listcode = "%(numsnps)s"
  ''' % {"pc1": lab_pc1, "pc2": lab_pc2, "source": source, "numsnps": numsnps}
  
  cursor.execute(query)
  variances = cursor.fetchone()
  
  if source.split('_')[1] == 'all':
    query = '''
      SELECT DISTINCT Level%(level)s_label FROM interpretome_ancestry.%(main_source)s_poplabels
      ORDER BY Level%(level)s_label
    ''' % {"level": level, "main_source": main_source}
  else:
    query = '''
      SELECT DISTINCT Level%(level)s_label, Level2_label FROM interpretome_ancestry.%(main_source)s_poplabels
      WHERE Level1_label LIKE '%%%(sub_source)s%%'
      ORDER BY Level%(level)s_label
    ''' % {"main_source": main_source, "level":level, "sub_source": sub_source}
  
  cursor.execute(query)
  
  populations = [x.values()[0] if x.values()[0] != '' else x.values()[1] for x in cursor.fetchall()]
  params = {}
  params['snp_ids'] = [0]*len(loadings)
  params['reference_alleles'] = {}
  params['sample_ids'] = []
  params['variances'] = variances
  pop_dict = {}
  pc1 = [0]*len(loadings)
  pc2 = [0]*len(loadings)
  
  for i, entry in enumerate(loadings):
    params['snp_ids'][i] = entry['rsid']
    pc1[i] = entry['pc' + lab_pc1]
    pc2[i] = entry['pc' + lab_pc2]
  params['loadings'] = [pc1, pc2]
  projmat = array(params['loadings'])
  for entry in refs:
    params['reference_alleles'][entry['rsid']] = entry['ref']
  for population in populations:
    pop_dict[population] = {}
    pop_dict[population]['name'] = population.replace('_', ' ')
    pop_dict[population]['color'] = get_random_color()
    pop_dict[population]['data'] = []
    if (source == 'popres_all' and str(level) == "2"):
      pop_dict[population]['marker'] = {};
      pop_dict[population]['marker']['symbol'] = "url(http://esquilax.stanford.edu/media/graphics/png/" + population.lower() +".png)";
    
  snp_list = [int(x['rsid']) for x in loadings]
  for i, entry in enumerate(projections):
    params['sample_ids'].append(entry['sample_id'])
    pop = entry['population']
    if pop == '':
      pop = entry['population_2']
    pop_dict[pop]['data'].append([entry['pcp' + lab_pc1],entry['pcp' + lab_pc2]])
  
  params['series'] = []
  for population in populations:
    params['series'].append(pop_dict[population])
  
  return http.HttpResponse(simplejson.dumps(params), mimetype = "application/json")
Exemplo n.º 10
0
def get_pca_parameters(request):
    numsnps_request = helpers.check_int(request.GET.get('numsnps', None))
    source_request = helpers.check_pca_source(request.GET.get('source', None))
    level_request = helpers.check_int(request.GET.get('level', None))
    x_request = helpers.check_int(request.GET.get('axis1', None))
    y_request = helpers.check_int(request.GET.get('axis2', None))

    if None in (numsnps_request, source_request, level_request, x_request,
                y_request):
        return http.HttpResponseBadRequest()
    numsnps = numsnps_request
    source = source_request
    cursor = connections['default'].dict_cursor()

    lab_pc1 = str(x_request)
    lab_pc2 = str(y_request)

    query = '''
    SELECT rsid, pc%(pc1)s, pc%(pc2)s FROM interpretome_ancestry.loadings
    WHERE listcode="%(numsnps)s" AND pop="%(source)s"
  ''' % {
        "pc1": lab_pc1,
        "pc2": lab_pc2,
        "source": source,
        "numsnps": numsnps
    }
    cursor.execute(query)
    loadings = cursor.fetchall()

    main_source = source.split('_')[0]
    sub_source = source.split('_')[1]

    if source == 'hgdp_all':
        level = 1
    else:
        level = level_request

    query = '''
    SELECT sample_id, pcp%(pc1)s, pcp%(pc2)s, Level%(level)s_label AS population, Level2_label AS population_2 FROM interpretome_ancestry.projections
    JOIN interpretome_ancestry.%(main_source)s_poplabels ON (interpretome_ancestry.projections.sample_id = interpretome_ancestry.%(main_source)s_poplabels.id)
    WHERE listcode = "%(numsnps)s" and pop = "%(source)s"
    ORDER BY population
  ''' % {
        "pc1": lab_pc1,
        "pc2": lab_pc2,
        "source": source,
        "numsnps": numsnps,
        "main_source": main_source,
        "level": level
    }
    cursor.execute(query)
    projections = cursor.fetchall()

    query = '''
    SELECT rsid, ref FROM interpretome_ancestry.%(main_source)s_snplist
    WHERE listcode = "%(numsnps)s"
  ''' % {
        "main_source": main_source,
        "numsnps": numsnps
    }
    cursor.execute(query)
    refs = cursor.fetchall()

    query = '''
    SELECT pc%(pc1)s, pc%(pc2)s FROM interpretome_ancestry.explained_vars
    WHERE pop = '%(source)s' AND listcode = "%(numsnps)s"
  ''' % {
        "pc1": lab_pc1,
        "pc2": lab_pc2,
        "source": source,
        "numsnps": numsnps
    }

    cursor.execute(query)
    variances = cursor.fetchone()

    if source.split('_')[1] == 'all':
        query = '''
      SELECT DISTINCT Level%(level)s_label FROM interpretome_ancestry.%(main_source)s_poplabels
      ORDER BY Level%(level)s_label
    ''' % {
            "level": level,
            "main_source": main_source
        }
    else:
        query = '''
      SELECT DISTINCT Level%(level)s_label, Level2_label FROM interpretome_ancestry.%(main_source)s_poplabels
      WHERE Level1_label LIKE '%%%(sub_source)s%%'
      ORDER BY Level%(level)s_label
    ''' % {
            "main_source": main_source,
            "level": level,
            "sub_source": sub_source
        }

    cursor.execute(query)

    populations = [
        x.values()[0] if x.values()[0] != '' else x.values()[1]
        for x in cursor.fetchall()
    ]
    params = {}
    params['snp_ids'] = [0] * len(loadings)
    params['reference_alleles'] = {}
    params['sample_ids'] = []
    params['variances'] = variances
    pop_dict = {}
    pc1 = [0] * len(loadings)
    pc2 = [0] * len(loadings)

    for i, entry in enumerate(loadings):
        params['snp_ids'][i] = entry['rsid']
        pc1[i] = entry['pc' + lab_pc1]
        pc2[i] = entry['pc' + lab_pc2]
    params['loadings'] = [pc1, pc2]
    projmat = array(params['loadings'])
    for entry in refs:
        params['reference_alleles'][entry['rsid']] = entry['ref']
    for population in populations:
        pop_dict[population] = {}
        pop_dict[population]['name'] = population.replace('_', ' ')
        pop_dict[population]['color'] = get_random_color()
        pop_dict[population]['data'] = []
        if (source == 'popres_all' and str(level) == "2"):
            pop_dict[population]['marker'] = {}
            pop_dict[population]['marker'][
                'symbol'] = "url(http://esquilax.stanford.edu/media/graphics/png/" + population.lower(
                ) + ".png)"

    snp_list = [int(x['rsid']) for x in loadings]
    for i, entry in enumerate(projections):
        params['sample_ids'].append(entry['sample_id'])
        pop = entry['population']
        if pop == '':
            pop = entry['population_2']
        pop_dict[pop]['data'].append(
            [entry['pcp' + lab_pc1], entry['pcp' + lab_pc2]])

    params['series'] = []
    for population in populations:
        params['series'].append(pop_dict[population])

    return http.HttpResponse(simplejson.dumps(params),
                             mimetype="application/json")
Exemplo n.º 11
0
import game_util
from functools import reduce
import helpers

print(
    "Welcome to this sketchy Python implementation of the card game Oh Hell.")
num_players_str = input("Enter a number of players (2-10): ").strip()
num_players = 0
while True:
    if helpers.check_int(num_players_str):
        num_players = int(num_players_str)
        if num_players >= 2 and num_players <= 10:
            break
        if num_players < 2:
            num_players_str = input(
                "There should be at least 2 players. Enter a number of players: "
            )
        else:
            num_players_str = input(
                "More than 10 players is not recommended. Enter a different number of players: "
            )
    else:
        num_players_str = input("Enter a valid number of players: ")

game = game_util.Game(num_players)
game.play()