Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Módulo: consulta.py
- #------------------------------------------------------------------------------
- def interacciones(cnx, file):
- """Función que a partir de la lista de proteínas que se han insertado en la
- BD, va consultando las interacciones entre proteínas. Solo se insertarán
- aquellas de las que se disponga información de las dos proteínas.
- """
- cnx.autocommit = True
- cursor = cnx.cursor(buffered = True)
- mysql_query = ("""
- SELECT protein.uniprot_id
- FROM edsssdb.protein;
- """)
- #Consulta a la base de datos edsssdb que devuelve los identificadores de los
- #las proteínas que han sido añadidas previamente.
- cursor.execute(mysql_query)
- data=cursor.fetchall()
- file.write("\nCargando tabla p_interacts_with_p: ")
- prots = []
- for row in data:
- prot = row[0]
- prots.append(prot)
- import time
- from bioservices import PSICQUIC
- inters = []
- for i in range(len(prots)):
- p = prots[i]
- identif = 'identifier:' + str(p)
- if i == 3000 or i == 6000 or i == 9000:
- time.sleep(7)
- s = PSICQUIC(verbose = False)
- q = s.query("intact", identif, "tab25")
- if q!=[['']]:
- for i in range(len(q)):
- idA = q[i][0]
- idA = idA[10:len(idA)]
- idB = q[i][1]
- idB = idB[10:len(idB)]
- score = q[i][14]
- score = score[(len(score)-4):len(score)]
- if idA in prots and idB in prots:
- #Hay que comprobar que hemos insertado previamente las
- #2 proteinas. Si no tenemos informacion de las dos en la
- #BD no vamos a incluir la interaccion.
- if not [idA,idB] in inters and not [idB,idA] in inters:
- #La interaccion p1-p2 es la misma que p2-p1, con lo que
- #tenemos que tener en cuenta esto para no introducir
- #duplicados.
- inters.append([idA,idB])
- try:
- insertar_edsssdb.inserta_en_p_interacts_with_p(idA, idB, score, cnx)
- except mysql.connector.Error as err:
- file.write(str(err.msg))
- file.write('OK')
- #------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement