Пример #1
0
def InitWalls(pdbid: str) -> TunnelWalls:
    """Initiate walls for a particular structure. This consumes a dataframe given that a choice of tunnel is present"""
    def get_tunnels_dataframe(csvpath: str) -> pd.DataFrame:
        tunnel_instance = pd.read_csv(csvpath)
        xyzr = tunnel_instance[['Distance', 'FreeRadius', 'X', 'Y', 'Z']]
        return xyzr

    TUNNELS = os.getenv("TUNNELS")
    log = Log(os.getenv('TUNNEL_LOG'))

    struct = log.get_struct(pdbid)
    taxid = str(int(struct['taxid'].values[0]))
    choice = int(struct['moletunnel'].values[0])

    tunnelfile = "tunnel_{}.csv".format(choice)

    if choice < 1:
        """See docs for disambiguation. Either mole hasn't succeeded or there is something blockign the tunnel."""
        print("Choice under 1.")
        return

    tunnelcsv = get_tunnels_dataframe(
        os.path.join(TUNNELS, taxid, pdbid, 'csv', tunnelfile))
    tw = TunnelWalls(pdbid, fetchStructure(pdbid), tunnelcsv)
    tw.consumeMoleDataframe(10)
    return tw
Пример #2
0
def root_self(rootname: str = '') -> str:
    """Returns the rootpath for the project if it's unique in the current folder tree."""
    root = os.path.abspath(
        __file__)[:os.path.abspath(__file__).find(rootname) + len(rootname)]
    sys.path.append(root)
    load_dotenv(os.path.join(root, '.env'))


if __name__ == "__main__":
    root_self('ribxz')

from ciftools.Structure import fetchStructure
from ciftools.TunnelScripts.TunnelLog import (Log)
from ciftools.Neoget import _neoget

log = Log(os.getenv("TUNNEL_LOG"))


def getConstrictedProteins(pdbid: str) -> List[str]:

    cypher = """
    match (n:RibosomeStructure{{rcsb_id:"{pdbid}"}})-[]-(rp:RibosomalProtein) 
    where "uL4" in rp.nomenclature or "uL22" in rp.nomenclature
    return rp.entity_poly_strand_id,rp.nomenclature, n.rcsb_id
    """.format_map({"pdbid": pdbid.upper()})
    response = _neoget(cypher)
    resplist = [
        *map(
            lambda x:
            (x['rp.nomenclature'][0], x['rp.entity_poly_strand_id']), response)
    ]
Пример #3
0
    load_dotenv(os.path.join(ROOT, '.env'))


if __name__ == "__main__":
    root_self('ribxz')

from ciftools.Structure import fetchStructure
from ciftools.TunnelScripts.TunnelLog import (Log)
from ciftools.TunnelScripts.ptc_site import (residues_average,
                                             get_ptc_residues)
from ciftools.TunnelScripts.WallsReportGeneration import InitWalls
from ciftools.TunnelScripts.WallsReportGeneration import add_nomenclature_map_to_report

TUNNELS = os.getenv("TUNNELS")
STATIC_ROOT = os.getenv("STATIC_ROOT")
log = Log(os.getenv('TUNNEL_LOG'))

# for struct in log.all_structs():
#     pdbid='3J7Z'
#     REPORT_PATH=os.path.join(STATIC_ROOT,pdbid,"{}_TUNNEL_REPORT.json".format(pdbid))
#     ## Generating report
#     walls =InitWalls(pdbid)
#     walls.consumeMoleDataframe(10)
#     walls.generateReport(REPORT_PATH)
#     add_nomenclature_map_to_report(pdbid,REPORT_PATH)

## Adding ptc
# for struct in log.all_structs():
#     log.update_struct(struct,
#     dowrite=True,
#     **{"PTC_average":
Пример #4
0
from ciftools.Structure import fetchStructure
from ciftools.scripts.splitStruct import fetchChain
from typing import List
from Bio.PDB.Residue import Residue
from pymol import cmd
from ciftools.TunnelScripts.TunnelLog import Log


RADIUS      = os.getenv('SCOOP_RADIUS')
TUNNELS     = os.getenv('TUNNELS')
STATIC_ROOT = os.getenv('STATIC_ROOT')


pdbid         = sys.argv[1].upper()
log           = Log(os.getenv('TUNNEL_LOG'))
struct        = fetchStructure(pdbid)
record        = log.get_struct(pdbid)
species       = str( int( record.taxid.values[0] ) )

structpath    = os.path.join(STATIC_ROOT,pdbid,"{}.cif".format(pdbid))
scoopsavepath = os.path.join(TUNNELS,species,pdbid,'{}_{}Ascoop.pdb'.format(pdbid,RADIUS))
if not os.path.exists(os.path.dirname( scoopsavepath )):
    os.makedirs(os.path.dirname( scoopsavepath ))


cmd.load(structpath)
x = cmd.select(f'resi 2504')
cmd.select(f'br. {pdbid} w. {RADIUS} of \'sele\'')
cmd.save( scoopsavepath, 'sele' )
print("Saved to {}".format(scoopsavepath))
Пример #5
0
PDBID                  = sys.argv[1].upper()
STATIC_ROOT            = os.getenv("STATIC_ROOT")
STRUCT_REPORT_PATH     = os.path.join(STATIC_ROOT,PDBID,f'{PDBID}_TUNNEL_REPORT.json')

if not os.path.exists(STRUCT_REPORT_PATH):
    try:
        ## Generating report
        walls = InitWalls(PDBID)
        walls.consumeMoleDataframe(10)
        walls.generateReport(STRUCT_REPORT_PATH)
        add_nomenclature_map_to_report(PDBID,STRUCT_REPORT_PATH)
    except error:
        print(error)
        exit("Failed to generate report for {}. Does the tunnel csv exist?".format(PDBID))

log                    = Log(os.getenv('TUNNEL_LOG'))
ProteinsColorgenerator = iter( ['purple','cyan','orange',"gray",'yellow','magenta','brown','turqoise','pink'] )

with open(STRUCT_REPORT_PATH, 'rb') as infile:
    report =  json.load(infile)

walls       = InitWalls(PDBID)
tunneldf    = walls.mole_dataframe

def locate_res_in_df(rescoords:List[float],tunnel_df:pd.DataFrame): 
    respos   = np.array(rescoords)
    rowid    = -1
    currdist = 10000000

    for index,row in tunnel_df.iterrows():
Пример #6
0
    moleparser = makeparser()

    load_dotenv(dotenv_path='/home/rxz/dev/ribxz/.env')

    MOLE_EXE     = os.getenv('MOLE_EXECUTABLE')
    TUNNELS      = os.getenv("TUNNELS")
    SCOOP_RADIUS = os.getenv("SCOOP_RADIUS")

    args = moleparser.parse_args()
    args = filter((lambda kvpair: None not in kvpair), vars(args).items())
    args = dict(args)

    pdbid       = args['PDBID'].upper()
    load_dotenv('/home/rxz/dev/ribxz/.env')

    log          = Log(os.getenv("TUNNEL_LOG"))
    record       = log.get_struct(pdbid)

    species      = str( int( record.taxid.values[0] ) )
    constriction = record.constriction_coord.values[0]

    inputconfigpath = os.path.join(TUNNELS, species, pdbid, '{}_moleinput.xml'.format(pdbid) )
    inputstructpath = os.path.join(TUNNELS, species, pdbid, '{}_{}Ascoop.pdb'.format(pdbid, SCOOP_RADIUS))
    outpath         = os.path.join(TUNNELS, species, pdbid)

    args['Input']         =  inputstructpath
    args['Output']        =  outpath
    args['ConfigPath']    =  inputconfigpath

    # pymol.cmd.load(inputstructpath)
    # pymol.cmd.select('PTC', 'resi 2506')