小编Loo*_*ast的帖子

将grep命令的结果分组

我一直在使用grep -f从一个文件中获取模式并从另一个文件中提取行.结果如下:

1   11294199    11294322    40  10  123 0.0813008
1   11294199    11294322    41  6   123 0.0487805
1   11294199    11294322    42  10  123 0.0813008
1   11294199    11294322    43  2   123 0.0162602
1   11293454    11293544    51  1   90  0.0111111
1   11293454    11293544    52  2   90  0.0222222
1   11291356    11291491    54  6   135 0.0444444
1   11291356    11291491    55  8   135 0.0592593
1   11291356    11291491    56  3   135 0.0222222
Run Code Online (Sandbox Code Playgroud)

现在我需要根据前三列对结果进行分组,并为每个组计算第4列的总和:

1   11294199    11294322  (40+41+42+43)
1   11293454    11293544  (51+52)
1   11291356    11291491  (54+55+56) …
Run Code Online (Sandbox Code Playgroud)

unix perl awk grep sed

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

具有嵌套多个条件的if语句

我试图在Python中的if语句中添加多个条件,如下所示:

if (h9 == h1 or h9 == h2 or h9 == h3 or h9 == h4 or h9 == h5 or h9 == h6 or h9 == h7 or h9 == h8) and (h10 == h1 or h10 == h2 or h10 == h3 or h10 == h4 or h10 == h5 or h10 == h6 or h10 == h7 or h10 == h8) :
     do sth.
Run Code Online (Sandbox Code Playgroud)

基本上它是一个OR条件都h9h10在同一时间.
但是,这不起作用,并给出如下错误:

IndentationError: unindent does not match any …

python if-statement

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

pytest 如何在 src 代码中启用 print() ?

这是我的代码

在模块.py中:

def myFunc():
    print('aaa')
Run Code Online (Sandbox Code Playgroud)

在 test_module.py 中:

def test_myFunc():
    print('bbb')
    myFunc()
Run Code Online (Sandbox Code Playgroud)

如果我运行pytest -s test_module.py然后我可以看到打印输出bbb;但我看不到打印输出aaa。其实我也尝试过import logging用logger玩,也没有运气。

所以基本上我的问题是,当触发时pytest,我们如何从 src 代码中看到打印输出?

python printing pytest

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

为什么本地只运行mysql5.7需要libmysqlclient.21.dylib?

在我本地,我已经运行了 mysql@5.7。我有一个依赖 mysql 的应用程序,但遇到了有趣的错误:

    File "/xxx/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
    ImportError: dlopen(/xxx/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib
    Referenced from: /xxx/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
    Reason: image not found
Run Code Online (Sandbox Code Playgroud)
  1. 现在只有 mysql@5.7 在我的本地运行,所以我可以看到我有/usr/local/opt/mysql@5.7/lib/libmysqlclient.20.dylib,但我从来没有/usr/local/opt/mysql/lib/libmysqlclient.21.dylib。为什么这里需要它?libmysqlclient.21.dylib仅由提供mysql8.0+

  2. site-packages/MySQLdb做什么?猜猜连接到我本地的mysql?那为什么要问21.dylib哪个不存在呢?

python mysql

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

关于将shell命令插入到python中

我已经在python脚本中插入了一些shell命令,如下所示:

#!/usr/bin/python

import os,sys,re
import gzip
import commands

path = "/home/x/nearline"

for file in os.listdir(path):
  if re.match('.*\.recal.fastq.gz', file):
    fullpath = os.path.join(path, file)
    result = commands.getoutput('zcat fullpath |wc -l')
    numseqs = int(result)/4.0
  print numseqs
Run Code Online (Sandbox Code Playgroud)

zcat fullpath |wc -l 是插入的shell命令.

问题是,我fullpath在这里为所有fastq文件定义,但在被放入之后' ',似乎这fullpath不起作用.我怎么解决这个问题?

python shell

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

拆分命令问题

使用split命令时遇到问题.输入字符串如下:

080821_HWI-EAS301_0002_30ALBAAXX:1:8:1649:2027  83  chr10   42038185    255 36M =   42037995    -225    GCCAGGTTTAATAAATTATTTATAGAATACTGCATC    @?DDEAEFDAD@FBG@CDA?DBCDEECD@D?CBA>A    NM:i:0  MD:Z:36
Run Code Online (Sandbox Code Playgroud)

我想从这个字符串中抓取'2027'我的命令是:line.split(':',4)[1].split()[0] 但是,它不起作用.输出为'1'

然后我切换到line.split(':',4) And输出仍为'1',我看到第一步拆分已经存在问题.

但是,当我尝试时line.split(':',1),我得到了预期的结果:

1:8:1649:2027   83  chr10   42038185    255 36M =   42037995-225    GCCAGGTTTAATAAATTATTTATAGAATACTGCATC    @?DDEAEFDAD@FBG@CDA?DBCDEECD@D?CBA>A    NM:i:0  MD:Z:36
Run Code Online (Sandbox Code Playgroud)

我对这个拆分命令感到困惑!(之前我问了类似的问题,当时分裂命令工作)谢谢

python split

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

构建直方图

我正在尝试通过python制作直方图.我从以下代码段开始:

def histogram(L):
    d = {}
    for x in L:
        if x in d:
            d[x] += 1
        else:
            d[x] = 1
    return d
Run Code Online (Sandbox Code Playgroud)

我理解它使用字典功能来解决问题.但我对第4行感到困惑:if x in d:

d是要构造的,还没有什么,所以如果x在d中怎么样?

python histogram

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

使用“scp”传输后数据失真

最近我从一台服务器传输一组数据到hpcc(高性能计算)命令是这样的:

scp /folder1/*.fastq.gz xxx@hpcc:/home/
scp /folder2/*.fastq.gz xxx@hpcc:/home/
scp /folder3/*.fastq.gz xxx@hpcc:/home/
Run Code Online (Sandbox Code Playgroud)

我打开多个终端同时传输数据。我总共有大约 50 个这样的 fastq.gz 文件,每个文件大约 10GB。我只是想知道数据(特别是这么大的数据)在以上述方式传输时是否有可能被扭曲?

因为服务器上的数据是完好的;而一些数据被复制到hpcc后被扭曲了。

谢谢谢谢

scp corruption hpcc

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

使用izip在python中同时读取两个文件中的行

我正在尝试使用'izip'同时从两个文件中读取行,但是出现如下错误:

>>> f1=open('/home/xug/scratch/test/test_1.fastq','r')
>>> f2=open('/home/xug/scratch/test/test_2.fastq','r')
>>> from itertools import izip
>>> for i,line1,line2 in izip(f1,f2):
...     if i%4==3:
...        print line1,line2
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack
Run Code Online (Sandbox Code Playgroud)

我不知道为什么......什么是"需要2个以上的价值"?谢谢

python line

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

将bar转换为hist()函数中的点

hist() 将生成由许多"条形"组成的直方图

如何用一个点替换每个条形图,以便将多个点组合在一起看起来像一个连续的曲线?

r histogram

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

标签 统计

python ×7

histogram ×2

awk ×1

corruption ×1

grep ×1

hpcc ×1

if-statement ×1

line ×1

mysql ×1

perl ×1

printing ×1

pytest ×1

r ×1

scp ×1

sed ×1

shell ×1

split ×1

unix ×1