Exemple #1
0
def possible_lims():
    concs = '/Users/berriz/Work/attachments/MF/JWGray_drug_conc_v1.csv'
    with open(concs) as fh:
        allrows = tuple(csv.reader(fh))
    record = co.namedtuple('Record', allrows[0])
    table = (record(*(row[:3] + list(convert_conc_row(row[3:-1])) + row[-1:]))
             for row in allrows[1:])
    possible_lims = dict()
    for row in mu.unique(
            tuple((row.drug, row.c1, row.c9, row.units) for row in table)):
        possible_lims.setdefault(row[0], []).append(tuple(row[1:3]))

    return possible_lims
Exemple #2
0
def possible_lims():
    concs = '/Users/berriz/Work/attachments/MF/JWGray_drug_conc_v1.csv'
    with open(concs) as fh:
        allrows = tuple(csv.reader(fh))
    record = co.namedtuple('Record', allrows[0])
    table = (record(*(row[:3] +
                      list(convert_conc_row(row[3:-1])) +
                      row[-1:]))
             for row in allrows[1:])
    possible_lims = dict()
    for row in mu.unique(tuple((row.drug, row.c1, row.c9, row.units)
                               for row in table)):
        possible_lims.setdefault(row[0], []).append(tuple(row[1:3]))

    return possible_lims
Exemple #3
0
def main():

    allrows = tuple(csv.reader(open(DATASRC), delimiter=FIELDDELIMITER))
    allcols = zip(*allrows)

    colheaders = tuple(allrows[COLHEADERSROW][FIRSTDATACOL:])
    colsubheaders = tuple(allrows[COLSUBHEADERSROW][FIRSTDATACOL:])

    rowheaders = tuple(allcols[ROWHEADERSCOL][FIRSTDATAROW:])

    alldrugs = mu.unique(colheaders)
    drugs = tuple((dr for dr in alldrugs
                   if not dr.startswith('private_company_drug_')))

    drugset = set(drugs)

    metrics = 'lc50 tgi gi50'.split()
    assert set(colsubheaders) == set(metrics)

    nmetrics = len(metrics)

    assert len(colheaders) == len(alldrugs) * nmetrics

    cell_lines = rowheaders

    alldata = [list(col[FIRSTDATAROW:]) for col in allcols[FIRSTDATACOL:]]

    col_lookup = dict()
    for drug, subheader, data in zip(colheaders, colsubheaders, alldata):
        if drug not in drugset:
            continue
        d = col_lookup.setdefault(subheader, ncd.NoClobberDict())
        d[drug] = data

    nrows = len(allrows[FIRSTDATAROW:])
    assert nrows == len(cell_lines)

    maxvals = read_maxvals(MAXVALSFILE)

    for metric, drug in it.product(metrics, drugs):

        col = col_lookup[metric][drug]
        mv = maxvals[drug]
        for j, v in enumerate(col):
            assert isna(v) or float(v) <= float(mv)
            if v == mv:
                col[j] = MAXVALMARKER


    for metric, lkp in col_lookup.items():
        table0 = zip(*(lkp[dr] for dr in drugs))

        drug_scores = score_cols(table0)

        cols = zip(*table0)
        sorted_cols = sort_by_score(cols, drug_scores)

        table1 = zip(*sorted_cols)
        cell_line_scores = score_rows(table1)

        table2 = sort_by_score(table1, cell_line_scores)

        sorted_cell_lines = sort_by_score(cell_lines, cell_line_scores)
        sorted_drugs = sort_by_score(drugs, drug_scores)

        print_table(table2, sorted_cell_lines, sorted_drugs, metric)