pdbid:chain added
[django_unres.git] / django_simple / todo / views.py
index 3d959f1..7045a7c 100644 (file)
@@ -29,6 +29,27 @@ res_codes = [
 
 three_to_one = dict(res_codes)
 
+def load_pdbid(pdbid,dirname):
+    os.mkdir(dirname)
+    if len(pdbid)==4:
+       file,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+                     dirname+'/plik.pdb')     
+    else:
+       chain=pdbid[5]
+       pdbid=pdbid[:4]
+       pdb_tmp=urllib.urlopen('http://files.rcsb.org/download/'+pdbid+'.pdb')
+       with open(dirname+'/plik.pdb', 'w') as outfile:
+        for line in pdb_tmp:
+          if line[0:6] == 'SSBOND' and line[15] == chain and line[29] == chain:
+            outfile.write(line)
+          if line[0:6] == 'ATOM  ' and line[21] == chain:
+            outfile.write(line)
+       pdb_tmp.close()
+       file=dirname+'/plik.pdb'
+       
+    return(file)
+
+
 def seq_2d_from_pdb(seq_2d,seq):
     if seq_2d =='':
       return(seq_2d)
@@ -171,9 +192,7 @@ def add_min(request,task_id):
              task.jobdirname = "_".join([basename, suffix])
 
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]
@@ -222,9 +241,7 @@ def add_min_a(request,task_id):
              
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]
@@ -278,9 +295,7 @@ def add_md(request,task_id):
 
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]
@@ -332,9 +347,7 @@ def add_md_a(request,task_id):
 
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]
@@ -407,9 +420,7 @@ def add_remd(request,task_id):
 
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]
@@ -512,9 +523,7 @@ def add_remd_a(request,task_id):
 
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
-              os.mkdir(task.jobdirname)
-              task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
-                     task.jobdirname+'/plik.pdb')     
+              task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
               task.myfile1=form.cleaned_data["file1"]