- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定 8 个样本 (A1-A8) 的以下数据:
A1 A2 A3 A4 A5 A6 A7 A8
T T T T T T T C
T C T T T T T C
A A A G G A A A
其中每一列是一个样本,每一行是一个可能编码为 A、C、G、T 的标记,我希望计算每一行 4 个等位基因中任何一个的起源的概率。例如,上述第 1 行数据的输出应该是
A C G T
A1 0 0 0 1/7
A2 0 0 0 1/7
A3 0 0 0 1/7
A4 0 0 0 1/7
A5 0 0 0 1/7
A6 0 0 0 1/7
A7 0 0 0 1/7
A8 0 1 0 0
由于第 1 行中有 7 个样本具有 T,因此每个样本的概率为 1/7。由于只有 A8 拥有 C,因此将 C 分配给 A8 的概率为 100%。对于第 3 行,输出应该是
A C G T
A1 1/6 0 0 0
A2 1/6 0 0 0
A3 1/6 0 0 0
A4 1/2 0 0 0
A5 1/2 0 0 0
A6 1/6 0 0 0
A7 1/6 0 0 0
A8 1/6 0 0 0
总输出应该是 i 个 8x4 矩阵的列表,其中 i 等于行数。
一个可重写的代码示例是:
states <- c("A1","A2","A3","A4","A5","A6","A7","A8") # Define the names of the states
A1 <- c("T","T","A") # Set the alleles for state A1 across 3 SNPs
A2 <- c("T","C","A") # Set the alleles for state A2 across 3 SNPs
A3 <- c("T","T","A") # Set the alleles for state A3 across 3 SNPs
A4 <- c("T","T","G") # Set the alleles for state A4 across 3 SNPs
A5 <- c("T","T","G") # Set the alleles for state A5 across 3 SNPs
A6 <- c("T","T","A") # Set the alleles for state A6 across 3 SNPs
A7 <- c("T","T","A") # Set the alleles for state A7 across 3 SNPs
A8 <- c("C","C","A") # Set the alleles for state A8 across 3 SNPs
theemissionmatrix <- matrix(t(c(A1,A2,A3,A4,A5,A6,A7,A8)), 8, 3, byrow = TRUE) # Create an 8 x 3 matrix
rownames(theemissionmatrix) <- states
theemissionmatrix # Print out the data matrix
[,1] [,2] [,3]
A1 "T" "T" "A"
A2 "T" "C" "A"
A3 "T" "T" "A"
A4 "T" "T" "G"
A5 "T" "T" "G"
A6 "T" "T" "A"
A7 "T" "T" "A"
A8 "C" "C" "A"
test <- cbind(theemissionmatrix[,1]=="A",theemissionmatrix[,1]=="C",theemissionmatrix[,1]=="G",theemissionmatrix[,1]=="T")
colnames(test) <- c("A","C","G","T")
test
[,1] [,2] [,3] [,4]
A1 FALSE FALSE FALSE TRUE
A2 FALSE FALSE FALSE TRUE
A3 FALSE FALSE FALSE TRUE
A4 FALSE FALSE FALSE TRUE
A5 FALSE FALSE FALSE TRUE
A6 FALSE FALSE FALSE TRUE
A7 FALSE FALSE FALSE TRUE
A8 FALSE TRUE FALSE FALSE
经过这一步,我不确定如何对每列的总计数求和并除以得到总概率。
最佳答案
这里有一些备选方案(从@zx8754 的回答中以“df”开头):
melt
+ table
+ prop.table
当存在 NaN
值时,显示效果不佳。
library(reshape2)
dfL <- melt(as.matrix(df))
Levs <- c("A", "C", "G", "T")
dfL$value <- factor(dfL$value, Levs) ## Just to be sure
prop.table(table(dfL[c(2, 3, 1)]), c(2, 3))
# , , Var1 = 1
#
# value
# Var2 A C G T
# A1 0.0000000 0.1428571
# A2 0.0000000 0.1428571
# A3 0.0000000 0.1428571
# A4 0.0000000 0.1428571
# A5 0.0000000 0.1428571
# A6 0.0000000 0.1428571
# A7 0.0000000 0.1428571
# A8 1.0000000 0.0000000
#
# , , Var1 = 2
#
# value
# Var2 A C G T
# A1 0.0000000 0.1666667
# A2 0.5000000 0.0000000
# ..... OUTPUT TRUNCATED
melt
+ by
+ table
可以很容易地显示 0
,否则 NaN
会显示。
dfL <- melt(as.matrix(df))
Levs <- c("A", "C", "G", "T")
dfL$value <- factor(dfL$value, Levs) ## Just to be sure
by(dfL[-1], dfL[1], FUN = function(x) {
A <- prop.table(table(x), 2)
A[is.nan(A)] <- 0
A
})
# Var1: 1
# value
# Var2 A C G T
# A1 0.0000000 0.0000000 0.0000000 0.1428571
# A2 0.0000000 0.0000000 0.0000000 0.1428571
# A3 0.0000000 0.0000000 0.0000000 0.1428571
# A4 0.0000000 0.0000000 0.0000000 0.1428571
# A5 0.0000000 0.0000000 0.0000000 0.1428571
# A6 0.0000000 0.0000000 0.0000000 0.1428571
# A7 0.0000000 0.0000000 0.0000000 0.1428571
# A8 0.0000000 1.0000000 0.0000000 0.0000000
# ------------------------------------------------------------------------
# Var1: 2
# value
# Var2 A C G T
# A1 0.0000000 0.0000000 0.0000000 0.1666667
# A2 0.0000000 0.5000000 0.0000000 0.0000000
# ..... OUTPUT TRUNCATED
lapply
+ table
在对数据进行一些重组之后完全坚持基础 R,这是另一种选择....
Levs <- c("A", "C", "G", "T")
out <- data.frame(N = names(df), t(df), row.names=NULL)
Rows <- setdiff(names(out), "N")
out[Rows] <- lapply(out[Rows], function(x) factor(x, Levs))
Tables <- lapply(seq_along(Rows), function(x) {
A <- prop.table(table(out[, 1], out[, Rows[x]]), 2)
A[is.nan(A)] <- 0
A
})
关于r - 使用 SNP 等位基因数据为 ACGT 创建概率矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052057/
接下来是我的代码: with open("test.txt") as f_in: for line in f_in: for char in line:
我们有一个六面骰子,面编号为 1 到 6。随着 n 的增加,在第 n 卷中第一次看到 1 的概率降低。我想找到最小的卷数,使得这个概率小于某个给定的限制。 def probTest(limit):
我只是想知道为什么运行下面的代码时出现错误。我正在尝试使用 numpy 为基于文本的游戏计算概率。下面的代码不是游戏本身的代码。这仅用于测试目的和学习。感谢您提前的答复,请对我宽容一点。 from n
我目前正在创建一个与多个arduino板通信的服务器软件。由于硬件原因,我使用UDP协议(protocol)。我有一个非常简单的机制,在大多数情况下,当包裹丢失时,它会重新发送包裹。我现在有两个问题:
我想在 LinearLayout 上添加一个 fling Action 。为此,我使用了以下代码。 public class NewsActivity extends Activity { .
下面是其中一个 facebook 谜题:我无法理解如何进行此操作。 你有 C 个容器、B 个黑球和无限数量的白球。您希望以一种方式在容器之间分配球,即每个容器至少包含一个球,并且选择白球的概率大于或等
我有一个希伯来语文本,就像 "×گض¸×¨ض´×™×،ض°×کוض¹×ں",我想将它转换为可读的 unicode 希伯来语字符。 我试过这段代码: const string Str = "×گض¸×
我正在尝试使用 Random.nextDouble() 获取 1.0 和 10.0 之间的随机双数: double number = 1.0 + (10.0-1.0) * Random.nextDou
我目前已经为二进制类实现了概率(至少我这么认为)。现在我想扩展这种回归方法,并尝试将其用于波士顿数据集。不幸的是,我的算法似乎被卡住了,我当前运行的代码如下所示: from sklearn impor
我在 2D 空间中有一小组数据点(大约 10 个),每个数据点都有一个类别标签。我希望根据现有数据点标签对新数据点进行分类,并关联属于任何特定标签类别的“概率”。 基于最近邻的标签来标记新点是否合适(
我正在做我的第一个 tensorflow 项目。 我需要获得给定输入和预期序列的 ctc 概率(不是 ctc 损失)。 在 python 或 c++ 中是否有任何 api 或方法可以做到这一点? 我更
我正在尝试通过 assignment 1斯坦福 cs244n 类(class)。问题 1b 强烈建议对 Softmax 函数进行优化。我设法得到了N维向量的Softmax。我还得到了 MxN 维矩阵的
我有一个预测算法的想法,该算法可以根据所选项目先前出现的顺序准确预测随机值,并分析模式以提高准确性。 基本上是一种接受两个参数的算法,一个是一组可能的选择;另一个是这些数字的历史,分析该模式并预测序列
自 HOURS 以来,我一直在努力思考这个 TopCoder 问题,但无法找到一个完美的解决方案,并找到了下面给出的一个使用得非常漂亮的解决方案! 我想弄清楚这个解决方案如何适用于给定的问题?而我当初
我只知道如何生成随机 boolean 值(真/假)。默认概率为 50:50 但是我怎样才能用我自己的概率生成真假值呢?假设它以 40:60 或 20:80 等的概率返回 true... 最佳答案 一种
对于以下示例,我如何计算 julia 中的百分位数/概率值/尾部区域 Example : N(1100, 200) #Normally distributed with mean 1100 & st
我正在尝试修改标准 kNN 算法来获取属于某个类别的概率,而不仅仅是通常的分类。我还没有找到太多关于概率 kNN 的信息,但据我了解,它的工作原理与 kNN 类似,不同之处在于它计算给定半径内每个类的
我正在使用 PostgreSQL 为我所有数据中的变量对计算经验概率密度函数。我试图确定在计算 PDF 之前索引是否/何时更有效。我像这样运行 EXPLAIN CREATE INDEX, EXPLAI
有谁知道当查询有偏移时如何在 MySql 中请求“实时结果集”(例如:select * from table limit 10 offset 20;)。它正在经历类似 的错误 'invalid use
unsigned long long int first( int b , int c){ int h=b; //int k; for(int k=b-1;k>c;k--){ b=b*k;
我是一名优秀的程序员,十分优秀!