def _cnvkit_prioritize(sample, genes, allele_file, metrics_file):
    """Summarize non-diploid calls with copy numbers and confidence intervals.
    """
    mdf = pd.read_table(metrics_file)
    mdf.columns = [x.lower() for x in mdf.columns]
    if len(genes) > 0:
        mdf = mdf[mdf["gene"].str.contains("|".join(genes))]
    mdf = mdf[["chromosome", "start", "end", "gene", "log2", "ci_hi", "ci_lo"]]
    adf = pd.read_table(allele_file)
    if len(genes) > 0:
        adf = adf[adf["gene"].str.contains("|".join(genes))]
    if "cn1" in adf.columns and "cn2" in adf.columns:
        adf = adf[["chromosome", "start", "end", "cn", "cn1", "cn2"]]
    else:
        adf = adf[["chromosome", "start", "end", "cn"]]
    df = pd.merge(mdf, adf, on=["chromosome", "start", "end"])
    df = df[df["cn"] != 2]
    if len(df) > 0:
        def passes(row):
            spread = abs(row["ci_hi"] - row["ci_lo"])
            return spread < 0.25
        df["passes"] = df.apply(passes, axis=1)
    df.insert(0, "sample", [sample] * len(df))
    return df
def _cnvkit_prioritize ( sample , genes , allele_file , metrics_file ) : mdf = pd . read_table ( metrics_file ) mdf . columns = [ x . lower ( ) for x in mdf . columns ] if len ( genes ) > 0 : mdf = mdf [ mdf [ "gene" ] . str . contains ( "|" . join ( genes ) ) ] mdf = mdf [ [ "chromosome" , "start" , "end" , "gene" , "log2" , "ci_hi" , "ci_lo" ] ] adf = pd . read_table ( allele_file ) if len ( genes ) > 0 : adf = adf [ adf [ "gene" ] . str . contains ( "|" . join ( genes ) ) ] if "cn1" in adf . columns and "cn2" in adf . columns : adf = adf [ [ "chromosome" , "start" , "end" , "cn" , "cn1" , "cn2" ] ] else : adf = adf [ [ "chromosome" , "start" , "end" , "cn" ] ] df = pd . merge ( mdf , adf , on = [ "chromosome" , "start" , "end" ] ) df = df [ df [ "cn" ] != 2 ] if len ( df ) > 0 : def passes ( row ) : spread = abs ( row [ "ci_hi" ] - row [ "ci_lo" ] ) return spread < 0.25 df [ "passes" ] = df . apply ( passes , axis = 1 ) df . insert ( 0 , "sample" , [ sample ] * len ( df ) ) return df
Summarize non-diploid calls with copy numbers and confidence intervals.