小编Tim*_*and的帖子

子进程:无法将“_io.BufferedReader”对象隐式转换为 str

我正在编写一个脚本,它结合了snakemake 和python 代码来自动化成对出现的大量文件。更准确地说,我正在将读取与 BWA MEM 与成对的末端读取 ( http://bio-bwa.sourceforge.net/bwa.shtml )对齐。在脚本的第一部分,我遍历文件中的名称列表(它们是fastq bunzipped文件),然后在列表中相应地对它们进行排序。以下是一些文件的快速浏览:

[ 'NG-8653_ 1A _lib95899_4332_7_ 1 ', 'NG-8653_ 1A _lib95899_4332_7_ 2 ', 'NG-8653_ 1B _lib95900_4332_7_ 1 ', 'NG-8653_ 1B _lib95900_4332_7_ 2 ', 'NG-8653_ 1N _lib95898_4332_7_ 1 ',“NG-8653_ 1N _lib95898_4332_7_ 2 “]

如您所见,读取按两两排序(1A_... 1 和 1A ..._2 等...)。现在使用子进程,我想通过用 bunzip2 解压缩它们然后将它们通过 stdin 传递到 bwa mem 来对齐它们。bwa mem 命令将 fastq 格式文件转换为 .sam 文件,然后我必须使用 samtools 将它们转换为 .bam 格式。这是到目前为止的脚本:

import re, os, subprocess, bz2

WDIR = "/home/alaa/Documents/snakemake"
workdir: WDIR
SAMPLESDIR = "/home/alaa/Documents/snakemake/fastq/"
REF = …
Run Code Online (Sandbox Code Playgroud)

python subprocess bioinformatics snakemake

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

无法合并分支:拒绝合并不相关的历史记录

我在 Git 上创建了一个新的远程存储库 ('myRepo')。我选中了“添加 README.md”复选框,这也对此“myRepo”存储库进行了提交。

然后我创建一个新文件夹,在其中添加一些文件并执行以下操作:

git init
git add .
git commit -m "init"
git remote add origin https://github.com/jozinho947/myRepo.git

# get the READ.me fetched on the 'origin/master' branch locally
git fetch

# get the READ.me merged in my local 'master' where i'm pointing
git merge origin/master
Run Code Online (Sandbox Code Playgroud)

然后我有这个错误:

fatal: refusing to merge unrelated histories
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我不能这样做,以及如何解决这个问题。

git github git-merge git-fetch

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

在 Ruby 语言中的一个 if 语句中使用多个条件

我在 Ruby 中写了这样的东西:

if a.max == a[0] 
  brand = b[0]
elsif a.max == a[1]
  brand = b[1]
elsif a.max == a[2]
  brand = b[2]
elsif a.max == a[3]
  brand = b[3]
end
Run Code Online (Sandbox Code Playgroud)

a并且b两者都是唯一的数组。

有什么方法可以检查所有ifelsif的情况相同吗?

只有一个条件a[0], a[1],a[2]a[3]?

ruby arrays loops if-statement max

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

更改 psql 中数字的打印方式

如何设置数字显示格式psql
我有许多 character varyingdouble precision列中select查询。我可以在每个数字列上使用to_char()round(),但是对于许多列,这会使代码过于重复。

有捷径吗?例如,是否有任何psql会话设置,例如\pset numeric '9.9EEEEE'(我只是编造的,不要尝试使用它)。我无法在手册中快速找到此类设置:PostgreSQL: Documentation: psql

例子:

-- Got this:
=# select bar from (values (123456789), (0.123456789), (0.000000123456789)) table_foo (bar);
        bar        
-------------------
         123456789
       0.123456789
 0.000000123456789

-- I have to use this workaround:
=# select to_char(bar, '9.9EEEEE') as bar from (values (123456789), (0.123456789), (0.000000123456789)) table_foo (bar);
   bar    
----------
  1.2e+08
  1.2e-01
  1.2e-07

-- I want this:
-- set some session …
Run Code Online (Sandbox Code Playgroud)

format postgresql floating-point rounding psql

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

perl中的s - / - 和s - /\Z--是什么意思?

我是perl的初学者,我对模式匹配有疑问.我在perl中遇到了一行写的

  $variable =~ s-/\Z--;
Run Code Online (Sandbox Code Playgroud)

随着代码的继续,分配了另一个变量

  $variable1 =~ s-/--;
Run Code Online (Sandbox Code Playgroud)

你能告诉我这两行是做什么的吗?我想知道什么是意思s-/\Z--s-/--意思.

regex perl

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

Postgresql 中的字符串到时间戳

问题

如何将字符串转换为时间戳?

我找到的文档和所有答案都显示了如何使用 to_timestamp 函数将字符串列转换为时间戳,但这显然不适用于单个字符串。

我尝试过的

to_timestamp('2019-09-20 13:59', 'DD-MM-YYYY HH24:MI:SS')

Cast('2019-09-20 13:59' as timestamp)
Run Code Online (Sandbox Code Playgroud)

我想做的事

我想向表中添加一列,并以此日期作为重复值。

-- Creating timestamp column
ALTER TABLE my_table ADD creation_date timestamp

-- Repeating timestamp 
UPDATE my_table  SET creation_date = TO_TIMESTAMP('2019-09-20 13:59', 'YYYY-MM-DD HH24:MI')
Run Code Online (Sandbox Code Playgroud)

sql string postgresql timestamp

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

使用带有斜杠 // 或引号 ''|"" 的拆分模式有什么区别?

有时我会被非常基本的事情咬伤。我记得split基于PATTERN用作字符串或正则表达式有不同的行为。现在阅读文档似乎没有这样的区别,在整个文档中,只有一种情况(awk-like 行为),其中模式以带引号的字符串形式呈现,在其他所有示例中,模式都在斜杠之间,作为正则表达式。尽管如此,我还是在这里那里找到了示例/教程,例如,哪里提到了基于字符、字符串和模式的拆分的区别。尽管如此,在测试中,除了在斜杠上拆分使用引号 ( split '/', $some_string)更好之外,我没有发现更多差异。

我今天的具体问题是在点上拆分文件名.并期望在字符串模式上拆分。令我惊讶的'.'是,该模式仍被视为正则表达式,因此以下脚本无法实现此目的:

use strict; use warnings; use 5.010;

my ( @x ) = split '.', 'dir/some_file.ext';
say "@x";
Run Code Online (Sandbox Code Playgroud)

我知道,如何修复我的脚本(使用正则表达式模式),但我仍然不知道,使用模式作为字符串 ( '.') 与使用正则表达式 ( /./) 有什么区别?

regex string perl split

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

Perl 中的 qr/ 和 m/ 有什么区别?

来自 Perldoc:

qr/STRING/msixpodualn
Run Code Online (Sandbox Code Playgroud)

该运算符将其 STRING 引用(并可能编译)为正则表达式。STRING 的插值方式与 m/PATTERN/ 中的 PATTERN 相同

m/PATTERN/msixpodualngc
/PATTERN/msixpodualngc
Run Code Online (Sandbox Code Playgroud)

在字符串中搜索模式匹配,在标量上下文中,如果成功则返回 true,如果失败则返回 false。如果没有通过 =~ 或 !~ 运算符指定字符串,则搜索 $_ 字符串。(用 =~ 指定的字符串不必是左值 - 它可能是表达式求值的结果,但请记住 =~ 绑定得相当紧密。)另请参阅 perlre。

选项如上面 qr// 中所述

我确信我错过了一些明显的东西,但我根本不清楚这些选项有何不同 - 它们看起来基本上是同义词。你什么时候会使用qr//代替m//,反之亦然?

regex perl precompiled

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

使用 bash 打印每行的最后 n 个字符

我有一个文件列表,每个文件都包含在自己的行中。每个文件名的长度可变,n但每个文件的最后 7 个字符是特定标识符。我想弄清楚如何删除每行最后 7 个字符之前的所有字符。我认为使用 sed 命令可以做到这一点,并对 google 和 sed 手册页进行了研究。但是,我只找到了显示如何格式化 sed 以删除n每行中最后一个字符的资源,具体操作如下:

sed 's/.\{n\}$//'
Run Code Online (Sandbox Code Playgroud)

我对 bash 相当陌生,无法找到有效的资源来了解如何格式化 sed 命令。有谁知道如何更改此命令以仅打印每行的最后 7 个字符

linux bash shell sed

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

如何将此代码放入一个打印函数(或行)中?

所以我想把这段代码变成一行。我不知道如何创建两个随机列表,然后在一行中打印出两个列表中的公共数字。我是将代码放入一行的新手,我不知道这是否可行。

这是我拥有的代码:

import random
a, b = random.sample(range(1, 50), 30), random.sample(range(1, 50), 30)

print([x for x in a for y in b if x == y])
Run Code Online (Sandbox Code Playgroud)

这是我的尝试:

import random
print([[a = random.sample(range(1, 50), 30)], [b = random.sample(range(1, 50), 30)], x for x in a for y in b if x == y])
Run Code Online (Sandbox Code Playgroud)

python random

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