예제 #1
0
def main():

    workspace, job_info = big_jobs.initiate()
    pdbpath = workspace.input_path(job_info)
    if not os.path.exists(workspace.output_prefix(job_info)):
        os.mkdir(workspace.output_prefix(job_info))
    outpath = workspace.output_path(job_info)
    folder = workspace.output_prefix(job_info)
    test_run = job_info.get('test_run', False)
    combiner = '/wynton/home/kortemme/krivacic/rosetta/source/bin/combine_silent.linuxgccrelease'
    # for folder in workspace.output_subdirs:
    cmd = [
        combiner, '-database',
        '/wynton/home/kortemme/krivacic/rosetta/database', '-out:file:silent',
        os.path.join(folder, 'silent.out')
    ]

    for f in glob.glob(folder + '/*.out'):
        cmd.extend([
            '-in:file:silent',
            f,
        ])

    print('Running ROSETTA command:')
    print(' '.join(cmd))

    subprocess.call(cmd)
예제 #2
0
def main():
    cluster.require_qsub()

    start_time = time.time()

    workspace, job_info = big_jobs.initiate()
    pdbpath = workspace.input_path(job_info)
    if not os.path.exists(workspace.output_prefix(job_info)):
        os.mkdir(workspace.output_prefix(job_info))
    outpath = workspace.output_path(job_info)
    test_run = job_info.get('test_run', False)

    # append location of Rosetta binaries to path
    abinitio = '/wynton/home/kortemme/krivacic/rosetta/source/bin/AbinitioRelax.linuxgccrelease'

    # find necessary files
    print('fdir :', workspace.fragments_dir)
    print('pdb :', pdbpath)
    print(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*3mers.gz'))
    tmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*3mers.gz'))[0]
    nmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*9mers.gz'))[0]
    ss2 = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*psipred_ss2'))[0]
    fasta = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*fasta'))[0]

    # Set up tempdir
    if 'TMPDIR' in os.environ:
        os_tmp = os.environ['TMPDIR']
    elif args['--task']:
        os_tmp = os.path.join(os.environ['HOME'], 'temp')
    else:
        os_tmp = os.path.join('/scratch', os.environ['USER'])
    outdir_temp = os.path.join(os_tmp, str(task_num))
    if not os.path.exists(outdir_temp):
        os.makedirs(outdir_temp, exist_ok=True)

    # Run the ab initio relax script.
    outfile = os.path.join(
        outdir_temp, 'silent{}.out'.format(workspace.output_suffix(job_info)))
    relax_abinitio = [
        abinitio,
        '-abinitio:relax',
        '-use_filters',
        'true',
        '-abinitio::increase_cycles',
        '10',
        '-abinitio::rg_reweight',
        '0.5',
        '-abinitio::rsd_wt_helix',
        '0.5',
        '-abinitio::rsd_wt_loop',
        '0.5',
        '-relax::fast',
        '-in:file:fasta',
        fasta,
        '-in:file:frag3',
        tmers,
        '-in:file:frag9',
        nmers,
        '-in:file:psipred_ss2',
        ss2,
        '-nstruct',
        '10',
        # '-out:pdb_gz',
        # '-out:sf', workspace.output_prefix(job_info) + 'score{}.sc'.format(workspace.output_suffix(job_info)),
        # '-out:file:silent', workspace.output_prefix(job_info) + 'silent{}.out'.format(workspace.output_suffix(job_info)),
        '-out:file:silent',
        outfile,
        # '-out:prefix', workspace.output_prefix(job_info),
        # '-out:suffix', workspace.output_suffix(job_info),
        '-out:no_nstruct_label'
        # '--outdir', workspace.fragments_dir,
        # '--memfree', args['--mem-free']
    ]

    print('Running ROSETTA command:')
    print(' '.join(relax_abinitio))

    subprocess.call(relax_abinitio)

    from shutil import copyfile
    if not os.path.exists(workspace.output_prefix(job_info)):
        os.makedirs(workspace.output_prefix(job_info), exist_ok=True)
    final = os.path.join(
        workspace.output_prefix(job_info),
        'silent{}.out'.format(workspace.output_suffix(job_info)))
    copyfile(outfile, final)
예제 #3
0
from roseasy import big_jobs
from pyrosetta.rosetta.core.pack.task import TaskFactory
from pyrosetta.rosetta.core.pack.task.operation import ReadResfile
from pyrosetta import create_score_function
from roseasy.movers import fastdesign
#from roseasy.standard_params.filters import FilterContainer
import time


def get_workspace(root_dir, step):
    return pipeline.DesignWorkspace(root_dir, step)


if __name__ == '__main__':
    start_time = time.time()
    workspace, job_info = big_jobs.initiate()
    test_run = job_info.get('test_run', False)
    init('-out:levels protocols.fixbb.LayerDesignOperation:warning')

    # Figure out input pdb and create a pose
    pdbpath = workspace.input_path(job_info)
    pose = pose_from_file(pdbpath)

    # Create FastDesign object
    fd = fastdesign.FastDesign()
    fd.pose = pose
    fd.add_init_arg('-ex1 -ex2 -use_input_sc -ex1aro')

    # Create task factory (tells Rosetta which positions to design and
    # which to move) and read the resfile
    taskfactory = TaskFactory()
예제 #4
0
def main():
    cluster.require_qsub()

    start_time = time.time()

    workspace, job_info = big_jobs.initiate()
    pdbpath = workspace.input_path(job_info)
    if not os.path.exists(workspace.output_prefix(job_info)):
        os.mkdir(workspace.output_prefix(job_info))
    outpath = workspace.output_path(job_info)
    test_run = job_info.get('test_run', False)

    # append location of Rosetta binaries to path
    abinitio = '/wynton/home/kortemme/krivacic/rosetta/source/bin/AbinitioRelax.linuxgccrelease'

    # find necessary files
    print('fdir :', workspace.fragments_dir)
    print('pdb :', pdbpath)
    print(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*3mers.gz'))
    tmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*3mers.gz'))[0]
    nmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*9mers.gz'))[0]
    ss2 = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*psipred_ss2'))[0]
    fasta = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath.lower()) + '?',
                     '*fasta'))[0]

    # Run the ab initio relax script.

    relax_abinitio = [
        abinitio,
        '-abinitio:relax',
        '-use_filters',
        'true',
        '-abinitio::increase_cycles',
        '10',
        '-abinitio::rg_reweight',
        '0.5',
        '-abinitio::rsd_wt_helix',
        '0.5',
        '-abinitio::rsd_wt_loop',
        '0.5',
        '-relax::fast',
        '-in:file:fasta',
        fasta,
        '-in:file:frag3',
        tmers,
        '-in:file:frag9',
        nmers,
        '-in:file:psipred_ss2',
        ss2,
        '-nstruct',
        '10',
        # '-out:pdb_gz',
        '-out:file:silent',
        workspace.output_prefix(job_info) +
        'silent_{}.out'.format(workspace.output_suffix(job_info)),
        # '-out:prefix', workspace.output_prefix(job_info),
        # '-out:suffix', workspace.output_suffix(job_info),
        '-out:no_nstruct_label'
        # '--outdir', workspace.fragments_dir,
        # '--memfree', args['--mem-free']
    ]

    print('Running ROSETTA command:')
    print(' '.join(relax_abinitio))

    subprocess.call(relax_abinitio)
예제 #5
0
def main():
    args = docopt.docopt(__doc__)
    print(args)
    cluster.require_qsub()

    start_time = time.time()

    workspace, job_info = big_jobs.initiate()
    pdbpath = workspace.input_path(job_info)
    if not os.path.exists(workspace.output_prefix(job_info)):
        os.mkdir(workspace.output_prefix(job_info))
    outpath = workspace.output_path(job_info)
    test_run = job_info.get('test_run', False)

    # append location of Rosetta binaries to path
    sys.path.append('/wynton/home/kortemme/krivacic/source/bin')

    # find necessary files
    tmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath) + '?', '*3mers.gz'))
    nmers = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath) + '?', '*9mers.gz'))
    ss2 = glob.glob(
        os.path.join(workspace.fragments_dir,
                     workspace.fragments_tag(pdbpath) + '?', '*psipred_ss2'))

    # Run the ab initio relaxation script.

    relax_abinitio = [
        'AbinitioRelax.linuxgccrelease',
        '-abinitio:relax',
        '-use_filters',
        'true',
        '-abinitio::increase_cycles',
        '10',
        '-abinitio::rg_reweight',
        '0.5',
        '-abinitio::rsd_wt_helix',
        '0.5',
        '-abinitio::rsd_wt_loop',
        '0.5',
        '-relax::fast',
        '-in:file:fasta',
        workspace.fasta_path,
        '-in:file:frag3',
        tmers,
        '-in:file:frag9',
        nmers,
        '-in:file:psipred_ss2',
        ss2,
        '-nstruct',
        args.nstruct,
        '-out:pdb_gz',
        '-out:prefix',
        workspace.output_prefix(job_info),
        '-out:suffix',
        workspace.output_suffix(job_info),
        # '--outdir', workspace.fragments_dir,
        # '--memfree', args['--mem-free']
    ]

    if args['--dry-run']:
        print(' '.join(relax_abinitio))
    else:
        subprocess.call(relax_abinitio)

    init()
    pose = pose_from_file(outpath)
    input_pose = pose_from_file(pdbpath)

    ca_rmsd = CA_rmsd(pose, input_pose)
    all_atom_rmsd = all_atom_rmsd(pose, input_pose)

    setPoseExtraScore(pose, 'EXTRA_METRIC_CA_RMSD [[-]]', ca_rmsd)
    setPoseExtraScore(pose, 'EXTRA_METRIC_AllAtom_RMSD [[-]]', all_atom_rmsd)

    filters = workspace.get_filters(pose,
                                    task_id=job_info['task_id'],
                                    score_fragments=not test_run,
                                    test_run=test_run)
    filters.run_filters()

    total_time = time.time() - start_time
    setPoseExtraScore(pose, 'EXTRA_METRIC_Run time', total_time)

    outname = os.path.basename(outpath)
    outfolder = os.path.join(workspace.output_prefix(job_info), 'filtered')
    pose.dump_pdb(os.path.join(outfolder, outpath))