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))

返回載入的記錄數量。