小编C_Z*_*_Z_的帖子

如何在haploNet Haplotype Networks {pegas}中绘制饼图

我正在尝试使用{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矩阵中设置单倍型的起源,因此它们会在网络中以不同的颜色出现.

r genetics dna-sequence phylogeny ape-phylo

3
推荐指数
1
解决办法
5792
查看次数

在使用jags创建的模型上使用update()的原因

我正在使用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)

r jags

3
推荐指数
1
解决办法
1243
查看次数

将不同数量的字符附加到字符串列表中的字符串

假设我有一个字符串列表:

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)

但我不知道如何为不同长度的字符串添加不同数量的空格

python

3
推荐指数
1
解决办法
75
查看次数

在for循环中解压缩元组

我在拆开元组时遇到了一些麻烦.具体来说,我不知道为什么这不起作用:

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进入ik,但是这显然不是发生了什么,我不知道为什么.

所以,我想我有两个问题:

  1. 什么是for i,k in p真正做的,如果它不存在于元组解包列表
  2. 如何在for循环中轻松地从元组中解压缩列表?

预期的结果是:

[0,1,2,3]
[4,5,6,7]
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7.9,如果这恰好是特定于版本的.

python

3
推荐指数
1
解决办法
2200
查看次数

在Cython中对memoryview进行排序

如何在Cython中对就地存储器视图进行排序?是否有内置功能可以做到这一点?现在我必须使用numpy数组而使用numpy排序,这非常慢.

python cython memoryview

3
推荐指数
1
解决办法
1288
查看次数

python浮点数的精度(小数点)是多少?

我试图确定与零相比时python浮点数的精确程度.请注意以下事项:

1e-323 == 0
> False
1e-324 == 0
> True
Run Code Online (Sandbox Code Playgroud)

我出现的阈值是324小数点,至少与我正在运行的实现(python 2.7,CPython).这记录在哪里?它是依赖于实现的吗?

python floating-point

3
推荐指数
1
解决办法
72
查看次数

UPDATE SET列,每行具有不同的值

如果我有这样一个表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)

mysql sql

3
推荐指数
2
解决办法
132
查看次数

dotenv-webpack 在 webpack.config.js 中使用环境变量

.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?

webpack dotenv

3
推荐指数
1
解决办法
1587
查看次数

“”不是有效的 CIDR 块:无效的 CIDR 地址

我在 terraform 中定义了一个 VPC:

\n
//vpc.tf\nresource "aws_vpc" "my_vpc" {\n  cidr_block = "10.0.0.0/16"\n}\n\n
Run 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}\n
Run Code Online (Sandbox Code Playgroud)\n

然而,当我跑步时terraform plan出现错误Error: "" …

terraform

3
推荐指数
1
解决办法
4994
查看次数

一系列unicode文字

我正在编写应该是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吗?

python arrays unicode python-2.7

2
推荐指数
1
解决办法
4628
查看次数

是否有更“pythonic”的方式从带有自定义分隔符的列表中生成字符串

我想知道是否有比下面的方法更能从列表中生成字符串的 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

2
推荐指数
1
解决办法
66
查看次数

Python列表附加问题

今天我附加了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!

是什么导致这种情况,我该如何解决这个问题?

python list append

1
推荐指数
1
解决办法
491
查看次数

Mock module.__dict__ 使用 Python Mock

如果不是模拟模块中的函数,而是想模拟__dict__模块的属性,我将如何去做?显然像

@patch(my_module.__dict__)
test_something(my_module_dict):
    my_module_dict.return_value = "something"
Run Code Online (Sandbox Code Playgroud)

不起作用

python mocking python-unittest

1
推荐指数
1
解决办法
1114
查看次数