def main(args_list=None): if not args_list: args_list = sys.argv[1:] args = parse_args(parser, args_list) print(args) if args.hits_txt and len(args.hits_txt) > 0: dataset = Dataset.from_peptides_text_files(args.hits_txt) dataset = dataset.assemble_contigs() else: dataset = Dataset.from_csv(args.dataset_csv) dataframes = [] for allele, allele_dataset in dataset.groupby_allele(): print("-- %s" % allele) df = allele_dataset.to_dataframe() netmhciipan = NetMHCIIpan([allele]) # pad peptides with alanines in case they're shorter than 9mer peptides = ensure_peptide_lengths(df.peptide) n_peptides = len(peptides) binding_predictions = netmhciipan.predict_peptides(peptides) ic50_pred = np.array([x.affinity for x in binding_predictions]) percentile_rank_pred = np.array( [x.percentile_rank for x in binding_predictions]) assert len(ic50_pred) == n_peptides assert len(percentile_rank_pred) == n_peptides df["netmhciipan_ic50"] = ic50_pred df["netmhciipan_percentile_rank"] = percentile_rank_pred dataframes.append(df) combined_df = pd.concat(dataframes) combined_df.to_csv(args.output_csv, index=False)
def test_class2_8mer_fails(): ii_pan_predictor = NetMHCIIpan(alleles=["HLA-DRB1*01:01"]) with assert_raises(ValueError): ii_pan_predictor.predict_peptides(["A" * 8])
def test_class2_9mer_success(): ii_pan_predictor = NetMHCIIpan(alleles=["HLA-DRB1*01:01"]) predictions = ii_pan_predictor.predict_peptides(["A" * 9]) eq_(len(predictions), 1)