gpt4 book ai didi

r - 如何找到密码子的特定频率?

转载 作者:行者123 更新时间:2023-12-04 10:08:46 25 4
gpt4 key购买 nike

我正在尝试在 R 中创建一个函数来计算每个密码子的频率。我们知道甲硫氨酸是一种氨基酸,只能由一组密码子 ATG 形成,因此它在每组序列中的百分比为 1。而甘氨酸可以由 GGT、GGC、GGA、GGG 形成,因此出现的百分比每个密码子将是 0.25。输入将在 DNA 序列中,如 ATGGGTGGCGGAGGG,并且在密码子表的帮助下,它可以计算输入中每​​次出现的百分比。

请通过建议实现此功能的方法来帮助我。

例如,如果我的论点是 ATGTGTTGCTGG那么,我的结果就是

ATG=1
TGT=0.5
TGC=0.5
TGG=1

R 的数据:

codon <- list(ATA = "I", ATC = "I", ATT = "I", ATG = "M", ACA = "T", 
ACC = "T", ACG = "T", ACT = "T", AAC = "N", AAT = "N", AAA = "K",
AAG = "K", AGC = "S", AGT = "S", AGA = "R", AGG = "R", CTA = "L",
CTC = "L", CTG = "L", CTT = "L", CCA = "P", CCC = "P", CCG = "P",
CCT = "P", CAC = "H", CAT = "H", CAA = "Q", CAG = "Q", CGA = "R",
CGC = "R", CGG = "R", CGT = "R", GTA = "V", GTC = "V", GTG = "V",
GTT = "V", GCA = "A", GCC = "A", GCG = "A", GCT = "A", GAC = "D",
GAT = "D", GAA = "E", GAG = "E", GGA = "G", GGC = "G", GGG = "G",
GGT = "G", TCA = "S", TCC = "S", TCG = "S", TCT = "S", TTC = "F",
TTT = "F", TTA = "L", TTG = "L", TAC = "Y", TAT = "Y", TAA = "stop",
TAG = "stop", TGC = "C", TGT = "C", TGA = "stop", TGG = "W")

最佳答案

首先,我得到我的查找列表和序列。

codon <- list(ATA = "I", ATC = "I", ATT = "I", ATG = "M", ACA = "T", 
ACC = "T", ACG = "T", ACT = "T", AAC = "N", AAT = "N", AAA = "K",
AAG = "K", AGC = "S", AGT = "S", AGA = "R", AGG = "R", CTA = "L",
CTC = "L", CTG = "L", CTT = "L", CCA = "P", CCC = "P", CCG = "P",
CCT = "P", CAC = "H", CAT = "H", CAA = "Q", CAG = "Q", CGA = "R",
CGC = "R", CGG = "R", CGT = "R", GTA = "V", GTC = "V", GTG = "V",
GTT = "V", GCA = "A", GCC = "A", GCG = "A", GCT = "A", GAC = "D",
GAT = "D", GAA = "E", GAG = "E", GGA = "G", GGC = "G", GGG = "G",
GGT = "G", TCA = "S", TCC = "S", TCG = "S", TCT = "S", TTC = "F",
TTT = "F", TTA = "L", TTG = "L", TAC = "Y", TAT = "Y", TAA = "stop",
TAG = "stop", TGC = "C", TGT = "C", TGA = "stop", TGG = "W")

MySeq <- "ATGTGTTGCTGG"

接下来,我加载 stringi 库并将序列分成三个字符的 block 。

# Load library
library(stringi)

# Break into 3 bases
seq_split <- stri_sub(MySeq, seq(1, stri_length(MySeq), by=3), length=3)

然后,我使用table 统计这三个基本 block 对应的字母。

# Get associated letters
letter_count <- table(unlist(codon[seq_split]))

最后,我将序列与计数的倒数绑定(bind)在一起,并重命名我的数据框列。

# Bind into a data frame
res <- data.frame(seq_split,
1/letter_count[match(unlist(codon[seq_split]), names(letter_count))])

# Rename columns
colnames(res) <- c("Sequence", "Letter", "Percentage")

# Sequence Letter Percentage
#1 ATG M 1.0
#2 TGT C 0.5
#3 TGC C 0.5
#4 TGG W 1.0

关于r - 如何找到密码子的特定频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com