小编RNA*_*RNA的帖子

如何使用固定的外部层次结构集群创建热图

我有一个矩阵数据,并希望用热图可视化它.行是物种,所以我想在行旁边显示系统发育树,并根据树重新排列热图的行.我知道heatmapR中的函数可以创建层次聚类热图,但是如何在图中使用我的系统发育聚类而不是默认创建的距离聚类?

r hierarchical-clustering heatmap

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

如何用R模拟相关的二进制数据?

假设我想要2个具有指定phi系数的二进制数据向量,我怎么能用R模拟它?

例如,如何可以创建两个矢量等xy指定矢量长度与COR高效的0.79

> x = c(1,  1,  0,  0,  1,  0,  1,  1,  1)
> y = c(1,  1,  0,  0,  0,  0,  1,  1,  1)
> cor(x,y)
[1] 0.7905694
Run Code Online (Sandbox Code Playgroud)

simulation binary r correlation

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

R中并行计算的stdout和stderr

我正在使用该包parallel进行计算。这是一个玩具示例:

library(parallel)
m = matrix(c(1,1,1,1,0.2,0.2,0.2,0.2), nrow=2)
myFun = function(x) {
  if (any(x<0.5)) {
    write("less than 0.5", stderr())
    return(NA)
  } else {
    write("good", stdout())
    return(mean(x))
  }
}
cl = makeCluster(2, outfile="/tmp/output")
parApply(cl, m, 2, myFun)
stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)

问题是 stdout 和 stderr 都将被重定向到/tmp/output. 该output文件如下所示:

starting worker pid=51083 on localhost:11953 at 11:37:12.966
starting worker pid=51093 on localhost:11953 at 11:37:13.261
good
good
less than 0.5
less than 0.5
Run Code Online (Sandbox Code Playgroud)

有没有办法分别为 stdout 和 stderr 设置两个单独的文件?以及如何忽略“starting worker pid=...”的前两行?

parallel-processing r stdout stderr

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

:type in defcustom 的用法是什么?

我不知道我理解的属性typedefcustom。我可以完美地定义以下变量而不符合type. type在这种情况下的目的是什么?

(defcustom foo 1 "foo" :type 'string)
(defcustom spam "a" "foo" :type 'integer)
Run Code Online (Sandbox Code Playgroud)

emacs customization

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

如何在emacs lisp中指定变量的属性值

我在.emacs文件中使用以下代码来设置默认发布行为.我将org基目录放在差异计算机的不同位置:

;; define machine specific directories storing my org files
(cond ((system-name-is-home) (setq org-dir "/data/org"))
      ((system-name-is-work) (setq org-dir "~/org")))
Run Code Online (Sandbox Code Playgroud)

因此,我想用一个变量来指定:base-directory,以org-dir代替硬编码的"~/org".我怎样才能做到这一点?

(require 'org-publish)
(setq org-publish-project-alist
      '(
        ("org-notes"
         :base-directory "~/org"
         :base-extension "org"
         :publishing-directory "~/tmp/"
         :recursive t
         :publishing-function org-publish-org-to-html
         :headline-levels 4
         :auto-preamble t

         :auto-sitemap t          ; Generate sitemap.org automagically ...
         :sitemap-filename "sitemap.org" ; ... call it sitemap.org (the default) ...
         :sitemap-title "Sitemap" ; ... with title 'Sitemap'.
         )
        ("org-static"
         :base-directory "~/org"
         :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
         :publishing-directory "~/tmp/"
         :recursive t …
Run Code Online (Sandbox Code Playgroud)

lisp emacs elisp org-mode

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

Lisp函数如何在此代码中记住状态?

我在http://www.ccs.neu.edu/home/shivers/newstyle.html网站上看到了一段代码:

> (defun element-generator ()
    (let ((state '(() . (list of elements to be generated)))) ;() sentinel.
      (let ((ans (cadr state)))       ;pick off the first element
        (rplacd state (cddr state))   ;smash the cons
        ans)))
ELEMENT-GENERATOR
> (element-generator)
LIST
> (element-generator)
OF
> (element-generator)
ELEMENTS
> (element-generator)
TO
> (element-generator)
BE
> (element-generator)
GENERATED
Run Code Online (Sandbox Code Playgroud)

我不明白该功能如何记住状态.state每次函数运行时都没有重新定义到整个列表?为什么两层let(这是必要的)?如果有人能够解释这个功能是如何工作的,那将不胜感激.

lisp static state

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

从模块导入子模块及其名称

prepared_db我有一个在子模块中调用的函数db.db_1

from spam import db

submodule_name = "db_1"
func_name = "prepare_db"
func = ...
Run Code Online (Sandbox Code Playgroud)

如何通过上面上下文中的子模块名称和函数名称来获取函数?

更新

为了回应 @histrio 的答案,我可以验证他的代码适用于os模块。但在这种情况下它不起作用。创建示例:

$ mkdir -p spam/db
$ cat > spam/db/db_1.py
def prepare_db():
    print('prepare_db func')
$ touch spam/db/__init__.py
$ PYTHONPATH=$PYTHONPATH:spam
Run Code Online (Sandbox Code Playgroud)

现在,您可以正常导入:

>>> from spam.db.db_1 import prepare_db
>>> prepare_db()
prepare_db func
Run Code Online (Sandbox Code Playgroud)

但如果你动态执行此操作,我会收到此错误:

>>> getattr(getattr(db, submodule_name), func_name)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-9-1b6aa1216551> in <module>()
----> 1 getattr(getattr(db, submodule_name), func_name)

AttributeError: module 'spam.db.db_1' has no attribute 'prepared_db'
Run Code Online (Sandbox Code Playgroud)

python python-import

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

如何在两列布局中先填充右列然后填充左列

我有 5 个 div 元素(这里以简化的方式)。如何设置 css 以制作 2 列布局,右侧的前 2 个 div 和左侧的其余 div,如图所示(如果需要,每个 div 元素可以用不同的类或 id 标识)?右侧或左侧的 div 数量可以固定并提前知道,而不是动态飞来飞去。两列可能有不同的高度,但它们需要在顶部对齐(即 div3 和 div1 从相同的垂直位置开始)。理想情况下,我不想在每个 div 元素或左列或右列上设置固定高度。

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

css

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

如何以编程方式创建一个正则表达式,以匹配给定字符串中的所有单个字符与elisp?

例如,我有一个字符串abcdefg. *,如何创建一个[abcdefg\. *]可以匹配字符串中每个字符的正则表达式?问题是可能存在特殊字符,例如.字符串中.

lisp regex emacs

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

相同功能的不同装饰器

我有3个装饰器,并希望将每个装饰器分别应用于一个函数,以创建该函数的3个不同版本。例如:

@decorator_1
def foo1():
  blahblah

@decorator_2
@decorator
def foo2():
  blahblah

@decorator_3
def foo3()
  blahblah
Run Code Online (Sandbox Code Playgroud)

的内容foo1foo2并且foo3是完全一样的。问题是我必须将函数写3次。当然,我可以放入blahblah另一个函数spam,并在这三个函数中调用它。但是我仍然必须创建3个单独的函数并调用spam3次。有没有更好的办法来进一步减少这种冗余?

python decorator

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