Snippets

Biosig Lab CSM-AB_single_prediction_API

Updated by Yoochan Myung

File get.py Modified

  • Ignore whitespace
  • Hide word diff
     }
 
     if job_type == 'single':
-        req = requests.get(URL_single, data=params)
+        req = requests.get(URL_single, json=params)
         print(req.json())
         return True
     else:
                         help='Job identifier code generated upon submission')
 
     args = parser.parse_args()
-    main(args)
+    main(args)
Updated by Yoochan Myung

File post.py Modified

  • Ignore whitespace
  • Hide word diff
 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)
+        if args.pdb_accession:
+            data = {"pdb_accession": args.pdb_accession}
+            req = requests.post(URL_single, json=data)
             print(req.json())
         else:
-            pdb_to_submit = {"pdb_file": pdb_file}
-            req = requests.post(URL_single, files=pdb_to_submit)
+            files = {"pdb_file": open(args.pdb_file.name, 'rb')}
+            req = requests.post(URL_single, files=files)
             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)
+        files = {'receptor_file': open(args.receptor_file.name, 'rb'), 'pose_file': open(args.pose_file.name, 'rb')}
+        req = requests.post(URL_pose, files=files)
         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')
+    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)
+        if not (args.pdb_file or args.pdb_accession):
+            parser.error('For single job type, either --pdb_file or --pdb_accession must be provided.')
     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)
+        if not (args.receptor_file and args.pose_file):
+            parser.error('For pose job type, both --receptor_file and --pose_file must be provided.')
+
     main(args)
+
Updated by Yoochan Myung

File post.py Modified

  • Ignore whitespace
  • Hide word diff
             print(req.json())
         else:
             pdb_to_submit = {"pdb_file": pdb_file}
-            req = requests.post(URL_pose, files=pdb_to_submit)
+            req = requests.post(URL_single, files=pdb_to_submit)
             print(req.json())
         return True
     else:
Updated by Yoochan Myung

File get.py Modified

  • Ignore whitespace
  • Hide word diff
 import requests
 import sys
 
-URL_single = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
-URL_pose = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_pose"
+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):

File post.py Modified

  • Ignore whitespace
  • Hide word diff
 import requests
 import sys
 
-URL_single = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
-URL_pose = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_pose"
+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):
Updated by Yoochan Myung

File get.py Modified

  • Ignore whitespace
  • Hide word diff
 import requests
 import sys
 
-URL = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
+URL_single = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
+URL_pose = "http://biosig.unimelb.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,
     }
 
-    req = requests.get(URL, data=params)
-    print(req.json())
-    return True
+    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 single prediction - CSM-AB')
-    parser.add_argument('--job_id', dest='job_id', type=str, help='Job identifier code generated upon submission', required=False, default=None)
+    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()
-    if args.job_id == None:
-        print('usage: get.py [-h] [--job_id JOB_ID]')
-        print('get.py: error: missing arguments: Please provide --job_id')
-        sys.exit(1)
-
     main(args)

File post.py Modified

  • Ignore whitespace
  • Hide word diff
 import requests
 import sys
 
-URL = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
+URL_single = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_single"
+URL_pose = "http://biosig.unimelb.edu.au/csm_ab/api/prediction_pose"
+
 
 def main(args):
-    pdb_file = args.pdb_file
-    pdb_accession = args.pdb_accession
-    if pdb_accession:
-        data = {"pdb_accession":pdb_accession}
-        req = requests.post(URL, data=data)
-        print(req.json())
+    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_pose, files=pdb_to_submit)
+            print(req.json())
+        return True
     else:
-        pdb_to_submit = {"pdb_file": pdb_file}
-        req = requests.post(URL, files=pdb_to_submit)
+        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())
-    return True
+
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser(description='Job submission for single prediction - CSM-AB')
-    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 = 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()
-    if args.pdb_file == None and args.pdb_accession == None:
-        print('usage: post.py [-h] [--pdb_file PDB_FILE] [--pdb_accession pdb_accession]')
-        print('post.py: error: missing arguments: Please provide --pdb_file or --pdb_accession')
-        sys.exit(1)
+    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)
  1. 1
  2. 2
HTTPS SSH

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