Snippets

Biosig Lab CSM-AB_single_prediction_API

You are viewing an old version of this snippet. View the current version.
Revised by Yoochan Myung 0ebb33d
import argparse
import requests
import sys

URL_single = "https://biosig.lab.uq.edu.au/csm_ab/api/prediction_single"
URL_pose = "https://biosig.lab.uq.edu.au/csm_ab/api/prediction_pose"


def main(args):
    job_type = args.job_type
    job_id = args.job_id

    params = {
        "job_id": job_id,
    }

    if job_type == 'single':
        req = requests.get(URL_single, data=params)
        print(req.json())
        return True
    else:
        req = requests.get(URL_pose, data=params)
        print(req.json())
        return True


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description='Retrieve job results for CSM-AB')
    parser.add_argument('job_type', type=str, choices=['single', 'pose'],
                        help='choose between single and pose prediction')
    parser.add_argument('job_id', type=str,
                        help='Job identifier code generated upon submission')

    args = parser.parse_args()
    main(args)
import argparse
import requests
import sys

URL_single = "https://biosig.lab.uq.edu.au/csm_ab/api/prediction_single"
URL_pose = "https://biosig.lab.uq.edu.au/csm_ab/api/prediction_pose"


def main(args):
    if args.job_type == 'single':
        pdb_file = args.pdb_file
        pdb_accession = args.pdb_accession
        if pdb_accession:
            data = {"pdb_accession": pdb_accession}
            req = requests.post(URL_single, data=data)
            print(req.json())
        else:
            pdb_to_submit = {"pdb_file": pdb_file}
            req = requests.post(URL_single, files=pdb_to_submit)
            print(req.json())
        return True
    else:
        receptor_file = args.receptor_file
        pose_file = args.pose_file
        file_to_submit = {
            'receptor_file': receptor_file, 'pose_file': pose_file}
        req = requests.post(URL_pose, files=file_to_submit)
        print(req.json())


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description='Job submission for CSM-AB')
    parser.add_argument('job_type', type=str, choices=['single', 'pose'],
                        help='choose between single and pose prediction')
    parser.add_argument('--pdb_file', dest='pdb_file',
                        type=argparse.FileType('r'), help='PDB file')
    parser.add_argument('--pdb_accession', dest='pdb_accession',
                        type=str, help='Type PDB-ID')
    parser.add_argument('--receptor_file', dest='receptor_file',
                        type=argparse.FileType('r'), help='PDB file')
    parser.add_argument('--pose_file', dest='pose_file',
                        type=argparse.FileType('r'), help='PDB file')

    args = parser.parse_args()
    print(args.job_type, args.pdb_file, args.pdb_accession)
    if args.job_type == 'single':
        if (args.pdb_file == None and args.pdb_accession == None):
            print(
                'post.py: error: missing arguments: Please provide --pdb_file or --pdb_accession')
            sys.exit(1)
    else:
        if args.receptor_file == None or args.pose_file == None:
            print(
                'post.py: error: missing arguments: Please provide --receptor_file or --pose_file')
            sys.exit(1)
    main(args)
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.