def main(para): if 'RepeatNum' not in para: para['RepeatNum'] = '1' for i in xrange(2014, 2014 + int(para['RepeatNum'])): if 'FeatureType' in para: import cross_validation para1 = para.copy() para1['RandomSeed'] = str(i) cross_validation.main(para1) else: import cross_validation para1 = para.copy() para1['RandomSeed'] = str(i) para1['FeatureType'] = 'SaveZDOCK' cross_validation.main(para1) para1['FeatureType'] = 'SaveResidue' cross_validation.main(para1) #print 'Please add parameter "FeatureType" to run cross validation.' comparison(para) os.system( 'Rscript %s/evaluate_perform.R . evaluate_raw.txt "ROC Curves for Predicting Interface Residues"' % para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_residue_roc.pdf') os.system( 'Rscript %s/evaluate_perform.R . evaluate_raw.txt "Precision Curves for Predicting Interface Residues"' % para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_residue_pre.pdf') os.system( 'Rscript %s/evaluate_perform.R . evaluate_raw.txt "ROC Curves for Predicting Interacting Domains"' % para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_domain_roc.pdf') os.system( 'Rscript %s/evaluate_perform.R . evaluate_raw.txt "Precision Curves for Predicting Interacting Domains"' % para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_domain_pre.pdf')
def main(para): if 'RepeatNum' not in para: para['RepeatNum'] = '1' for i in xrange(2014, 2014 + int(para['RepeatNum'])): if 'FeatureType' in para: import cross_validation para1 = para.copy() para1['RandomSeed'] = str(i) cross_validation.main(para1) else: import cross_validation para1 = para.copy() para1['RandomSeed'] = str(i) para1['FeatureType'] = 'SaveZDOCK' cross_validation.main(para1) para1['FeatureType'] = 'SaveResidue' cross_validation.main(para1) #print 'Please add parameter "FeatureType" to run cross validation.' comparison(para) os.system('Rscript %s/evaluate_perform.R . evaluate_raw.txt "ROC Curves for Predicting Interface Residues"'%para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_residue_roc.pdf') os.system('Rscript %s/evaluate_perform.R . evaluate_raw.txt "Precision Curves for Predicting Interface Residues"'%para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_residue_pre.pdf') os.system('Rscript %s/evaluate_perform.R . evaluate_raw.txt "ROC Curves for Predicting Interacting Domains"'%para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_domain_roc.pdf') os.system('Rscript %s/evaluate_perform.R . evaluate_raw.txt "Precision Curves for Predicting Interacting Domains"'%para['SrcPath']) os.system('mv evaluate_raw.txt.pdf evaluate_domain_pre.pdf')
def main(para): if 'ListSize' not in para: para['ListSize'] = '-1' if 'ThreadNum' not in para: para['ThreadNum'] = '1' if 'RandomSeed' not in para: para['RandomSeed'] = '2014' if 'ModelName' not in para: para['ModelName'] = 'RF-bin' if 'ModelFile' not in para: para['ModelFile'] = 'set1_all_new.txt.fea.max.RF-bin' if 'DockMethod' not in para: para['FeatureType'] = 'SaveResidue' if 'SolutionNum' not in para: para['SolutionNum'] = '10' if 'PredictCutoff' not in para: para['PredictCutoff'] = '0.5' ## Step 1: docking all pdb chain pairs and train if not os.path.exists(para['ModelFile']): import cross_validation para1 = para.copy() para1['SplitFold'] = '1' cross_validation.main(para1) ## Step 2: docking new pairs and predict ## prepare pdb pair list pdblistfile = 'list_from_user.txt' with open(pdblistfile, 'w') as tempfile: tempfile.write('Hhp1\tTas3\t4HOK\tA\t3D1D\tA\n') #tempfile.write('Hhp1\tMoc3\t4HOK\tA\tMOC3_modbase\t \n') tempfile.write('Hhp1\tPpc89\t4HOK\tA\tPPC89_Modbase\t \n') ## docking them and generate features feature_file = 'features_for_predicting.txt' #if not os.path.exists(feature_file): if True: import prepare_feature para2 = para.copy() para2['ListFile'] = pdblistfile para2['OutFile'] = feature_file para2['ListFormat'] = 'p1/p2/pdb1/ch1/pdb2/ch2' prepare_feature.main(para2) ## 2.c: predict their contact probabilities from cross_validation import add_residue_label, model_predict add_residue_label(feature_file) predfile = model_predict(feature_file, model=para['ModelName'], mfile=para['ModelFile']) ## Step 3: get predicted values for each residue from cross_validation import map_pdb_residue residue_value = map_pdb_residue(predfile) with open(para['ExeFile']+'data.txt', 'w') as outfile: for g1g2, res, val in residue_value: outfile.write('%s\t%s\t-1\t%s\n'%('\t'.join(g1g2.split('=')), res, val)) from evaluate_perform import read_residue_data, group_residue idx, val1, val2 = read_residue_data(para['ExeFile']+'data.txt') pp_val = group_residue(idx, val2) ## using predicted value for p1, p2 in pp_val: res = pp_val[(p1,p2)] pp = list(set([r.split(':')[0] for r in res])) if True: ## reformat protein names if p1 == p2 and len(pp) == 1: p1 = pp p2 = pp elif len(pp) == 2: p1 = pp[0] p2 = pp[1] else: print 'Failed to map', p1, p2, pp show(p1) show(p2) int1 = [r for r in res if r.split(':')[0]==p1 and res[r] >= float(para['PredictCutoff'])] int2 = [r for r in res if r.split(':')[0]==p2 and res[r] >= float(para['PredictCutoff'])] ord1 = sorted([int(r.split(':')[-1]) for r in int1]) ord2 = sorted([int(r.split(':')[-1]) for r in int2]) show(','.join([str(i) for i in ord1])) show(','.join([str(i) for i in ord2])) show()