1
2
3
4
5
6 """
7 Provides code to access SCOP over the WWW. The main SCOP web page
8 is available at:
9 http://scop.mrc-lmb.cam.ac.uk/scop/
10
11 Functions:
12 search Access the main CGI script.
13 _open
14
15 """
16 import string
17 import urllib
18
19 from Bio import File
20
21 -def search(pdb=None, key=None, sid=None, disp=None, dir=None, loc=None,
22 cgi='http://scop.mrc-lmb.cam.ac.uk/scop/search.cgi', **keywds):
23 """search(pdb=None, key=None, sid=None, disp=None, dir=None, loc=None,
24 cgi='http://scop.mrc-lmb.cam.ac.uk/scop/search.cgi', **keywds)
25
26 Access search.cgi and return a handle to the results. See the
27 online help file for an explanation of the parameters:
28 http://scop.mrc-lmb.cam.ac.uk/scop/help.html
29
30 Raises an IOError if there's a network error.
31
32 """
33 params = {'pdb' : pdb, 'key' : key, 'sid' : sid, 'disp' : disp,
34 'dir' : dir, 'loc' : loc}
35 variables = {}
36 for k in params.keys():
37 if params[k] is not None:
38 variables[k] = params[k]
39 variables.update(keywds)
40 return _open(cgi, variables)
41
42 -def _open(cgi, params={}, get=1):
43 """_open(cgi, params={}, get=1) -> UndoHandle
44
45 Open a handle to SCOP. cgi is the URL for the cgi script to access.
46 params is a dictionary with the options to pass to it. get is a boolean
47 that describes whether a GET should be used. Does some
48 simple error checking, and will raise an IOError if it encounters one.
49
50 """
51
52 options = urllib.urlencode(params)
53 if get:
54 fullcgi = cgi
55 if options:
56 fullcgi = "%s?%s" % (cgi, options)
57 handle = urllib.urlopen(fullcgi)
58 else:
59 handle = urllib.urlopen(cgi, options)
60
61
62 uhandle = File.UndoHandle(handle)
63
64 return uhandle
65