Esempio n. 1
0
def center_at_protein_chain_groups(atomistic_protein_input, cg_com,
                                   protein_mass, cg_backbone_masses):
    for chain in atomistic_protein_input:
        for part_val, part in enumerate(atomistic_protein_input[chain]):
            sls, sle = int(part.split(':')[0]), int(part.split(':')[1])
            if chain in g_var.group_chains:
                atomistic_protein_mass = at_mod.COM(
                    protein_mass[g_var.group_chains[chain]],
                    'AT protein chain: ' + str(chain))
                cg_com[chain].append(
                    at_mod.COM(cg_backbone_masses[g_var.group_chains[chain]],
                               'CG protein chain: ' + str(chain)))
            else:
                protein_mass = fetch_backbone_mass(
                    atomistic_protein_input[chain][part], [])
                atomistic_protein_mass = at_mod.COM(
                    protein_mass, 'protein at: ' + str(chain) + ' ' +
                    part)  #### add center of mass of CG_proteins
                cg_com[chain].append(
                    at_mod.COM(g_var.backbone_coords[chain][sls:sle],
                               'protein cg: ' + str(chain) + ' ' + part))
            atomistic_protein_input[chain][part] = update_part_coordinate(
                atomistic_protein_input[chain][part], atomistic_protein_mass,
                cg_com[chain][part_val])
    return atomistic_protein_input, cg_com
Esempio n. 2
0
def center_at_protein_all_chains(atomistic_protein_input, cg_com, protein_mass,
                                 cg_backbone_masses):
    atomistic_protein_mass = at_mod.COM(protein_mass, 'All AT protein chains')
    for chain in atomistic_protein_input:
        for part_val, part in enumerate(atomistic_protein_input[chain]):
            cg_com[chain].append(
                at_mod.COM(cg_backbone_masses['all'], 'All CG protein chains'))
            atomistic_protein_input[chain][part] = update_part_coordinate(
                atomistic_protein_input[chain][part], atomistic_protein_mass,
                cg_com[chain][part_val])
    return atomistic_protein_input, cg_com
Esempio n. 3
0
def center_atomistic(atomistic_protein_input, backbone_coords): 
    cg_com={}
#### for each protein chain center on cg representation 
    for chain in atomistic_protein_input:
        cg_com[chain]=[]
        for part_val, part in enumerate(atomistic_protein_input[chain]):
            sls, sle= int(part.split(':')[0]),int(part.split(':')[1])
            protein_mass=[]
            for residue in atomistic_protein_input[chain][part]:
            #### creates a list of all coordinates and masses [[coord, mass],[coord, mass]]
                for atom in atomistic_protein_input[chain][part][residue]:
                    short_line=atomistic_protein_input[chain][part][residue][atom]
                    protein_mass.append([short_line['coord'][0],short_line['coord'][1],short_line['coord'][2],short_line['frag_mass']])
        #### returns the COM of the atomistic protein
            atomistic_protein_mass = at_mod.COM(protein_mass, 'protein at: '+str(chain)+' '+part)#### add center of mass of CG_proteins
            cg_com[chain].append(at_mod.COM(backbone_coords[chain][sls:sle], 'protein cg: '+str(chain)+' '+part))
        #### each atoms coord is updated so the monomer COM is the same as the CG
            for residue in atomistic_protein_input[chain][part]:
                for atom in atomistic_protein_input[chain][part][residue]:
                    atomistic_protein_input[chain][part][residue][atom]['coord']=atomistic_protein_input[chain][part][residue][atom]['coord']-(atomistic_protein_mass-cg_com[chain][part_val])
    return atomistic_protein_input, cg_com
Esempio n. 4
0
def center_atomistic():
    cg_com = {}
    #### for each protein chain center on cg representation
    for chain in g_var.atomistic_protein_input_aligned:
        cg_com[chain] = []
        for part_val, part in enumerate(
                g_var.atomistic_protein_input_aligned[chain]):
            sls, sle = int(part.split(':')[0]), int(part.split(':')[1])
            if g_var.group_chains is None:
                protein_mass = fetch_backbone_mass(
                    g_var.atomistic_protein_input_aligned[chain][part], [])
                atomistic_protein_mass = at_mod.COM(
                    protein_mass, 'protein at: ' + str(chain) + ' ' +
                    part)  #### add center of mass of CG_proteins
                cg_com[chain].append(
                    at_mod.COM(g_var.backbone_coords[chain][sls:sle],
                               'protein cg: ' + str(chain) + ' ' + part))
                g_var.atomistic_protein_input_aligned[chain][
                    part] = update_part_coordinate(
                        g_var.atomistic_protein_input_aligned[chain][part],
                        atomistic_protein_mass, cg_com[chain][part_val])
            elif g_var.group_chains == 'all':
                if 'protein_mass' not in locals():
                    protein_mass = []
                protein_mass = fetch_backbone_mass(
                    g_var.atomistic_protein_input_aligned[chain][part],
                    protein_mass)
                if 'cg_backbone_masses' not in locals():
                    cg_backbone_masses = {}
                    cg_backbone_masses['all'] = g_var.backbone_coords[chain][
                        sls:sle]
                else:
                    cg_backbone_masses['all'] += g_var.backbone_coords[chain][
                        sls:sle]
            else:
                if 'protein_mass' not in locals():
                    protein_mass = {}
                if chain in g_var.group_chains:
                    if g_var.group_chains[chain] not in protein_mass:
                        protein_mass[
                            g_var.group_chains[chain]] = fetch_backbone_mass(
                                g_var.atomistic_protein_input_aligned[chain]
                                [part], [])
                    else:
                        protein_mass[
                            g_var.group_chains[chain]] = fetch_backbone_mass(
                                g_var.atomistic_protein_input_aligned[chain]
                                [part], protein_mass[group_chain[chain]])
                    if 'cg_backbone_masses' not in locals():
                        cg_backbone_masses = {}
                    if g_var.group_chains[chain] not in cg_backbone_masses:
                        cg_backbone_masses[g_var.group_chains[
                            chain]] = g_var.backbone_coords[chain][sls:sle]
                    else:
                        cg_backbone_masses[g_var.group_chains[
                            chain]] += g_var.backbone_coords[chain][sls:sle]
    if g_var.group_chains == 'all':
        g_var.atomistic_protein_input_aligned, cg_com = center_at_protein_all_chains(
            g_var.atomistic_protein_input_aligned, cg_com, protein_mass,
            cg_backbone_masses)
    if g_var.group_chains not in ['all', None]:
        g_var.atomistic_protein_input_aligned, cg_com = center_at_protein_chain_groups(
            g_var.atomistic_protein_input_aligned, cg_com, protein_mass,
            cg_backbone_masses)
    return g_var.atomistic_protein_input_aligned, cg_com