diff rest_tool_functions.py @ 6:9ee84d9fd3a7 draft

Uploaded
author bernhardlutz
date Thu, 03 Apr 2014 06:50:57 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rest_tool_functions.py	Thu Apr 03 06:50:57 2014 -0400
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+
+
+import sys, os
+import argparse
+import urllib2, urllib, httplib
+import readfile
+import xml.sax as sax
+
+class DictHandler(sax.handler.ContentHandler):
+
+    def __init__(self): 
+        self.ergebnis = {} 
+        self.schluessel = "" 
+        self.wert = "" 
+        self.aktiv = None 
+
+    def startElement(self, name, attrs): 
+        if name == "Information": 
+            self.schluessel = "" 
+            self.wert = "" 
+        elif name == "AID" or name=="CID": 
+            self.aktiv = name 
+
+    def endElement(self, name): 
+        if name == "AID":
+            self.schluessel=self.schluessel.strip()
+            self.ergebnis[self.schluessel]=[]
+            #print("huhn")
+            self.aktiv=None
+        elif name == "CID": 
+            self.aktiv = None
+            self.ergebnis[self.schluessel].append(self.wert)
+            self.wert=""
+    def characters(self, content): 
+        if self.aktiv == "AID": 
+            self.schluessel += content 
+        elif self.aktiv == "CID":
+            self.wert += content
+            
+
+def give_aid_cid_dict_from_xml(xmlfile):
+    handler = DictHandler() 
+    parser = sax.make_parser() 
+    parser.setContentHandler(handler)
+    parser.parse(xmlfile)
+    dic=handler.ergebnis
+    return dic
+    
+#get every aid as a list
+#returns a dictionary with aid as key and as value the list of cids
+def getAllAssayIDs():
+    url="http://pubchem.ncbi.nlm.nih.gov/rest/pug/assay/type/all/aids/TXT"
+    data=readfile.getresult(url)
+    aidlist=readfile.getListFromString(data)
+    return aidlist
+
+
+def getIDofLine(line):
+    arr=line.split(">")
+    if len(arr) > 1:
+        aid=arr[1].split("<")[0]
+        return aid
+    else:
+        return "-1"
+
+def write_to_csv(aid_cid_dict, outfile):
+    for key in aid_cid_dict:
+        for cid in aid_cid_dict[key]:
+            outfile.write(key)
+            outfile.write(",")
+            outfile.write(cid)
+            outfile.write("\n")
+