我正在尝试使用{pegas}的haploNet功能来绘制单倍型网络,但是我在同一个饼图中将来自不同群体的相同单倍型变得困难.我可以用以下脚本构建单倍型网:
x <- read.dna(file="x.fas",format="fasta")
h <- haplotype(x)
net <- haploNet(h)
plot(net)
Run Code Online (Sandbox Code Playgroud)
我想在dnabin数据中设置每个分类群的原始种群的标签,因此我可以在得到的网络中得到不同颜色的饼图(来自不同种群的单倍型).我还想删除生成的单倍型网络中的重叠圆圈.
谢谢你的帮助!
一个例子:
> data(woodmouse)
> x <- woodmouse[sample(15, size = 110, replace = TRUE), ]
> h <- haplotype(x)
> net <- haploNet(h)
> plot(net, size=attr(net, "freq"), scale.ratio = 2, cex = 0.8)
Run Code Online (Sandbox Code Playgroud)
该脚本用于使用{pegas}构建单倍型网络.较大的圆圈代表某种类型的更多单倍型.我想知道如何在dnabin矩阵中设置单倍型的起源,因此它们会在网络中以不同的颜色出现.
我正在使用rjags在R中进行分析(基于这篇博文:http://www.sumsar.net/blog/2013/08/bayesian-estimation-of-correlation/)并且我有一个问题.使用update()更新500个样本的模型,只是将原始模型创建中的n.adapt参数设置为1000而不是500?
换句话说:当我执行以下操作时,run1和run2之间是否存在重要差异:
require(mvtnorm)
require(rjags)
model_string <- "
model {
for(i in 1:n) {
x[i,1:2] ~ dmnorm(mu[], prec[ , ])
}
prec[1:2,1:2] <- inverse(cov[,])
cov[1,1] <- sigma[1] * sigma[1]
cov[1,2] <- sigma[1] * sigma[2] * rho
cov[2,1] <- sigma[1] * sigma[2] * rho
cov[2,2] <- sigma[2] * sigma[2]
sigma[1] ~ dunif(0, 1000)
sigma[2] ~ dunif(0, 1000)
rho ~ dunif(-1, 1)
mu[1] ~ dnorm(0, 0.001)
mu[2] ~ dnorm(0, 0.001)
x_rand ~ dmnorm(mu[], prec[ , ])
}
"
mu …Run Code Online (Sandbox Code Playgroud) 假设我有一个字符串列表:
strs = ["aa", "bbb", "c", "dddd"]
Run Code Online (Sandbox Code Playgroud)
我想在每个字符串的末尾添加空格,以便每个字符串长度为4个字符.也就是说,我希望最终产品看起来像这样:
strs_final = ["aa ", "bbb ", "c ", "dddd"]
Run Code Online (Sandbox Code Playgroud)
我认为列表理解是要走的路,但我不确定如何去做这件事.我知道如何挑选长度为3的字符串并为它们添加一个空格:
[i+" " for i in strs if len(i) == 3]
Run Code Online (Sandbox Code Playgroud)
但我不知道如何为不同长度的字符串添加不同数量的空格
我在拆开元组时遇到了一些麻烦.具体来说,我不知道为什么这不起作用:
a = [0,1,2,3]
b = [4,5,6,7]
p = a,b
for i,k in p:
print i,k
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-422-2ba96d641daa> in <module>()
----> 1 for i,k in p:
2 print i,k
3
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
在我看来,像上面的代码应该解开元组中的两个列表p进入i和k,但是这显然不是发生了什么,我不知道为什么.
所以,我想我有两个问题:
for i,k in p真正做的,如果它不存在于元组解包列表预期的结果是:
[0,1,2,3]
[4,5,6,7]
Run Code Online (Sandbox Code Playgroud)
我正在使用python 2.7.9,如果这恰好是特定于版本的.
如何在Cython中对就地存储器视图进行排序?是否有内置功能可以做到这一点?现在我必须使用numpy数组而使用numpy排序,这非常慢.
我试图确定与零相比时python浮点数的精确程度.请注意以下事项:
1e-323 == 0
> False
1e-324 == 0
> True
Run Code Online (Sandbox Code Playgroud)
我出现的阈值是324小数点,至少与我正在运行的实现(python 2.7,CPython).这记录在哪里?它是依赖于实现的吗?
如果我有这样一个表my_table:
| id | val1 | val2|
| 1 | foo1 | bar |
| 2 | foo2 | baz |
| 3 | foo3 | bam |
Run Code Online (Sandbox Code Playgroud)
我有,我已经程序生成值的硬编码的逗号分隔的列表:spam, eggs, ham。
我想将值插入列中val1。我在想像这样的事情:
UPDATE my_table SET val1 = SELECT * FROM (VALUES ('spam'),('eggs'),('ham'))
但这给了我一个语法错误(MySQL 5.6.44)
最终结果应如下所示:
| id | val1 | val2|
| 1 | spam | bar |
| 2 | eggs | baz |
| 3 | ham | bam |
Run Code Online (Sandbox Code Playgroud) 我.env的设置如下:
SECRET_KEY=mysecretkey123
Run Code Online (Sandbox Code Playgroud)
我webpack.config.js的设置如下:
const Dotenv = require('dotenv-webpack');
module.exports = {
...
proxy: {
'api': {
target: 'foo.bar'
headers: {'api_token': process.env.SECRET_KEY}
}
}
...
plugins: [
new Dotenv({
path: '.env',
}),
]
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的应用程序时,我收到一条错误消息,说我的 api 令牌是 undefined
我知道 dotenv 工作正常,因为在我的应用程序本身中,我可以执行console.log(process.env.SECRET_KEY)并查看我的密钥,但是这似乎不会在我的webpack.config.js文件本身中公开我的环境变量。
有没有办法配置 dotenv-webpack 以允许在webpack.config.js?
我在 terraform 中定义了一个 VPC:
\n//vpc.tf\nresource "aws_vpc" "my_vpc" {\n cidr_block = "10.0.0.0/16"\n}\n\nRun Code Online (Sandbox Code Playgroud)\n我正在尝试创建一个安全组:
\n// securityGroup.tf\nresource "aws_security_group" "allow_tls" {\n name = "allow_tls"\n description = "Allow TLS inbound traffic"\n vpc_id = aws_vpc.my_vpc.id\n ingress {\n description = "TLS from VPC"\n from_port = 443\n to_port = 443\n protocol = "tcp"\n cidr_blocks = [aws_vpc.my_vpc.cidr_block]\n ipv6_cidr_blocks = [aws_vpc.my_vpc.ipv6_cidr_block]\n }\n egress {\n from_port = 0\n to_port = 0\n protocol = "-1"\n cidr_blocks = ["0.0.0.0/0"]\n ipv6_cidr_blocks = ["::/0"]\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n然而,当我跑步时terraform plan出现错误Error: "" …
我正在编写应该是Python 2.7和Python 3.3+兼容的代码.当尝试使用Python 2.7运行我的代码时,我遇到以下问题.
我正在unicode_literals从__future__每个文件中导入,但是我无法使该array功能正常工作.
from array import array
from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)
尝试制作字符数组不起作用
array("c", "test")
> TypeError: must be char, not unicode
Run Code Online (Sandbox Code Playgroud)
尝试制作unicode数组也不起作用
array("u", "test")
> TypeError: must be char, not unicode
Run Code Online (Sandbox Code Playgroud)
我可以制作array兼容的unicode_literals吗?
我想知道是否有比下面的方法更能从列表中生成字符串的 Pythonic 方法。
免责声明:我是一名生物物理学家,对 python 没有深入的了解,并且确实搜索并测试了以下组合:resid {}或.format(a) / ([a]) / (*a) / (x for x in a)广泛地,但可能我不知道要寻找什么......我知道下面的代码有效,但我不知道清楚地了解为什么列出的任何一个都没有。
输入:
a=[23,33,105,400]
Run Code Online (Sandbox Code Playgroud)
代码:
c=""
for x in a[0:-1]:
c = c + "resid {} or ".format(x)
c=c+"resid {}".format(a[-1])
print(c)
Run Code Online (Sandbox Code Playgroud)
输出:
resid 23 or resid 33 or resid 105 or resid 400
Run Code Online (Sandbox Code Playgroud) 今天我附加了python列表遇到了一个相当奇怪的问题.我试图创建一个数组,其每个元素会像一个C struct.其中一个元素本身就是一个列表.这是有问题的代码:
class players:
name='placeholder'
squad=list()
teams=list()
teams.append(players())
teams.append(players())
teams[0].name="abc"
teams[1].name="xyz"
teams[0].squad.append("Joe")
for w in teams:
print(w.name)
print(w.squad)
Run Code Online (Sandbox Code Playgroud)
我期望的输出是:
abc
['Joe']
xyz
[]
Run Code Online (Sandbox Code Playgroud)
因为我只squad为团队添加了一个成员[0].但我得到的输出是:
abc
['Joe']
xyz
['Joe']
Run Code Online (Sandbox Code Playgroud)
名称设置正常但.append附加到两个元素teams!
是什么导致这种情况,我该如何解决这个问题?
如果不是模拟模块中的函数,而是想模拟__dict__模块的属性,我将如何去做?显然像
@patch(my_module.__dict__)
test_something(my_module_dict):
my_module_dict.return_value = "something"
Run Code Online (Sandbox Code Playgroud)
不起作用