def multiDomain(pfamDict, chemblTargets, winners, threshold, release, user,
                pword, host, port):

    import getLigands
    import filterForTarget
    import pickle

    multi = {}
    for target in chemblTargets:
        candidates = {}
        if target in pfamDict:
            for domain in pfamDict[target]['domains']:
                domain = str(domain)
                if domain in winners:
                    candidates[domain] = 0

        if len(candidates.keys()) == 1 and len(
                pfamDict[target]['domains']) > 1:
            ligands = getLigands.getLigandsForTarget(target, release, user,
                                                     pword, host, port)
            ligands = filterForTarget.filterForTarget(ligands, threshold)
            domain = candidates.keys()[0]
            for ligand in ligands:
                smiles = ligand[0]
                aff = ligand[1]
                molregno = ligand[2]
                actId = ligand[3]
                try:
                    multi[domain][molregno]['pAfnty'].append(aff)
                    multi[domain][molregno]['target'].append(target)
                    multi[domain][molregno]['actId'].append(actId)
                    multi[domain][molregno]['smiles'] = smiles
                except KeyError:
                    try:
                        multi[domain][molregno] = {}
                        multi[domain][molregno]['pAfnty'] = []
                        multi[domain][molregno]['target'] = []
                        multi[domain][molregno]['actId'] = []
                        multi[domain][molregno]['smiles'] = smiles
                        multi[domain][molregno]['pAfnty'].append(aff)
                        multi[domain][molregno]['target'].append(target)
                        multi[domain][molregno]['actId'].append(actId)
                    except KeyError:
                        multi[domain] = {}
                        multi[domain][molregno] = {}
                        multi[domain][molregno]['pAfnty'] = []
                        multi[domain][molregno]['target'] = []
                        multi[domain][molregno]['actId'] = []
                        multi[domain][molregno]['smiles'] = smiles
                        multi[domain][molregno]['pAfnty'].append(aff)
                        multi[domain][molregno]['target'].append(target)
                        multi[domain][molregno]['actId'].append(actId)

    outfile = open('data/multiDict_pKi%s_%s.pkl' % (int(threshold), release),
                   'w')
    pickle.dump(multi, outfile)
    outfile.close()
    return multi
Exemple #2
0
def toSam(conflicts, threshold, user, pword, host, release, port):

    import parse
    import getLigands
    import filterForTarget
    import queryDevice

    conf = {}
    for confStr in conflicts.keys():
        for target in conflicts[confStr]:
            ligands = getLigands.getLigandsForTarget(target, release, user,
                                                     pword, host, port)
            ligands = filterForTarget.filterForTarget(ligands, threshold)

            for ligand in ligands:
                molregno = ligand[2]
                actId = ligand[3]
                pubmed = queryDevice.queryDevice(
                    "SELECT pubmed_id FROM docs JOIN activities act ON act.doc_id = docs.doc_id WHERE activity_id = %s"
                    % actId, release, user, pword, host, port)[0][0]
                pubmed = pubmed
                try:
                    conf[confStr][molregno]['actId'].append(actId)
                    conf[confStr][molregno]['pubmed'].append(pubmed)
                    conf[confStr][molregno]['pubmed'] = []
                    conf[confStr][molregno]['pubmed'].append(pubmed)
                except KeyError:
                    try:
                        conf[confStr][molregno] = {}
                        conf[confStr][molregno]['actId'] = []
                        conf[confStr][molregno]['actId'].append(actId)
                        conf[confStr][molregno]['pubmed'] = []
                        conf[confStr][molregno]['pubmed'].append(pubmed)
                    except KeyError:
                        conf[confStr] = {}
                        conf[confStr][molregno] = {}
                        conf[confStr][molregno]['actId'] = []
                        conf[confStr][molregno]['actId'].append(actId)
                        conf[confStr][molregno]['pubmed'] = []
                        conf[confStr][molregno]['pubmed'].append(pubmed)

    confLkp = {}
    for confStr in conf.keys():
        confLkp[confStr] = 0

    for confStr in confLkp.keys():
        out = open('data/forSam_%s.pred' % confStr, 'w')
        out.write('molregno\tpubmed\tprediction\tactivity_id\n')
        for conflict in conf[confStr]:
            for molregno in conf[confStr].keys():
                pubmed = conf[confStr][molregno]['pubmed']
                domain = 'None'
                actId = conf[confStr][molregno]['actId']
                for act in actId:
                    out.write('%s\t%s\t%s\t%s\n' %
                              (molregno, pubmed[0], domain, act))
        out.close()
def multiDomain(pfamDict, chemblTargets, winners, threshold, release, user, pword, host, port):

  import getLigands
  import filterForTarget
  import pickle

 
  multi = {}
  for target in chemblTargets:
    candidates = {}
    if target in pfamDict:
      for domain in pfamDict[target]['domains']:
        domain = str(domain)      
        if domain in winners:
          candidates[domain]=0
        
    if len(candidates.keys()) == 1 and len(pfamDict[target]['domains']) >1:
      ligands = getLigands.getLigandsForTarget(target, release, user, pword, host, port)
      ligands = filterForTarget.filterForTarget(ligands, threshold)
      domain = candidates.keys()[0]
      for ligand in ligands:
        smiles = ligand[0]
        aff = ligand[1]
        molregno = ligand[2]
	actId = ligand[3]
        try:
          multi[domain][molregno]['pAfnty'].append(aff)
          multi[domain][molregno]['target'].append(target)
	  multi[domain][molregno]['actId'].append(actId)
          multi[domain][molregno]['smiles']=smiles
        except KeyError:
          try:
            multi[domain][molregno] = {}
            multi[domain][molregno]['pAfnty']=[]
            multi[domain][molregno]['target']=[]
            multi[domain][molregno]['actId'] = []
            multi[domain][molregno]['smiles']=smiles
            multi[domain][molregno]['pAfnty'].append(aff)
            multi[domain][molregno]['target'].append(target)
	    multi[domain][molregno]['actId'].append(actId)
          except KeyError:
            multi[domain]={}
            multi[domain][molregno] = {}
            multi[domain][molregno]['pAfnty']=[]
            multi[domain][molregno]['target']=[]
	    multi[domain][molregno]['actId'] = []
            multi[domain][molregno]['smiles']=smiles
            multi[domain][molregno]['pAfnty'].append(aff)
            multi[domain][molregno]['target'].append(target)
            multi[domain][molregno]['actId'].append(actId)

  outfile = open('data/multiDict_pKi%s_%s.pkl'%(int(threshold), release),'w')
  pickle.dump(multi, outfile)
  outfile.close()
  return multi          
Exemple #4
0
def toSam(conflicts, threshold, user, pword, host, release, port):
  
  import parse
  import getLigands
  import filterForTarget
  import queryDevice 

  conf = {}
  for confStr in conflicts.keys():
    for target in conflicts[confStr]:      
      ligands = getLigands.getLigandsForTarget(target, release, user, pword, host, port)
      ligands = filterForTarget.filterForTarget(ligands, threshold)

      for ligand in ligands:
        molregno = ligand[2] 
        actId = ligand[3]
        pubmed = queryDevice.queryDevice("SELECT pubmed_id FROM docs JOIN activities act ON act.doc_id = docs.doc_id WHERE activity_id = %s"%actId,release, user, pword, host, port)[0][0]
        pubmed = pubmed
        try:
          conf[confStr][molregno]['actId'].append(actId)
          conf[confStr][molregno]['pubmed'].append(pubmed)
          conf[confStr][molregno]['pubmed'] = []
          conf[confStr][molregno]['pubmed'].append(pubmed)
        except KeyError:
          try:
            conf[confStr][molregno] = {}
            conf[confStr][molregno]['actId'] = []
            conf[confStr][molregno]['actId'].append(actId)
            conf[confStr][molregno]['pubmed'] = []
            conf[confStr][molregno]['pubmed'].append(pubmed)
          except KeyError:
            conf[confStr]={}
            conf[confStr][molregno] = {}
            conf[confStr][molregno]['actId'] = []
            conf[confStr][molregno]['actId'].append(actId)
            conf[confStr][molregno]['pubmed'] = []
            conf[confStr][molregno]['pubmed'].append(pubmed)
 
  confLkp = {}
  for confStr in conf.keys():
    confLkp[confStr] = 0
    
  for confStr in confLkp.keys():
    out = open('data/forSam_%s.pred'%confStr, 'w')
    out.write('molregno\tpubmed\tprediction\tactivity_id\n')
    for conflict in conf[confStr]:
      for molregno in conf[confStr].keys():
        pubmed = conf[confStr][molregno]['pubmed']
        domain = 'None'
        actId = conf[confStr][molregno]['actId']
        for act in actId:
          out.write('%s\t%s\t%s\t%s\n'%(molregno, pubmed[0], domain, act))
    out.close()
def singleDomains(pfamDict, chemblTargets,threshold, release, user, pword, host, port):
  import pickle
  import getLigands
  import filterForTarget
 
  single = {}
  for target in chemblTargets:
    if target in pfamDict:
      if len(pfamDict[target]['domains']) == 1:
        domain = pfamDict[target]['domains'][0]
        ligands = getLigands.getLigandsForTarget(target, release, user, pword, host, port)
        ligands = filterForTarget.filterForTarget(ligands, threshold)
        for ligand in ligands:
          smiles = ligand[0]
          aff = ligand[1]
          molregno = ligand[2]
          actId = ligand[3]
          try:
            single[domain][molregno]['pAfnty'].append(aff)
            single[domain][molregno]['target'].append(target)
	    single[domain][molregno]['actId'].append(actId)
            single[domain][molregno]['smiles']=smiles
          except KeyError:
            try:
              single[domain][molregno] = {}
              single[domain][molregno]['pAfnty']=[]
              single[domain][molregno]['target']=[]
	      single[domain][molregno]['actId'] = []
              single[domain][molregno]['smiles']=smiles
              single[domain][molregno]['pAfnty'].append(aff)
              single[domain][molregno]['target'].append(target)
              single[domain][molregno]['actId'].append(actId)
            except KeyError:
              single[domain]={}
              single[domain][molregno] = {}
              single[domain][molregno]['pAfnty']=[]
              single[domain][molregno]['target']=[]
              single[domain][molregno]['actId'] = []
              single[domain][molregno]['smiles']=smiles
              single[domain][molregno]['pAfnty'].append(aff)
              single[domain][molregno]['target'].append(target)
              single[domain][molregno]['actId'].append(actId)
  
  outfile = open('data/singleDict_pKi%s_%s.pkl' %(int(threshold), release),'w')
  pickle.dump(single, outfile)
  outfile.close()  

  return single