Последовательность — это серия букв, используемых для представления белка, ДНК или РНК организма. Он представлен классом Seq. Класс Seq определен в модуле Bio.Seq.
Давайте создадим простую последовательность в Biopython, как показано ниже —
>>> from Bio.Seq import Seq >>> seq = Seq("AGCT") >>> seq Seq('AGCT') >>> print(seq) AGCT
Здесь мы создали простую белковую последовательность AGCT, и каждая буква представляет собой ланин, G- лизин, цистеин и т- хреонин.
Каждый объект Seq имеет два важных атрибута:
-
данные — фактическая последовательность строк (AGCT)
-
алфавит — используется для представления типа последовательности. например, последовательность ДНК, последовательность РНК и т. д. По умолчанию она не представляет какую-либо последовательность и носит общий характер.
данные — фактическая последовательность строк (AGCT)
алфавит — используется для представления типа последовательности. например, последовательность ДНК, последовательность РНК и т. д. По умолчанию она не представляет какую-либо последовательность и носит общий характер.
Алфавитный модуль
Объекты Seq содержат атрибут Alphabet для указания типа последовательности, букв и возможных операций. Это определяется в модуле Bio.Alphabet. Алфавит может быть определен как ниже —
>>> from Bio.Seq import Seq >>> myseq = Seq("AGCT") >>> myseq Seq('AGCT') >>> myseq.alphabet Alphabet()
Алфавитный модуль предоставляет ниже классы для представления различных типов последовательностей. Алфавит — базовый класс для всех типов алфавитов.
SingleLetterAlphabet — Общий алфавит с буквами размера один. Это происходит от Алфавита, и все другие типы алфавитов происходят из него.
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import single_letter_alphabet >>> test_seq = Seq('AGTACACTGGT', single_letter_alphabet) >>> test_seq Seq('AGTACACTGGT', SingleLetterAlphabet())
ProteinAlphabet — Общий однобуквенный белковый алфавит.
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_protein >>> test_seq = Seq('AGTACACTGGT', generic_protein) >>> test_seq Seq('AGTACACTGGT', ProteinAlphabet())
NucleotideAlphabet — Общий однобуквенный нуклеотидный алфавит.
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_nucleotide >>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq Seq('AGTACACTGGT', NucleotideAlphabet())
DNAAlphabet — Общий однобуквенный алфавит ДНК.
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_dna >>> test_seq = Seq('AGTACACTGGT', generic_dna) >>> test_seq Seq('AGTACACTGGT', DNAAlphabet())
RNAAlphabet — Общий однобуквенный алфавит РНК.
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_rna >>> test_seq = Seq('AGTACACTGGT', generic_rna) >>> test_seq Seq('AGTACACTGGT', RNAAlphabet())
Модуль Biopython, Bio.Alphabet.IUPAC предоставляет базовые типы последовательностей, определенные сообществом IUPAC. Он содержит следующие классы —
-
ИЮПАКПротеин (белок) — белок ИЮПАК алфавит из 20 стандартных аминокислот.
-
ExtendedIUPACProtein (extended_protein) — расширенный заглавный алфавит с одним буквой IUPAC, включая X.
-
IUPACAmbiguousDNA (ambiguous_dna) — Прописная IUPAC неоднозначная ДНК.
-
IUPACUnambiguousDNA (unambiguous_dna) — Прописная IUPAC однозначная ДНК (GATC).
-
ExtendedIUPACDNA (extended_dna) — расширенный алфавит ДНК IUPAC.
-
IUPACAmbiguousRNA (ambiguous_rna) — Прописная IUPAC неоднозначная РНК.
-
IUPACUnambiguousRNA (однозначная_рна) — прописная IUPAC однозначная РНК (GAUC).
ИЮПАКПротеин (белок) — белок ИЮПАК алфавит из 20 стандартных аминокислот.
ExtendedIUPACProtein (extended_protein) — расширенный заглавный алфавит с одним буквой IUPAC, включая X.
IUPACAmbiguousDNA (ambiguous_dna) — Прописная IUPAC неоднозначная ДНК.
IUPACUnambiguousDNA (unambiguous_dna) — Прописная IUPAC однозначная ДНК (GATC).
ExtendedIUPACDNA (extended_dna) — расширенный алфавит ДНК IUPAC.
IUPACAmbiguousRNA (ambiguous_rna) — Прописная IUPAC неоднозначная РНК.
IUPACUnambiguousRNA (однозначная_рна) — прописная IUPAC однозначная РНК (GAUC).
Рассмотрим простой пример для класса IUPACProtein, как показано ниже —
>>> from Bio.Alphabet import IUPAC >>> protein_seq = Seq("AGCT", IUPAC.protein) >>> protein_seq Seq('AGCT', IUPACProtein()) >>> protein_seq.alphabet
Кроме того, Biopython предоставляет все данные конфигурации, связанные с биоинформатикой, через модуль Bio.Data. Например, IUPACData.protein_letters имеет возможные буквы алфавита IUPACProtein.
>>> from Bio.Data import IUPACData >>> IUPACData.protein_letters 'ACDEFGHIKLMNPQRSTVWY'
Основные операции
В этом разделе кратко объясняются все основные операции, доступные в классе Seq. Последовательности похожи на строки Python. Мы можем выполнять операции со строками Python, такие как нарезка, подсчет, объединение, поиск, разбиение и разбиение на последовательности.
Используйте приведенные ниже коды для получения различных выходов.
Чтобы получить первое значение в последовательности.
>>> seq_string = Seq("AGCTAGCT") >>> seq_string[0] 'A'
Для печати первых двух значений.
>>> seq_string[0:2] Seq('AG')
Чтобы распечатать все значения.
>>> seq_string[ : ] Seq('AGCTAGCT')
Выполнять операции длины и счета.
>>> len(seq_string) 8 >>> seq_string.count('A') 2
Добавить две последовательности.
>>> from Bio.Alphabet import generic_dna, generic_protein >>> seq1 = Seq("AGCT", generic_dna) >>> seq2 = Seq("TCGA", generic_dna) >>> seq1+seq2 Seq('AGCTTCGA', DNAAlphabet())
Здесь два вышеупомянутых объекта последовательности, seq1, seq2, являются общими последовательностями ДНК, поэтому вы можете добавить их и создать новую последовательность. Вы не можете добавлять последовательности с несовместимыми алфавитами, такими как последовательность белка и последовательность ДНК, как указано ниже —
>>> dna_seq = Seq('AGTACACTGGT', generic_dna) >>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> dna_seq + protein_seq ..... ..... TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet() >>>
Чтобы добавить две или более последовательности, сначала сохраните его в списке Python, затем извлеките его с помощью цикла for и, наконец, добавьте его вместе, как показано ниже:
>>> from Bio.Alphabet import generic_dna >>> list = [Seq("AGCT",generic_dna),Seq("TCGA",generic_dna),Seq("AAA",generic_dna)] >>> for s in list: ... print(s) ... AGCT TCGA AAA >>> final_seq = Seq(" ",generic_dna) >>> for s in list: ... final_seq = final_seq + s ... >>> final_seq Seq('AGCTTCGAAAA', DNAAlphabet())
В следующем разделе приведены различные коды для получения выходных данных в соответствии с требованиями.
Чтобы изменить регистр последовательности.
>>> from Bio.Alphabet import generic_rna >>> rna = Seq("agct", generic_rna) >>> rna.upper() Seq('AGCT', RNAAlphabet())
Проверить членство в Python и личность оператора.
>>> rna = Seq("agct", generic_rna) >>> 'a' in rna True >>> 'A' in rna False >>> rna1 = Seq("AGCT", generic_dna) >>> rna is rna1 False
Найти одну букву или последовательность букв внутри заданной последовательности.
>>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> protein_seq.find('G') 1 >>> protein_seq.find('GG') 8
Выполнить операцию расщепления.
>>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> protein_seq.split('A') [Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()), Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())]
Для выполнения полосовых операций в последовательности.