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
|
class sqlite_manager:
def __init__(self, result):
"""
"""
self.db_path=result+"mycarn_result.db"
def createSQLdb(self):
"""
"""
#Delete previous database
if(os.path.isfile(self.db_path)):
os.remove(self.db_path)
#Connect database
self.connectDB()
#Create RNA database
self.cur.executescript("""
create table rna (rnaid integer primary key, name varchar unique, length integer, type integer);
create table soft (softid integer primary key, name varchar);
create table interact (interactid integer primary key, softid REFERENCES soft(softid), srnaid REFERENCES rna(rnaid), mrnaid REFERENCES rna(rnaid));
create table contact (contactid integer primary key, interactid REFERENCES interact(interactid), srna_begin integer, srna_end integer, mrna_begin integer, mrna_end integer, score real);
""")
#Commit database
self.conn.commit()
#Disconnect database
self.disconnectDB()
def connectDB(self):
"""
Connect to the database
"""
self.conn=sqlite3.connect(self.db_path,check_same_thread=False,isolation_level=None)
#connect
self.cur=self.conn.cursor()
def disconnectDB(self):
"""
Disconnect the database
"""
#close cursor
self.cur.close()
#Close connection
self.conn.close()
def setSoft(self,name):
"""
"""
self.cur.execute("insert into soft(name) values(?)",(name,))
lastrowid=self.cur.lastrowid
self.conn.commit()
return lastrowid
def setRNA(self,RNA_inf, type):
"""
"""
#Connect database
self.connectDB()
try:
RNA_infReader=csv.reader(open(RNA_inf, 'rb'), delimiter='\t')
#passage de l'entete
RNA_infReader.next()
for i in RNA_infReader:
self.cur.execute("insert into rna(name,length,type) values(?,?,?)",(i[0],int(i[1]),type))
self.conn.commit()
except IOError:
sys.exit("Error : can not open file %s"%RNA_inf)
#Disconnect database
self.disconnectDB() |
Partager