所以,我有一个带有列名的数据框,我想找到一个包含某个字符串的数据框,但是并不完全匹配它.我在寻找'spike'像列名'spike-2','hey spike','spiked-in'(该'spike'部分总是连续).
我希望列名称作为字符串或变量返回,因此我稍后使用df['name']或df[name]正常访问该列.我试图找到办法做到这一点,但无济于事.有小费吗?
所以,我花了一些时间寻找一种方法来获得Python中调整后的p值(也就是更正的p值,q值,FDR),但我还没有找到任何东西.有R功能p.adjust,但我想坚持Python编码,如果可能的话.Python有什么类似的东西吗?
如果这是一个不好的问题,请提前抱歉!我首先搜索了答案,但没有找到(除了Matlab版本)...感谢任何帮助!
我有一个字符串列表,其格式如下:
['variable1 (name1)', 'variable2 (name2)', 'variable3 (name3)', ...]
Run Code Online (Sandbox Code Playgroud)
...我希望(nameX)按字母顺序对部分进行排序.我该怎么做呢?
我有一个源自df.groupby().size()操作的DataFrame,如下所示:
Localization RNA level
cytoplasm 1 Non-expressed 7
2 Very low 13
3 Low 8
4 Medium 6
5 Moderate 8
6 High 2
7 Very high 6
cytoplasm & nucleus 1 Non-expressed 5
2 Very low 8
3 Low 2
4 Medium 10
5 Moderate 16
6 High 6
7 Very high 5
cytoplasm & nucleus & plasma membrane 1 Non-expressed 6
2 Very low 3
3 Low 3
4 Medium 7
5 Moderate 8
6 High …Run Code Online (Sandbox Code Playgroud) 关于使用pandas进行数据分析的上一个问题的后续内容.我现在想要绘制我的数据,如下所示:
PrEST ID Gene Sequence Ratio1 Ratio2 Ratio3
HPRR12 ATF1 TTPSAXXXXXXXXXTTTK 6.3222 4.0558 4.958
HPRR23 CREB1 KIXXXXXXXXPGVPR NaN NaN NaN
HPRR23 CREB1 ILNXXXXXXXXGVPR 0.22691 2.077 NaN
HPRR15 ELK4 IEGDCEXXXXXXXGGK 1.177 NaN 12.073
HPRR15 ELK4 SPXXXXXXXXXXXSVIK 8.66 14.755 NaN
HPRR15 ELK4 IEGDCXXXXXXXVSSSSK 15.745 7.9122 9.5966
Run Code Online (Sandbox Code Playgroud)
...除了有更多的行,我实际上并不想绘制比率,而是从它们派生出一些其他计算值,但这对我的绘图问题无关紧要.我有一个看起来或多或少像上面的数据的数据框,我想要的是这样的:
下面是我之前的非pandas版本的脚本生成的图像:

...其中红色三角形表示用于设置y轴最大值的截止值之外的值.ID被涂黑了,但你应该能够看到我正在追求的东西.复制数基本上是在它们之上进行计算的比率,因此它们只是另一个数字,而不是我在上面的数据中显示的数字.
我试图在文档中找到类似的问题和解决方案,但没有找到.大多数人似乎需要使用日期来做这个,因为日期似乎有现成的绘图功能,这对我没有帮助(我认为).任何帮助非常感谢!
我正在尝试使用R对我的数据进行PCA分析,我找到了这个很好的指南,使用prcomp和ggbiplot.我的数据是两种样本类型,每种类型有三个生物重复(即6行)和大约20000个基因(即变量).首先,使用指南中描述的代码获取PCA模型不起作用:
>pca=prcomp(data,center=T,scale.=T)
Error in prcomp.default(data, center = T, scale. = T) :
cannot rescale a constant/zero column to unit variance
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除该scale. = T部件,它工作正常,我得到一个模型.这是为什么,这是下面错误的原因?
> summary(pca)
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 4662.8657 3570.7164 2717.8351 1419.3137 819.15844
Proportion of Variance 0.4879 0.2861 0.1658 0.0452 0.01506
Cumulative Proportion 0.4879 0.7740 0.9397 0.9849 1.00000
Run Code Online (Sandbox Code Playgroud)
其次,绘制PCA.即使只是使用基本代码,我得到一个错误和一个空的情节图像:
> ggbiplot(pca)
Error: invalid 'rot' value
Run Code Online (Sandbox Code Playgroud)
这意味着什么,我该如何解决?是否与制作PCA的(非)规模有关,还是有所不同?我认为它必须与我的数据有关,因为如果我使用标准示例代码(下面),我会得到一个非常好的PCA图.
> data(wine)
> wine.pca=prcomp(wine,scale.=T)
> print(ggbiplot(wine.pca, obs.scale = 1, …Run Code Online (Sandbox Code Playgroud) 在R中必须有一些我对这个source()命令不了解的东西.我还是新手,但我不能为我的生活理解它是如何得到它的目录的!我的问题是:
我有一个包装器脚本,wrapper.R和一个包含一些函数的源文件functions.R.这两个都在同一个目录中.如果我source('functions.R')在包装器脚本内部调用,当站在两个文件所在的目录中时,一切都很好.但是,我希望能够wrapper.R从其他目录运行我的脚本,即不是这些脚本所在的目录.如果我为另一个目录运行我的包装器,它不起作用,我收到一个cannot open the file错误.
我用Google搜索并找到了许多不同的主题,但这个问题似乎很清楚.我理解它的方式,我正在做的方式应该工作.显然,我误解了一些事情.我对该线程的阅读使我相信它source()可以在调用文件所在的目录中工作source().我的阅读也让我相信我不应该使用chdir = TRUE,因为我想保留广告的相对目录.
看来它不起作用......我有什么误解?当从其他地方调用时,如何从与我的包装器脚本相同的目录中获取文件?
我在SLURM群集上运行管道,由于某种原因,许多较小的文件(大小在500到2000字节之间)沿slurm-XXXXXX.out(其中XXXXXX是数字)的行命名。我试图在SLURM网站上找到这些文件的内容,但找不到任何提及。我假设它们是系统在解析管道时使用的某种正在进行中的文件?
如果重要的话,我正在运行的管道正在使用snakemake。我知道我以前曾经见过这些类型的文件,但是没有snakemake,但那时我还没什么大问题。恐怕在工作流程的每一步之后清除这些文件的工作目录都会中断正在进行的步骤,因此我目前不对其进行任何处理。
这些文件是什么?如何抑制它们的输出,或者在对应的作业完成后将其删除?我是否以某种方式弄乱了我的工作流程,所以才创建它们?
我有一个文件格式有点奇怪,如下所示:
Cluster 1 Score:3.96
Category Term Count
GOTERM_BP_FAT GO:0006412 34
KEGG_PATHWAY hsa00970 9
GOTERM_BP_FAT GO:0043038 9
GOTERM_BP_FAT GO:0043039 9
Cluster 2 Score:3.94
Category Term Count
GOTERM_BP_FAT GO:0006414 21
KEGG_PATHWAY hsa03010 20
GOTERM_BP_FAT GO:0034660 16
GOTERM_BP_FAT GO:0006399 11
GOTERM_BP_FAT GO:0042254 10
GOTERM_BP_FAT GO:0022613 12
Run Code Online (Sandbox Code Playgroud)
...以及行之后的Cluster X行的几个"子数据帧"(包括其间的空间)和附加(此处省略)列.
我想要做的是以某种方式读取每个单独的集群,将其作为数据帧(即具有名称Category, Term, Count的数据帧),稍微操纵数据帧(主要基于计算添加列)然后写入操纵数据框架和Cluster X行到新文件的格式与它开始时的格式相同.
我已经绞尽脑汁想要做一些明智的方法,但除了分别阅读每一行并根据行的类型做不同的事情之外,我还没有真正想出任何东西,如下所示:
con <- file('test.txt', open="r")
# Read file line for line
while ( length(currentLine <- readLines(con, n=1, warn=FALSE)) > 0 ) {
line = strsplit(currentLine, …Run Code Online (Sandbox Code Playgroud)