Source code for trifusion.ortho.orthomclInstallSchema

#!/usr/bin/python2
# -*- coding: utf-8 -*-

import sqlite3 as lite
import os

##############################################################


[docs]def createSimilarSequencesTable(cur): cur.execute("CREATE TABLE SimilarSequences (\ QUERY_ID VARCHAR(60),\ SUBJECT_ID VARCHAR(60),\ QUERY_TAXON_ID VARCHAR(40),\ SUBJECT_TAXON_ID VARCHAR(40),\ EVALUE_MANT FLOAT,\ EVALUE_EXP INT,\ PERCENT_IDENTITY FLOAT,\ PERCENT_MATCH FLOAT,\ PRIMARY KEY(QUERY_ID, SUBJECT_ID)\ )") cur.execute("CREATE INDEX ss_qtaxexp_ix\ ON SimilarSequences(query_id, subject_taxon_id,\ evalue_exp, evalue_mant,\ query_taxon_id, subject_id)") cur.execute("CREATE INDEX ss_seqs_ix\ ON SimilarSequences(query_id, subject_id,\ evalue_exp, evalue_mant, percent_match)")
##############################################################
[docs]def createInParalogTable (cur): cur.execute("CREATE TABLE InParalog (\ SEQUENCE_ID_A VARCHAR(60),\ SEQUENCE_ID_B VARCHAR(60),\ TAXON_ID VARCHAR(40),\ UNNORMALIZED_SCORE FLOAT,\ NORMALIZED_SCORE FLOAT)") cur.execute("CREATE INDEX inparalog_seqa_ix\ ON InParalog(sequence_id_a)") cur.execute("CREATE INDEX inparalog_seqb_ix\ ON InParalog(sequence_id_b)")
##############################################################
[docs]def createOrthologTable(cur): cur.execute("CREATE TABLE Ortholog (\ SEQUENCE_ID_A VARCHAR(60),\ SEQUENCE_ID_B VARCHAR(60),\ TAXON_ID_A VARCHAR(40),\ TAXON_ID_B VARCHAR(40),\ UNNORMALIZED_SCORE FLOAT,\ NORMALIZED_SCORE FLOAT)") cur.execute("CREATE INDEX ortholog_seq_a_ix\ ON Ortholog(sequence_id_a)") cur.execute("CREATE INDEX ortholog_seq_b_ix\ ON Ortholog (sequence_id_b)")
##############################################################
[docs]def createCoOrthologTable(cur): cur.execute("CREATE TABLE CoOrtholog (\ SEQUENCE_ID_A VARCHAR(60),\ SEQUENCE_ID_B VARCHAR(60),\ TAXON_ID_A VARCHAR(40),\ TAXON_ID_B VARCHAR(40),\ UNNORMALIZED_SCORE FLOAT,\ NORMALIZED_SCORE FLOAT)") cur.execute("CREATE INDEX coortholog_seq_a_ix\ ON CoOrtholog(sequence_id_a)") cur.execute("CREATE INDEX coortholog_seq_b_ix\ ON CoOrtholog (sequence_id_b)")
##############################################################
[docs]def createInterTaxonMatchView(cur): cur.execute("DROP VIEW IF EXISTS InterTaxonMatch") cur.execute("CREATE VIEW InterTaxonMatch\ AS SELECT ss.query_id, ss.subject_id, ss.subject_taxon_id,\ ss.evalue_mant, ss.evalue_exp\ FROM SimilarSequences ss\ WHERE ss.subject_taxon_id != ss.query_taxon_id")
##############################################################
[docs]def execute(out_dir): # Remove any previous DB if os.path.exists(os.path.join(out_dir, "orthoDB.db")): os.remove(os.path.join(out_dir, "orthoDB.db")) con = lite.connect(os.path.join(out_dir, "orthoDB.db")) with con: cur = con.cursor() createSimilarSequencesTable(cur) createInParalogTable(cur) createOrthologTable(cur) createCoOrthologTable(cur) createInterTaxonMatchView(cur)
if __name__ == "__main__": execute("./") __author__ = "Fernando Alves and Diogo N. Silva"