def rna_seq(self): """Generate the RNA sequence of the noe_rna_hbond.dat restraint file.""" # Info. mol_names = ["A", "B"] res_nums = [[1, 2, 3, 4], [4, 3, 2, 1]] spin_names = [ [["N1", "N6", "H62"], ["H3", "N3", "O4"], ["H1", "N1", "H22", "N2", "O6"], ["N3", "O2", "H42", "N4"]], [["H3", "N3", "O4"], ["N1", "N6", "H62"], ["N3", "O2", "H42", "N4"], ["H1", "N1", "H22", "N2", "O6"]], ] # Loop over the molecules. for i in range(len(mol_names)): # Create the molecule. create_molecule(mol_names[i]) # Loop over the residues. for j in range(len(res_nums[i])): # Create the residue. create_residue(res_nums[i][j], mol_name=mol_names[i]) # Loop over the atoms. for k in range(len(spin_names[i][j])): # Create the spin. create_spin(spin_names[i][j][k], res_num=res_nums[i][j], mol_name=mol_names[i]) # Display the sequence for debugging. self.interpreter.sequence.display()
def generate(mol_name=None, res_num=None, res_name=None, spin_num=None, spin_name=None, pipe=None, select=True, verbose=True): """Generate the sequence item-by-item by adding a single molecule/residue/spin container as necessary. @keyword mol_name: The molecule name. @type mol_name: str or None @keyword res_num: The residue number. @type res_num: int or None @keyword res_name: The residue name. @type res_name: str or None @keyword spin_num: The spin number. @type spin_num: int or None @keyword spin_name: The spin name. @type spin_name: str or None @keyword pipe: The data pipe in which to generate the sequence. This defaults to the current data pipe. @type pipe: str @keyword select: The spin selection flag. @type select: bool @keyword verbose: A flag which if True will cause info about each spin to be printed out as the sequence is generated. @type verbose: bool """ # The current data pipe. if pipe == None: pipe = pipes.cdp_name() # A new molecule. if not return_molecule(generate_spin_id(mol_name=mol_name), pipe=pipe): create_molecule(mol_name=mol_name, pipe=pipe) # A new residue. curr_res = return_residue(generate_spin_id(mol_name=mol_name, res_num=res_num, res_name=res_name), pipe=pipe) if not curr_res or ((res_num != None and curr_res.num != res_num) or (res_name != None and curr_res.name != res_name)): create_residue(mol_name=mol_name, res_num=res_num, res_name=res_name, pipe=pipe) # A new spin. curr_spin = return_spin(generate_spin_id(mol_name=mol_name, res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name), pipe=pipe) if not curr_spin or ((spin_num != None and curr_spin.num != spin_num) or (spin_name != None and curr_spin.name != spin_name)): # Add the spin. curr_spin = create_spin(mol_name=mol_name, res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name, pipe=pipe) # Set the selection flag. curr_spin.select = select
def generate(mol_name=None, res_num=None, res_name=None, spin_num=None, spin_name=None, pipe=None, select=True, verbose=True): """Generate the sequence item-by-item by adding a single molecule/residue/spin container as necessary. @keyword mol_name: The molecule name. @type mol_name: str or None @keyword res_num: The residue number. @type res_num: int or None @keyword res_name: The residue name. @type res_name: str or None @keyword spin_num: The spin number. @type spin_num: int or None @keyword spin_name: The spin name. @type spin_name: str or None @keyword pipe: The data pipe in which to generate the sequence. This defaults to the current data pipe. @type pipe: str @keyword select: The spin selection flag. @type select: bool @keyword verbose: A flag which if True will cause info about each spin to be printed out as the sequence is generated. @type verbose: bool """ # The current data pipe. if pipe == None: pipe = pipes.cdp_name() # A new molecule. if not return_molecule(generate_spin_id(mol_name=mol_name), pipe=pipe): create_molecule(mol_name=mol_name, pipe=pipe) # A new residue. curr_res = return_residue(generate_spin_id(mol_name=mol_name, res_num=res_num, res_name=res_name), pipe=pipe) if not curr_res or ((res_num != None and curr_res.num != res_num) or (res_name != None and curr_res.name != res_name)): create_residue(mol_name=mol_name, res_num=res_num, res_name=res_name, pipe=pipe) # A new spin. curr_spin = return_spin(spin_id=generate_spin_id(mol_name=mol_name, res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name), pipe=pipe) if not curr_spin or ((spin_num != None and curr_spin.num != spin_num) or (spin_name != None and curr_spin.name != spin_name)): # Add the spin. curr_spin = create_spin(mol_name=mol_name, res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name, pipe=pipe)[0] # Set the selection flag. curr_spin.select = select
def rna_seq(self): """Generate the RNA sequence of the noe_rna_hbond.dat restraint file.""" # Info. mol_names = ['A', 'B'] res_nums = [ [1, 2, 3, 4], [4, 3, 2, 1] ] spin_names = [ [['N1', 'N6', 'H62'], ['H3', 'N3', 'O4'], ['H1', 'N1', 'H22', 'N2', 'O6'], ['N3', 'O2', 'H42', 'N4']], [['H3', 'N3', 'O4'], ['N1', 'N6', 'H62'], ['N3', 'O2', 'H42', 'N4'], ['H1', 'N1', 'H22', 'N2', 'O6']] ] # Loop over the molecules. for i in range(len(mol_names)): # Create the molecule. create_molecule(mol_names[i]) # Loop over the residues. for j in range(len(res_nums[i])): # Create the residue. create_residue(res_nums[i][j], mol_name=mol_names[i]) # Loop over the atoms. for k in range(len(spin_names[i][j])): # Create the spin. create_spin(spin_names[i][j][k], res_num=res_nums[i][j], mol_name=mol_names[i]) # Display the sequence for debugging. self.interpreter.sequence.display()