BioSQL.BioSeqDatabase 模組
連接 BioSQL 資料庫並從中載入類似 Biopython 的物件。
這提供了從關聯式資料庫載入生物物件的介面,並與 BioSQL 標準相容。
- BioSQL.BioSeqDatabase.open_database(driver='MySQLdb', **kwargs)
載入現有的 BioSQL 風格資料庫。
此函式是獲取資料庫連線最簡單的方式,其功能類似
from BioSQL import BioSeqDatabase server = BioSeqDatabase.open_database(user="root", db="minidb")
- 參數
driver - 用於連線的資料庫驅動程式名稱。驅動程式應實作 python DB API。預設使用 MySQLdb 驅動程式。
user - 連線到資料庫的使用者名稱。
password, passwd - 連線密碼
host - 資料庫的主機名稱
database 或 db - 資料庫名稱
- class BioSQL.BioSeqDatabase.DBServer(conn, module, module_name=None)
基底:
object
代表一個包含命名空間 (子資料庫) 的 BioSQL 資料庫。
此物件的行為類似 Python 字典,可以將每個命名空間(由 biodatabase 表格中的一列定義)視為 BioSeqDatabase 物件存取。
- __init__(conn, module, module_name=None)
建立 DBServer 物件。
- 參數
conn - 資料庫連線物件
module - 用於建立資料庫連線的模組
module_name - 模組的可選名稱。預設值:module.__name__
通常您不會想要自己建立 DBServer 物件。請改用 open_database 函式,該函式會傳回 DBServer 的實例。
- __repr__()
傳回類別名稱和資料庫連線的簡短描述。
- __getitem__(name)
傳回 BioSeqDatabase 物件。
- 參數
name - BioSeqDatabase 的名稱
- __len__()
傳回此資料庫中命名空間(子資料庫)的數量。
- __contains__(value)
檢查此資料庫中是否有命名空間(子資料庫)。
- __iter__()
迭代資料庫中的命名空間(子資料庫)。
- keys()
迭代資料庫中的命名空間(子資料庫)。
- values()
迭代資料庫中的 BioSeqDatabase 物件。
- items()
迭代資料庫中的 (命名空間,BioSeqDatabase)。
- __delitem__(name)
移除命名空間及其所有條目。
- new_database(db_name, authority=None, description=None)
在伺服器中新增資料庫並傳回它。
- load_database_sql(sql_file)
將資料庫結構描述載入指定的資料庫。
這用於在首次建立資料庫時建立表格等。sql_file 應指定包含 SQL 條目以建立表格的檔案完整路徑。
- commit()
將目前的交易提交到資料庫。
- rollback()
回復目前的交易。
- close()
關閉連線。不再可能進行任何活動。
- class BioSQL.BioSeqDatabase.Adaptor(conn, dbutils, wrap_cursor=False)
基底:
object
資料庫連線和游標的高階封裝器。
BioSQL 中的大多數資料庫呼叫都是透過這個適配器類別間接完成的。這提供了用於提取資料和執行 sql 的輔助方法。
- __init__(conn, dbutils, wrap_cursor=False)
建立 Adaptor 物件。
- 參數
conn - 資料庫連線
dbutils - BioSQL.DBUtils 物件
wrap_cursor - 可選,是否封裝游標物件
- last_id(table)
傳回所選表格的最後一列 id。
- autocommit(y=True)
設定自動提交模式。True 值啟用;False 值停用。
- commit()
提交目前的交易。
- rollback()
回復目前的交易。
- close()
關閉連線。不再可能進行任何活動。
- fetch_dbid_by_dbname(dbname)
使用子資料庫的名稱傳回其內部 id。
- fetch_seqid_by_display_id(dbid, name)
使用序列的顯示 id 傳回其內部 id。
- 參數
dbid - 子資料庫的內部 id
name - 序列的名稱。對應於 SQL 結構描述的 bioentry 表格的名稱欄位
- fetch_seqid_by_accession(dbid, name)
使用序列的登錄號傳回其內部 id。
- 參數
dbid - 子資料庫的內部 id
name - 序列的登錄號。對應於 SQL 結構描述的 bioentry 表格的登錄號欄位
- fetch_seqids_by_accession(dbid, name)
使用登錄號傳回內部 id 的列表。
- 參數
dbid - 子資料庫的內部 id
name - 序列的登錄號。對應於 SQL 結構描述的 bioentry 表格的登錄號欄位
- fetch_seqid_by_version(dbid, name)
使用序列的登錄號和版本傳回其內部 id。
- 參數
dbid - 子資料庫的內部 id
name - 包含版本號的序列登錄號。必須對應於 <登錄號>.<版本>
- fetch_seqid_by_identifier(dbid, identifier)
使用序列的識別符號回傳其內部 ID。
- 參數
dbid - 子資料庫的內部 id
identifier - 序列的識別符號。對應於 SQL 綱要中 bioentry 表格的 identifier 欄位。
- list_biodatabase_names()
回傳所有子資料庫的列表。
- list_bioentry_ids(dbid)
回傳子資料庫中所有序列的內部 ID 列表。
- 參數
dbid - 子資料庫的內部 ID
- list_bioentry_display_ids(dbid)
回傳子資料庫中所有序列名稱的列表。
- 參數
dbid - 子資料庫的內部 ID
- list_any_ids(sql, args)
根據 SQL 查詢語句回傳 ID。
此方法假設給定的 SQL 查詢語句會執行 SELECT 並回傳一個項目列表。此方法會將它們從二維列表中解析出來,並以列表形式回傳。
- execute_one(sql, args=None)
執行回傳 1 筆記錄的 SQL 查詢語句,並回傳該記錄。
- execute(sql, args=None)
僅執行 SQL 指令。
- executemany(sql, args)
執行多個 SQL 指令。
- get_subseq_as_string(seqid, start, end)
回傳序列的子字串。
- 參數
seqid - 序列的內部 ID
start - 序列的起始位置,從 0 開始索引
end - 序列的結束位置
- execute_and_fetch_col0(sql, args=None)
回傳第一欄的數值列表。
- execute_and_fetchall(sql, args=None)
回傳所有列的元組列表。
- class BioSQL.BioSeqDatabase.MysqlConnectorAdaptor(conn, dbutils, wrap_cursor=False)
繼承:
Adaptor
一個為 MySQL 介面修復過的 BioSQL 適配器類別。
BioSQL 由於 mysql-connector-python 資料庫連接器回傳 bytearray 物件而失敗。此適配器類別會清除 bytearray 和位元組字串的回傳,並將其轉換為字串物件。此適配器類別是為了回應 mysql-connector-python 套件 2.0.0 版本中新增的不相容變更而建立的。
- execute_one(sql, args=None)
執行回傳 1 筆記錄的 SQL 查詢語句,並回傳該記錄。
- execute_and_fetch_col0(sql, args=None)
回傳第一欄的數值列表。
- execute_and_fetchall(sql, args=None)
回傳所有列的元組列表。
- class BioSQL.BioSeqDatabase.BioSeqDatabase(adaptor, name)
基底:
object
代表 BioSQL 資料庫中的一個命名空間(子資料庫)。
亦即 biodatabase 表格中的一列,以及所有與其關聯的 bioentry 表格中的列。
- __init__(adaptor, name)
建立一個 BioDatabase 物件。
- 參數
adaptor - 一個 BioSQL.Adaptor 物件
name - 子資料庫(命名空間)的名稱
- __repr__()
回傳 BioSeqDatabase 的簡短摘要。
- get_Seq_by_id(name)
根據名稱取得 DBSeqRecord 物件。
範例:seq_rec = db.get_Seq_by_id(‘ROA1_HUMAN’)
此方法的名稱具有誤導性,因為它回傳的是 DBSeqRecord 而不是 Seq 物件,並且推測是為了鏡像 BioPerl。
- get_Seq_by_acc(name)
根據登錄編號取得 DBSeqRecord 物件。
範例:seq_rec = db.get_Seq_by_acc(‘X77802’)
此方法的名稱具有誤導性,因為它回傳的是 DBSeqRecord 而不是 Seq 物件,並且推測是為了鏡像 BioPerl。
- get_Seq_by_ver(name)
根據版本號碼取得 DBSeqRecord 物件。
範例:seq_rec = db.get_Seq_by_ver(‘X77802.1’)
此方法的名稱具有誤導性,因為它回傳的是 DBSeqRecord 而不是 Seq 物件,並且推測是為了鏡像 BioPerl。
- get_Seqs_by_acc(name)
根據登錄編號取得 DBSeqRecord 物件的列表。
範例:seq_recs = db.get_Seq_by_acc(‘X77802’)
此方法的名稱具有誤導性,因為它回傳的是 DBSeqRecord 物件的列表,而不是 Seq 物件的列表,並且推測是為了鏡像 BioPerl。
- __getitem__(key)
回傳子資料庫中一個序列的 DBSeqRecord。
- 參數
key - 序列的內部 ID
- __delitem__(key)
移除一個條目及其所有註釋。
- __len__()
回傳此命名空間(子資料庫)中的記錄數。
- __contains__(value)
檢查主(內部)ID 是否在此命名空間(子資料庫)中。
- __iter__()
迭代遍歷 ID (可能在此資料庫外無意義)。
- keys()
迭代遍歷 ID (可能在此資料庫外無意義)。
- values()
迭代遍歷命名空間(子資料庫)中的 DBSeqRecord 物件。
- items()
迭代遍歷命名空間(子資料庫)的 (id, DBSeqRecord) 配對。
- lookup(**kwargs)
使用可接受的識別符返回 DBSeqRecord。
- 參數
kwargs - 單一鍵值對,其中鍵可以是 primary_id、gi、display_id、name、accession 或 version 其中之一。
- load(record_iterator, fetch_NCBI_taxonomy=False)
將一組 SeqRecord 載入 BioSQL 資料庫。
record_iterator 可以是 SeqRecord 物件的列表,或是一個返回 SeqRecord 物件的迭代器物件(例如 Bio.SeqIO.parse() 函數的輸出),將用於填充資料庫。
fetch_NCBI_taxonomy 是一個布林標誌,用於允許或阻止連線到 NCBI 伺服器上的分類資料庫(透過 Bio.Entrez),以獲取每個 SeqRecord 的詳細分類資訊。
範例
from Bio import SeqIO count = db.load(SeqIO.parse(open(filename), format))
返回載入的記錄數量。