1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/usr/bin/python
# Import des modules python pour postgresql
import psycopg2
import psycopg2.extras
# Programme de lecture du fichier biomart.txt
# de decoupage des informations pour les mettres dans la table Position
# de notre base de donnees.
# Programme Principal
if __name__ == '__main__':
# Entrer le nom du schema de la base!
schema = raw_input("Entrez le nom du schema de la base [public] : ")
# Par defaut le nom du schema sera cours
if schema == "": # l'utilisateur n'a rien rentre
schema="public" # alors schema=public par defaut
geneFileName = raw_input("Entrez le nom du fichier contenant \
la liste des genes [biomart.txt] : ")
# Par defaut le nom du fichier a lire sera gene.txt
if geneFileName == "": # l'utilisateur n'a rien rentre
geneFileName="biomart.txt" # alors genefilename=valeur par defaut
print geneFileName
# On ouvre le fichier que l'on veut lire!
geneFile = open(geneFileName,"r") # r indique lecture
# Lecture d'un ligne dans le fichier des genes
# Lecture de la premiere ligne avec les noms de colonnes
ligne = geneFile.readline()
# connection a la base de donnees pour permettre l'insertion des genes
try:
# Connecteur a la base de donnees
connecteur = psycopg2.connect("dbname='ma_base' host='localhost' user='postgres' password='slivoide'")
cur = connecteur.cursor(cursor_factory=psycopg2.extras.DictCursor)
except Exception, e:
print "<h1>Erreur lors de l'execute</h1>"
print e.pgcode
print e.pgerror
# Lecture des lignes suivantes avec les informations sur les positions.
for ligne in geneFile.readlines():
ligne = ligne.rstrip('\n') # on retire le dernier caractere (retour chariot)
cols = ligne.split(' ') # Decoupage de la ligne pour recuperer les differents elements
idensembl = cols[0] # Colonne 0 le nom du gene
numerochr = cols[1] # Colonne 1 le numero de chromosome
debut = cols[2]
fin = cols[3]
sens = cols[7]
#
requetePosition = "insert into "+schema+".position (numerochr,idensembl,debut,fin,sens) values ('"+str(numerochr)+"','"+str(idensembl)+"','"+str(debut)+"','"+str(fin)+"','"+str(sens)+"')";
# Maintenant on peut inserer les positions
cur.execute(requetePosition)
connecteur.commit()
geneFile.close(); |
Partager