Bio.SeqUtils 套件

子模組

模組內容

用於處理序列的各種函式。

Bio.SeqUtils.gc_fraction(seq, ambiguous='remove')

計算序列中的 G+C 百分比(介於 0 和 1 之間的浮點數)。

處理混合大小寫的序列。在此上下文中,模糊核苷酸是與 ATCGSWU 不同的核苷酸(S 是 G 或 C,而 W 是 A 或 T)。

如果 ambiguous 等於 “remove”(預設值),則只會計算 GCS,並且只會在計算序列長度時包含 ACTGSWU。相當於在計算 GC 含量之前移除集合 BDHKMNRVXY 中的所有字元,因為這些模糊核苷酸中的每一個都可以在 (A,T) 或 (C,G) 中。

如果 ambiguous 等於 “ignore”,則只會將明確的核苷酸 (GCS) 視為計入 GC 百分比,但會在計算序列長度時包含所有模糊和明確的核苷酸。

如果 ambiguous 等於 “weighted”,則會在計算模糊字元時使用「平均」值,例如,G 和 C 會計為 1,N 和 X 會計為 0.5,D 會計為 0.33 等。如需完整列表,請參閱 Bio.SeqUtils._gc_values。

對於 ambiguous 參數的任何其他值,會引發 ValueError。

>>> from Bio.SeqUtils import gc_fraction
>>> seq = "ACTG"
>>> print(f"GC content of {seq} : {gc_fraction(seq):.2f}")
GC content of ACTG : 0.50

使用 RNA 序列的範例

>>> seq = "GGAUCUUCGGAUCU"
>>> print(f"GC content of {seq} : {gc_fraction(seq):.2f}")
GC content of GGAUCUUCGGAUCU : 0.50

就計算 GC 含量而言,S 和 W 是模糊的。

>>> seq = "ACTGSSSS"
>>> gc = gc_fraction(seq, "remove")
>>> print(f"GC content of {seq} : {gc:.2f}")
GC content of ACTGSSSS : 0.75
>>> gc = gc_fraction(seq, "ignore")
>>> print(f"GC content of {seq} : {gc:.2f}")
GC content of ACTGSSSS : 0.75
>>> gc = gc_fraction(seq, "weighted")
>>> print(f"GC content with ambiguous counting: {gc:.2f}")
GC content with ambiguous counting: 0.75

一些使用模糊核苷酸的範例。

>>> seq = "ACTGN"
>>> gc = gc_fraction(seq, "ignore")
>>> print(f"GC content of {seq} : {gc:.2f}")
GC content of ACTGN : 0.40
>>> gc = gc_fraction(seq, "weighted")
>>> print(f"GC content with ambiguous counting: {gc:.2f}")
GC content with ambiguous counting: 0.50
>>> gc = gc_fraction(seq, "remove")
>>> print(f"GC content with ambiguous removing: {gc:.2f}")
GC content with ambiguous removing: 0.50

模糊核苷酸也會從序列的長度中移除。

>>> seq = "GDVV"
>>> gc = gc_fraction(seq, "ignore")
>>> print(f"GC content of {seq} : {gc:.2f}")
GC content of GDVV : 0.25
>>> gc = gc_fraction(seq, "weighted")
>>> print(f"GC content with ambiguous counting: {gc:.4f}")
GC content with ambiguous counting: 0.6667
>>> gc = gc_fraction(seq, "remove")
>>> print(f"GC content with ambiguous removing: {gc:.2f}")
GC content with ambiguous removing: 1.00

請注意,這會對空序列傳回零。

Bio.SeqUtils.GC123(seq)

計算 G+C 含量:總計,針對第一、第二和第三個位置。

針對整個序列和三個密碼子位置,傳回四個浮點數(介於 0 和 100 之間的百分比)的元組。例如:

>>> from Bio.SeqUtils import GC123
>>> GC123("ACTGTN")
(40.0, 50.0, 50.0, 0.0)

處理混合大小寫的序列,但不處理模糊核苷酸。

Bio.SeqUtils.GC_skew(seq, window=100)

計算序列中多個視窗的 GC 偏斜度 (G-C)/(G+C)。

傳回由序列長度和視窗大小控制的比率(浮點數)列表。

透過處理零除法錯誤,對不含任何 G/C 的視窗傳回 0。

不查看任何模糊核苷酸。

Bio.SeqUtils.xGC_skew(seq, window=1000, zoom=100, r=300, px=100, py=100)

計算並繪製正常和累積的 GC 偏斜度(圖形!!!)。

在序列中搜尋 DNA 子序列,傳回 [子序列、位置] 的列表。

使用模糊值(例如 N = A 或 T 或 C 或 G,R = A 或 G 等),僅在正向鏈上搜尋。

Bio.SeqUtils.seq3(seq, custom_map=None, undef_code='Xaa')

將蛋白質序列從單字母代碼轉換為三字母代碼。

唯一的必要輸入引數 ‘seq’ 應該是使用單字母代碼的蛋白質序列,可以是 Python 字串或 Seq 或 MutableSeq 物件。

此函式會以使用三字母胺基酸代碼的字串形式傳回胺基酸序列。輸出遵循 IUPAC 標準(包括「Asx」的模糊字元 B、「Xle」的 J 和「Xaa」的 X,以及「Sel」的 U 和「Pyl」的 O)加上給定為星號的終止符號「Ter」。任何未知的字元(包括可能的間隙字元),預設會變更為 ‘Xaa’。

例如:

>>> from Bio.SeqUtils import seq3
>>> seq3("MAIVMGRWKGAR*")
'MetAlaIleValMetGlyArgTrpLysGlyAlaArgTer'

您可以使用字典 “custom_map” 引數(預設為 {‘*’: ‘Ter’})設定密碼子終止碼的自訂轉譯,例如:

>>> seq3("MAIVMGRWKGAR*", custom_map={"*": "***"})
'MetAlaIleValMetGlyArgTrpLysGlyAlaArg***'

您也可以使用 “undef_code” 引數設定非胺基酸字元(例如 ‘-’)的自訂轉譯,例如:

>>> seq3("MAIVMGRWKGA--R*", undef_code='---')
'MetAlaIleValMetGlyArgTrpLysGlyAla------ArgTer'

如果未給定,“undef_code” 預設為 “Xaa”,例如:

>>> seq3("MAIVMGRWKGA--R*")
'MetAlaIleValMetGlyArgTrpLysGlyAlaXaaXaaArgTer'

此函式受到 BioPerl 的 seq3 的啟發。

Bio.SeqUtils.seq1(seq, custom_map=None, undef_code='X')

將蛋白質序列從三字母代碼轉換為單字母代碼。

唯一的必要輸入引數 ‘seq’ 應該是使用三字母代碼的蛋白質序列,可以是 Python 字串或 Seq 或 MutableSeq 物件。

此函式會以使用單字母胺基酸代碼的字串形式傳回胺基酸序列。輸出遵循 IUPAC 標準(包括「Asx」的模糊字元 “B”、“Xle” 的 “J”、“Xaa” 的 “X”、“Sel” 的 “U” 和 “Pyl” 的 “O”)加上給定 “Ter” 代碼的終止符號 “*”。任何未知的字元(包括可能的間隙字元),預設會變更為 ‘-’。

例如:

>>> from Bio.SeqUtils import seq1
>>> seq1("MetAlaIleValMetGlyArgTrpLysGlyAlaArgTer")
'MAIVMGRWKGAR*'

輸入不區分大小寫,例如:

>>> from Bio.SeqUtils import seq1
>>> seq1("METalaIlEValMetGLYArgtRplysGlyAlaARGTer")
'MAIVMGRWKGAR*'

您可以使用字典 “custom_map” 引數(預設為 {‘Ter’: ‘*’})設定密碼子終止碼的自訂轉譯,例如:

>>> seq1("MetAlaIleValMetGlyArgTrpLysGlyAla***", custom_map={"***": "*"})
'MAIVMGRWKGA*'

您也可以使用 “undef_code” 引數設定非胺基酸字元(例如 ‘-’)的自訂轉譯,例如:

>>> seq1("MetAlaIleValMetGlyArgTrpLysGlyAla------ArgTer", undef_code='?')
'MAIVMGRWKGA??R*'

如果未給定,“undef_code” 預設為 “X”,例如:

>>> seq1("MetAlaIleValMetGlyArgTrpLysGlyAla------ArgTer")
'MAIVMGRWKGAXXR*'
Bio.SeqUtils.molecular_weight(seq, seq_type='DNA', double_stranded=False, circular=False, monoisotopic=False)

以浮點數形式計算 DNA、RNA 或蛋白質序列的分子量。

只允許明確的字母。核苷酸序列會假定有 5’ 磷酸。

引數
  • seq:字串、Seq 或 SeqRecord 物件。

  • seq_type:預設值是假設為 DNA;使用字串 “DNA”、“RNA” 或 “protein” 覆寫此設定。

  • double_stranded:計算雙股分子的質量?

  • circular:分子是環狀的(沒有末端)嗎?

  • monoisotopic:使用單一同位素質量表?

>>> print("%0.2f" % molecular_weight("AGC"))
949.61
>>> print("%0.2f" % molecular_weight(Seq("AGC")))
949.61

不過,最好明確一點 - 例如使用字串

>>> print("%0.2f" % molecular_weight("AGC", "DNA"))
949.61
>>> print("%0.2f" % molecular_weight("AGC", "RNA"))
997.61
>>> print("%0.2f" % molecular_weight("AGC", "protein"))
249.29
Bio.SeqUtils.six_frame_translations(seq, genetic_code=1)

傳回顯示 6 個讀碼框轉譯和 GC 含量的漂亮字串。

看起來不錯的 6 個讀碼框轉譯和 GC 含量 - 來自 xbbtools 的程式碼,類似於 DNA Strider 的六個讀碼框轉譯

>>> from Bio.SeqUtils import six_frame_translations
>>> print(six_frame_translations("AUGGCCAUUGUAAUGGGCCGCUGA"))
GC_Frame: a:5 t:0 g:8 c:5
Sequence: auggccauug ... gggccgcuga, 24 nt, 54.17 %GC


1/1
  G  H  C  N  G  P  L
 W  P  L  *  W  A  A
M  A  I  V  M  G  R  *
auggccauuguaaugggccgcuga   54 %
uaccgguaacauuacccggcgacu
A  M  T  I  P  R  Q
 H  G  N  Y  H  A  A  S
  P  W  Q  L  P  G  S

class Bio.SeqUtils.CodonAdaptationIndex(sequences, table=standard_dna_table)

基底類別: dict

一個密碼子適應性指數 (CAI) 的實作。

實作由 Sharp 和 Li 描述的密碼子適應性指數 (CAI) (Nucleic Acids Res. 1987 Feb 11;15(3):1281-95)。

__init__(sequences, table=standard_dna_table)

從編碼 DNA 序列產生密碼子適應性表格。

從提供的密碼子 DNA 序列計算每個密碼子的相對適應性 (w_ij),如 Sharp & Li (Nucleic Acids Research 15(3): 1281-1295 (1987)) 所定義。

引數
  • sequences: 一個可迭代的 DNA 序列集合,可以是純文字字串、Seq 物件、MutableSeq 物件或 SeqRecord 物件。

    字串、Seq 物件、MutableSeq 物件或 SeqRecord 物件。

  • table: 一個定義遺傳碼的 Bio.Data.CodonTable.CodonTable 物件。

    預設使用標準遺傳碼。

calculate(sequence)

計算並傳回所提供的 DNA 序列的 CAI (浮點數)。

optimize(sequence, seq_type='DNA', strict=True)

只傳回使用偏好密碼子的新 DNA 序列。

使用 CodonAdaptationIndex 物件定義的密碼子適應性表格,產生僅使用偏好密碼子的 DNA 序列。在設計用於轉殖蛋白表達或密碼子優化蛋白(如螢光蛋白)的 DNA 序列時可能很有用。

引數
  • sequence: 要進行密碼子優化的 DNA、RNA 或蛋白質序列。

    以 str、Seq 或 SeqRecord 物件的形式提供。

  • seq_type: 指定所提供序列類型的字串。

    選項為 “DNA”、“RNA” 和 “protein”。預設值為 “DNA”。

  • strict: 決定當某個胺基酸有兩個同等偏好的密碼子時,是否應引發例外。

    當某個胺基酸有兩個同等偏好的密碼子時,是否應引發例外。

回傳值

Seq 物件,其中包含 DNA 編碼與 sequence 參數相同的蛋白質,但僅使用密碼子適應性指數定義的偏好密碼子。如果有多個密碼子同等偏好,則會發出警告,並選擇一個密碼子用於優化序列中。

__str__()

傳回 str(self)。