<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#! /usr/bin/python

import cgi, pg, re, string
from pg import DB

buche=pg.DB(dbname='buche_4.8', user='postgres')
 
numeri=['1','2','3','4','5','6','7','8','9','0']

def header(title):
	print 'Content-Type: text/html\n'
        print '&lt;HTML&gt;\n&lt;HEAD&gt;\n&lt;TITLE&gt;%s\n&lt;/TITLE&gt;\n&lt;STYLE type=\"text/css\"&gt;p { font-family: \'Times New Roman\', \'Times\', \'serif\'; font-size:13px; font-style:normal; font-weight; normal; line-height: normal; text-transform: none; text-decoration: none} &lt;/STYLE&gt;\n&lt;/HEAD&gt;\n&lt;BODY BGCOLOR=\"#ffffff\" TEXT=\"#311469\" LINK=\"0052a4\" vlink=\"800080\"&gt;\n' % (title)
def footer():
	print '&lt;/BODY&gt;&lt;/HTML&gt;'

form=cgi.FieldStorage()
formkeys=form.keys()


header('Verify PDB code')

print '&lt;TABLE FRAME=\"void\" BORDER=\"0\"&gt;&lt;TR&gt;&lt;TD&gt;&lt;A HREF=main.htm&gt;&lt;IMG src=logo.jpg BORDER=\"0\"&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;P&gt;'  

for k in formkeys:

#### controlla validita' del codice immesso  ####
	if form[k].value=='submit':
		pdbcode=string.strip(k)
	elif k=='pdbcode':
		link='http://www.rcsb.org/pdb/cgi/explore.cgi?pid=208991029170421&amp;page=0&amp;pdbId='+string.upper(form[k].value)
		print '&lt;P&gt;The submitted code is &lt;A HREF=',link,'TARGET=\"_blank\"&gt;',form[k].value,'&lt;/A&gt;&lt;/P&gt;'
		pdbcode=form[k].value
	else:
		break
	if len(pdbcode)!=4 or pdbcode[0] not in numeri:
       	        print '&lt;P&gt;Please, check the PDB code &lt;BR&gt;&lt;/P&gt;' 
               	chain_id='errore'
		print '&lt;P&gt;&lt;A HREF=\'form_pdbcode.htm\'&gt;Retry&lt;/A&gt;&lt;/P&gt;'
        else:
       	        check=buche.query('select pdb.oid, pdb.header, pdb.compnd, pdb.source, pdb.author, pdb.title, pdb.keywds from pdb where pdb.name=\''+pdbcode+'\'').getresult()
               	if check:
			print '&lt;TABLE FRAME=\"void\" BORDER=\"1\" WIDTH=\"600\"&gt;'
		        if check[0][1]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Header:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][1]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
        		if check[0][2]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Compound:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][2]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
		        if check[0][3]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Source:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][3]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
		        if check[0][4]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Author:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][4]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
		        if check[0][5]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Title:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][5]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
		        if check[0][6]:
		                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Keywords:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;',re.sub(';','&lt;BR&gt;',(re.sub('\$','',check[0][6]))),'&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
#        		print '&lt;/TABLE&gt;'
			if check[0][0]:
				pdboid=check[0][0]
				catene=buche.query('select chains.name, chains.oid from chains where chains.pdb_id=\''+"%s"%(pdboid)+'\' order by chains.name').getresult()
				if not catene:
					print '&lt;P&gt;Something wrong happened, sorry&lt;/P&gt;&lt;BR&gt;'
					print '&lt;A HREF=\'form_pdbcode.htm\'&gt;Try&lt;/A&gt; a different PDB code &lt;BR&gt;'
				else:	
					technique=buche.query('select chains.exp, chains.rid1 where chains.pdb_id='+"%s"%(pdboid)+' and chains.name=\''+string.strip(catene[0][0])+'\'').getresult()
					if technique[0][0]=='X':
						print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Experimental Technique:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;X-RAY DIFFRACTION&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
	                                	print '&lt;/TABLE&gt;'
                                        elif technique[0][0]=='N':
                                                print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Experimental Technique:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NMR&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
                                                print '&lt;/TABLE&gt;'
					print '&lt;P&gt;&lt;TABLE FRAME=\"box\" BORDER=\"1\" WIDTH=\"100\"&gt;'
					print '&lt;TR bgcolor=\'#CCCCFF\'&gt;&lt;TH&gt;Chain&lt;/TH&gt;&lt;TH&gt;Redundancy&lt;/TH&gt;&lt;TH&gt;Representative redundancy group member&lt;/TH&gt;&lt;TH&gt;Submit&lt;/TH&gt;&lt;/TR&gt;'
					for i in range(len(catene)):
#						print check[0][0],catene[i][0],pdboid
						print '&lt;TR&gt;&lt;TD align=\'center\' bgcolor=\'#C0EAC0\'&gt;',catene[i][0],'&lt;/TD&gt;'
						catena=buche.query('select chains.groupid1, chains.rid1, chains.oid, chains.exp, chains.type from chains where chains.pdb_id='+"%s"%(pdboid)+' and chains.name=\''+string.strip(catene[i][0])+'\'').getresult()
#				        	catene=buche.query('select chains.groupid1, chains.rid1, chains.oid from chains where chains.pdb_id='+"%s"%(pdboid)+' and chains.name=\''+catena+'\'').getresult()
						if catena[0][1]=='f':
					                print '&lt;TD align=\'center\'&gt;Not representative&lt;/TD&gt;'
               						scelta=buche.query('select pdb.name, chains.pdb_id, chains.name, chains.rid1, chains.oid from pdb, chains where chains.rid1=\'t\' and chains.groupid1=\''+catena[0][0]+'\' and pdb.oid=chains.pdb_id and chains.exp!=\'N\'').getresult()
							if scelta:
								print '&lt;TD align=\'center\'&gt;','&lt;A HREF=http://www.rcsb.org/pdb/cgi/explore.cgi?pid=208991029170421&amp;page=0&amp;pdbId='+scelta[0][0]+' TARGET=\"_blank\"&gt;',scelta[0][0],'&lt;/A&gt;',scelta[0][2],'&lt;/TD&gt;'
					        	        check=buche.query('select pdb.oid, pdb.name, pdb.header, pdb.compnd, pdb.source, pdb.author, pdb.title, pdb.keywds from pdb where pdb.name=\''+scelta[0][0]+'\'').getresult()
               							chain_id=catene[i][1]
					        	        print '&lt;FORM action=\'mostra_buche.py\' method=\'POST\'&gt;'
       	        						print '&lt;INPUT type=\'hidden\' name=\'pdbcode\' value=\'',scelta[0][0],'\'&gt;'
					        	        print '&lt;INPUT type=\'hidden\' name=\'pdboid\' value=\'',pdboid,'\'&gt;'
						                print '&lt;INPUT type=\'hidden\' name=\'chain_id\' value=\'',scelta[0][4],'\'&gt;'
					        	        print '&lt;INPUT type=\'hidden\' name=\'chain_name\' value=\'',scelta[0][2],'\'&gt;'
			        		        	print '&lt;TD&gt;&lt;INPUT type=\'submit\' name=\'procedi\' value=\'Submit\'&gt;&lt;/TD&gt;'
								print '&lt;/FORM&gt;'
							else:
								print '&lt;TD align=\'center\'&gt;No representative member available&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;'
				 	       	else:
							print '&lt;TD&gt;Representative&lt;/TD&gt;&lt;TD align=\'center\'&gt;&lt;A HREF=http://www.rcsb.org/pdb/cgi/explore.cgi?pid=208991029170421&amp;page=0&amp;pdbId='+pdbcode+' TARGET=\"_blank\"&gt;',pdbcode,'&lt;/A&gt;',catene[i][0]+'&lt;/TD&gt;'
               						chain_id=catene[i][1]
					                print '&lt;FORM action=\'mostra_buche.py\' method=\'POST\'&gt;'
					                print '&lt;INPUT type=\'hidden\' name=\'pdbcode\' value=\'',pdbcode,'\'&gt;'
			        		        print '&lt;INPUT type=\'hidden\' name=\'pdboid\' value=\'',check[0][0],'\'&gt;'
			                		print '&lt;INPUT type=\'hidden\' name=\'chain_id\' value=\'',catene[i][1],'\'&gt;'
			                		print '&lt;INPUT type=\'hidden\' name=\'chain_name\' value=\'',catene[i][0],'\'&gt;'
				        	        print '&lt;TD&gt;&lt;INPUT type=\'submit\' name=\'proceed\' value=\'Submit\'&gt;&lt;/TD&gt;'
							print '&lt;/FORM&gt;'
#						if catena[0][4]=='int':
#							print '&lt;TD&gt;Interesting&lt;/TD&gt;'
#							chain_id=catene[i][1]
#                                                        print '&lt;FORM action=\'mostra_buche.py\' method=\'POST\'&gt;'
#                                                        print '&lt;INPUT type=\'hidden\' name=\'pdbcode\' value=\'',pdbcode,'\'&gt;'
#							print '&lt;INPUT type=\'hidden\' name=\'pdboid\' value=\'',pdboid,'\'&gt;'
#							print '&lt;INPUT type=\'hidden\' name=\'chain_id\' value=\'',catene[i][1],'\'&gt;'
#							print '&lt;INPUT type=\'hidden\' name=\'chain_name\' value=\'',catene[i][0],'\'&gt;'
#							print '&lt;TD&gt;&lt;INPUT type=\'submit\' name=\'proceed\' value=\'Submit\'&gt;&lt;/TD&gt;&lt;/TR&gt;'
#							print '&lt;/FORM&gt;'
#						else:
#							print '&lt;/TR&gt;'
#					elif technique[0][0]=='N' and technique[0][1]=='f':
#						print '&lt;TR&gt;&lt;TH bgcolor=\'CCCCFF\'&gt;Experimental Technique:&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NMR&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;'
#						print '&lt;/TABLE&gt;'
#                                               print '&lt;P&gt;&lt;TABLE FRAME=\"box\" BORDER=\"1\" WIDTH=\"100\"&gt;'
					print '&lt;/TABLE&gt;&lt;/P&gt;'
		else:
			print '&lt;P&gt;The submitted code is not present in the used PDB release&lt;BR&gt;&lt;/P&gt;'
			print '&lt;P&gt;&lt;A HREF=\'form_pdbcode.htm\'&gt;Try&lt;/A&gt; a different PDB code &lt;BR&gt;&lt;/P&gt;'

print '&lt;TABLE&gt;&lt;TR&gt;&lt;TD&gt;&lt;IMG src=linea.jpg&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;'
print 'mail to: &lt;A HREF=mailto:surface@cbm.bio.uniroma2.it&gt;surface@cbm.bio.uniroma2.it&lt;/A&gt;'
print '&lt;P&gt;'
print 'go to the&lt;A HREF=\'main.htm\'&gt; home page &lt;/A&gt;'
print '&lt;/P&gt;'

footer()</pre></body></html>