예제 #1
0
def long_fixed_variable(in_dir, out_dir, ip_dist_cutoff, backbone=False, filter_sidechains=True, correct=False, verbose=True):
	out = os.path.join(out_dir,'long_range_fixed-variable')
	if not os.path.exists(out):
		os.mkdir(out)
	for i in range(20):
		aa = AAint2char(i)
		files.append(open(os.path.join(out, aa + '.dists'), 'w'))
	
	pdb = setup(in_dir, correct, backbone, filter_sidechains)
	pdbSize = len(pdb)

	(distance_matrix, use_indices) = get_dist_and_IPs(pdb, ip_dist_cutoff)

	for (p1,p2) in use_indices:
		aa1 = pdb[p1].int_name
		aa2 = pdb[p2].int_name
		if pdb[p2].stubIntact:
			p2_base_chain = ['CA', 'CB'] 
			dists = filter_sc_dists(pdb[p1].atom_names, p2_base_chain, distance_matrix[p1][p2-p1-1], True)
			files[aa1].write("".join([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa2) + '\n')

		if pdb[p1].stubIntact:
			p1_base_chain = ['CA', 'CB'] 
			dists = filter_sc_dists(p1_base_chain, pdb[p2].atom_names, distance_matrix[p1][p2-p1-1], False)
			files[aa2].write("".join([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa1) + '\n')

	for f in files: f.close()
예제 #2
0
def short_fixed_variable(in_dir, out_dir, ip_dist_cutoff, backbone=False, filter_sidechains=True, correct=False, verbose=True):
	out = os.path.join(out_dir,'short_range_fixed-variable')
	if not os.path.exists(out):
		os.mkdir(out)
	
	files = list()
	for i in range(20):
		files.append([])
		for j in range(1,5):
			files[i].append([])
			for k in ['rev', 'for']: #why do we need to seperate out the 'rev' and 'for' dists?
				aa = AAint2char(i)
				files[i][j].append(open(os.path.join(out, aa + '_' + j + '_' + k + '.dists'), 'w'))
	
	pdb = setup(in_dir, correct, backbone, filter_sidechains)
	pdbSize = len(pdb)
	(distance_matrix, use_indices) = get_dist_and_IPs_intra_full(pdb, ip_dist_cutoff)

	for (p1,p2) in use_indices:
		aa1 = pdb[p1].int_name
		aa2 = pdb[p2].int_name
		if pdb[p2].stubIntact: #need to check whether both stubs are intact?
			p2_base_chain = ['CA', 'CB'] 
			dists = filter_sc_dists(pdb[p1].atom_names, p2_base_chain, distance_matrix[p1][p2-p1-1], True)
			files[aa1][p2-p1-1][0].write("".join([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa2) + '\n')

		if pdb[p1].stubIntact:
			p1_base_chain = ['CA', 'CB'] 
			dists = filter_sc_dists(p1_base_chain, pdb[p2].atom_names, distance_matrix[p1][p2-p1-1], False)
			files[aa2][p2-p1-1][1].write("".join([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa1) + '\n')


	for i in range(20):
		for j in range(1,5):
			for k in ['rev', 'for']:
				files[i][j][k].close()
예제 #3
0
def long_variable_variable(in_dir, out_dir, ip_dist_cutoff, backbone=False, filter_sidechains=True, correct=False, verbose=True):
	outfile = open(os.path.join(out_dir, 'short_range_fixed-variable.dists'), 'w')

	pdb = setup(in_dir, correct, backbone, filter_sidechains)
	pdbSize = len(pdb)

	(distance_matrix, use_indices) = get_dist_and_IPs(pdb, ip_dist_cutoff)

	for (p1,p2) in use_indices:
		aa1 = pdb[p1].int_name
		aa2 = pdb[p2].int_name
		if pdb[p2].stubIntact and pdb[p2].stubIntact:
			dists = filter_sc_dists(['CA', 'CB'], ['CA', 'CB'], distance_matrix[p1][p2-p1-1], True)
			outfile.write(str([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa1) + ';' + str(aa2) + '\n')
	
	outfile.close()
예제 #4
0
def short_variable_variable(in_dir, out_dir, ip_dist_cutoff, backbone=False, filter_sidechains=True, correct=False, verbose=True):
	out = os.path.join(out_dir,'short_range_variable-variable')
	for i in range(1,5):
		files.append(open(os.path.join(out, i + '.dists'), 'w'))

	pdb = setup(in_dir, correct, backbone, filter_sidechains)
	pdbSize = len(pdb)

	(distance_matrix, use_indices) = get_dist_and_IPs_intra_CACBOnly(pdb, ip_dist_cutoff)

	for (p1,p2) in use_indices:
		aa1 = pdb[p1].int_name
		aa2 = pdb[p2].int_name
		if pdb[p2].stubIntact and pdb[p2].stubIntact:
			dists = filter_sc_dists(['CA', 'CB'], ['CA', 'CB'], distance_matrix[p1][p2-p1-1], True)
			files[p2-p1-1].write("".join([round(val, 2) for val in dists.values()])[1:-1] + ';' + str(aa1) + ';' + str(aa2) + '\n')

	for f in files: f.close()