示例#1
0
文件: test.py 项目: BILAB/Tools
def getpos_pdb(fname,answer):
	"""
	>>> fname = "../dataset/mono.d4.0.nxg.miss.fasta"
	>>> answer = "../dataset/answer_mono.d4.0.nxg.txt"
	>>> getpos_pdb(fname,answer).next()
	None
	"""
	# get Residue from PDB (use residue no. )
	def insert(idch,lpos):
		"""
		Seq number of insertion is [seq number]A.
		
		#example:
		### Insertion residue exits between 3 ~ 4. ###
		    ... 1 2 3 3A 4 5 6 ...
		
		"""
		def _f(pos,points):
			# remain the insertion points exits previous residue.
			_points = [i for i in points if i <= pos]
			return pos - len(_points)
			
		inserts = {"1kj2B":[30]}
		if inserts.has_key(idch):
			lpos = [_f(i,inserts[idch]) for i in lpos]
			return idch,lpos
		else:
			return idch,lpos
			
			
	pdbids = [idch for idch,start,seq in seq2feature.fasta2seq(fname)]
	# For insertion code #
	
	
	with open(answer) as fp:
		for rec in (line.strip().split()
					for line in iter(fp.readline,"")):
			idch,lpos = rec[0],rec[1:]
			if idch not in pdbids:
				# make dataset only representive.
				continue
			# remove redunduncy.
			lpos = list(set([int(i) for i in lpos]))
			### For Insertion code. ###
			idch,lpos = insert(idch,lpos)
			## For Debugg ##
			if len(lpos) == 0:
				pass
				#print idch
			# lcut return {nsq:res} if window == 0
			yield idch,{k:v.values()[0] for k,v in
						protdb.lcut(idch[:4],idch[4],lpos,
									window=0,is_rollback=True).items()}
示例#2
0
文件: test.py 项目: BILAB/Tools
def getpos_fasta(fname,answer):
	"""
	>>> fname = "../dataset/mono.d4.0.nxg.miss.fasta"
	>>> answer = "../dataset/answer_mono.d4.0.nxg.txt"
	>>> getpos_fasta(fname,answer).next()
	None
	"""
	# yielding answer position residue
	ans_sgr = util.ans(answer)
	ans2int = lambda idch,pos: 1 if ans_sgr.isans(idch,pos) else -1
	for idch,start,seq in seq2feature.fasta2seq(fname):
		idch = idch.strip()
		yield idch,{pos + start:res for pos,res in enumerate(seq)
			if ans_sgr.isans(idch,start + pos)}