def getAvailableDatabases(self, username, password):
        print "retrieving available databases for user", username

        rootUrl = "3dm.bio-prodict.nl"
        service = "/jwebapp/mcsis-miner-web/webservice/SOAP/"
        wsdl = "https://" + rootUrl + service + "?wsdl"

        security = Security()
        token = UsernameToken(username, password)
        security.tokens.append(token)

        proxies = utopia.queryProxyString(wsdl)
        proxyDict = {}
        gc = None
        if proxies != "DIRECT":
            proxyDict["https"] = proxies.split()[1]
            gc = client.Client(
                wsdl,
                plugins=[MyPlugin()],
                location="https://3dm.bio-prodict.nl/jwebapp/mcsis-miner-web/webservice/SOAP/",
                proxy=proxyDict,
            )
        else:
            gc = client.Client(
                wsdl,
                plugins=[MyPlugin()],
                location="https://3dm.bio-prodict.nl/jwebapp/mcsis-miner-web/webservice/SOAP/",
            )

        gc.set_options(wsse=security)
        gs = gc.service
        databases = gs.getAvailableDatabases()
        # print databases
        return databases["databases"]
    def getMentions(self, domain, text, pubmedId):
        tmp = tempfile.gettempdir()
        codecs.open(tmp + os.sep + "documentText.txt", "w", "utf-8").write(text)
        text = codecs.open(tmp + os.sep + "documentText.txt", "r", "utf-8").read()
        username = self.get_config("username")
        password = self.get_config("password")
        if self.validUsernameAndPassword(username, password):
            rootUrl = "3dm.bio-prodict.nl"
            service = "/jwebapp/mcsis-miner-web/webservice/SOAP/"
            wsdl = "https://" + rootUrl + service + "?wsdl"

            self.proteinJs = self.proteinJs.replace("#USERNAME#", urllib2.quote(self.get_config("username")))
            self.proteinJs = self.proteinJs.replace("#PASSWORD#", urllib2.quote(self.get_config("password")))
            self.mutationJs = self.mutationJs.replace("#USERNAME#", urllib2.quote(self.get_config("username")))
            self.mutationJs = self.mutationJs.replace("#PASSWORD#", urllib2.quote(self.get_config("password")))
            self.residueJs = self.residueJs.replace("#USERNAME#", urllib2.quote(self.get_config("username")))
            self.residueJs = self.residueJs.replace("#PASSWORD#", urllib2.quote(self.get_config("password")))

            security = Security()
            token = UsernameToken(username, password)
            security.tokens.append(token)

            proxies = utopia.queryProxyString(wsdl)
            proxyDict = {}
            gc = None
            if proxies != "DIRECT":
                proxyDict["https"] = proxies.split()[1]
                gc = client.Client(
                    wsdl,
                    plugins=[MyPlugin()],
                    location="https://3dm.bio-prodict.nl/jwebapp/mcsis-miner-web/webservice/SOAP/",
                    proxy=proxyDict,
                )
            else:
                gc = client.Client(
                    wsdl,
                    plugins=[MyPlugin()],
                    location="https://3dm.bio-prodict.nl/jwebapp/mcsis-miner-web/webservice/SOAP/",
                )

            gc.set_options(wsse=security)
            gs = gc.service
            if domain == "hgvs_public":
                mentions = gs.annotateHGVS(text, pubmedId)
            else:
                mentions = gs.annotate(domain, text, pubmedId)
            print "retrieved " + str(len(mentions))
            return mentions
        else:
            print "No credentials specified"