小编Kar*_*ryo的帖子

Python计算表的所有可能组合

我有一个如下所示的表格:

   PotA  PotB  PotC  PotD  PotE
A   +     +     +     +     +
B   -     ?     +     +     ?
C   +     +     +     +     +
D   +     -     +     -     +
E   +     +     +     +     +
Run Code Online (Sandbox Code Playgroud)

从这里开始,我必须找到"+"," - "和"?"的所有可能组合.对于(PotA和PotB),(PotA和PotC)等的所有组合,(PotA,PotB和PotC),最后到(PotA,PotB,PotC,PotD和PotE).实际上"Pot"行一直在继续,但在这里我只是为了简化而向PotE展示.

为此,首先,我按如下方式读取文件,然后生成所有可能的两种组合,以计算每种可能性.

def readDatafile():
    filename = ("data.txt")
    infile = open(filename,'r')

    for line in infile.readlines():
        line = line.strip()
        print (line)          # just to check the data, need to carry on from here.

"""Generate all possible permutations for later count"""
def doPermutations(items, n):
    if …
Run Code Online (Sandbox Code Playgroud)

python combinations permutation matrix

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

python计算序列列表中存在和不存在子串的数量

你可以在这里得到数据! 2下载底部

我正在用python分析生物数据.

我写下了一个代码,用于在长字符串列表中查找匹配的子字符串.

子串在列表中并且具有7个核苷酸的长度.

所以在列表中,从AAAAAAA到TTTTTTT,存在16384个基序(子串),排列A,C,G,T.

这段代码有一个for循环用于子串列表和嵌套在里面的长字符串列表.

它工作正常,但由于列表中包含12000行,代码处理速度非常慢.

换句话说,提供有关AAAAAAA的信息,以及下一个AAAAAAC的信息需要2分钟.

因此需要16384个图案才能通过12000行2分钟,需要(16384*2 == 32768分钟 - > 546小时 - > 22天......)

我正在使用scipy和numpy来获得Pvalues.

我想要的是计算序列列表中存在和不存在子串的数量

长字符串列表和代码如下:

list_of_lists_long  =  [
[BGN,    -0.054,     AGGCAGCTGCAGCCACCGCGGGGCCTCAGTGGGGGTCTCTGG....]
[ABCB7,  0.109,      GTCACATAAGACATTTTCTTTTTTTGTTGTTTTGGACTACAT....]
[GPR143, -0.137,     AGGGGATGTGCTGGGGGTCCAGACCCCATATTCCTCAGACTC....]
[PLP2,   -0.535,     GCGAACTTCCCTCATTTCTCTCTGCAATCTGCAAATAACTCC....]
[VSIG4,  0.13,       AAATGCCCCATTAGGCCAGGATCTGCTGACATAATTGCCTAG....]
[CCNB3,  -0.071,     CAGCAGCCACAGGGCTAAGCATGCATGTTAACAGGATCGGGA....]
[TCEAL3, 0.189,      TGCCTTTGGCCTTCCATTCTGATTTCTCTGATGAGAATACGA....]
....] #12000 lines
Run Code Online (Sandbox Code Playgroud)

是否有更快的逻辑来更快地处理代码?

我需要你的帮助!

先感谢您.

=====================================

有没有更简单的方法,没有实施任何其他的东西?

我认为模式匹配的迭代是问题......

我试图找到的是在整个序列列表中出现长度为7个主题的次数,而不是发生的事情!因此,如果一个主题存在于一个字符串中,它作为bool为TRUE,则增加一个值AND FALSE,然后增加另一个值.

不是字符串中的图案数量.

python string numpy bioinformatics scipy

6
推荐指数
2
解决办法
1621
查看次数

使用for循环生成列表

人类有22条染色体和2条性染色体X和Y.

我想从'chr1','chr2','chr3'......'chr22','chrX'和'chrY'生成这些染色体名称,仅输入染色体数目和X和Y.

# Input the data here
number_of_chr = 22,'X','Y'

for x in range(number_of_chr[0]):
    print('chr'+str(x+1))
Run Code Online (Sandbox Code Playgroud)

从代码中我可以生成'chr1'到'chr22',但是如何生成'chrX'和chrY'并将它们附加到列表中,以便最终结果如下:

chrID  = ['chr1','chr2','chr3',......'chr19','chr20','chr21','chr22','chrX','chrY']
Run Code Online (Sandbox Code Playgroud)

python for-loop list python-3.x

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

numpy.loadtxt"无法将字符串转换为浮点数"

我正在检查这里的代码.

运行代码时,我得到:

import numpy
numpy.loadtxt("data.txt", delimiter='\t')
Run Code Online (Sandbox Code Playgroud)

重现这一点的最小例子是:

    A   R   N   D   C   Q
A   5   -2  -1  -2  -1  -1
R   -2  7   -1  -2  -4  1
N   -1  -1  7   2   -2  0
Run Code Online (Sandbox Code Playgroud)

data.txt:

[root@mycomp]$ python Needleman-Wunsch.py 
Traceback (most recent call last):
    File "Needleman-Wunsch.py", line 92, in <module>
        (alignedSeq1, alignedSeq2) = computeFMatrix(seq1, seq2, -6)
    File "Needleman-Wunsch.py", line 34, in computeFMatrix
        similarityMatrixMap = readBLOSUM50("BLOSUM50.txt")
    File "Needleman-Wunsch.py", line 16, in readBLOSUM50
        similarityMatrix = np.loadtxt(fileName, delimiter='\t')
    File "/usr/local/lib/python2.7/site-packages/numpy/lib/npyio.py", …
Run Code Online (Sandbox Code Playgroud)

python numpy alignment sequence

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

perl - 用给定的数字数组切割许多字符串

亲爱的,我的同伴perl大师们在世界上〜!

我需要你的帮助.

我有一个字符串文件A和一个数字文件B,如下所示:

文件A:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Run Code Online (Sandbox Code Playgroud)

......等到200.

档案B:

3, 6, 2, 5, 6, 1, ... 2 
Run Code Online (Sandbox Code Playgroud)

(数组中共有200个数字)

然后,使用文件B中的数字,我想将每个字符串从起始位置剪切到文件B中的字符数.

例如,文件B以3,6,2开头...

文件A将是

AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud)

像这样.

所以.到目前为止这是我的代码......

use strict;

if (@ARGV != 2) {
    print "Invalid usage\n";
    print "Usahe: perl program.pl [num_list] [string_file]\n";
    exit(0);
}

my $numbers=$ARGV[0];
my $strings=$ARGV[1];
my $i;

open(LIST,$number);
open(DATA,$strings);

my @list = <LIST>;
my $list_size = scalar @sp_list;


for ($i=0;$i<=$list_size;$i++) {
    print $i,"\n";
    #while (my $line = <DATA>) {    
    }   


close(LIST);
close(DATA);
Run Code Online (Sandbox Code Playgroud)

由于字符串和数字是200,我将数组更改为标量值,以处理每个字符串的每个数字.

我正在研究这个问题.我知道我想使用pos函数,但我不知道如何将每个数字与每个字符串匹配.是先读取字符串?或者用来知道我必须运行多少次才能达到结果?

非常感谢您的帮助! …

arrays string perl cut

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

python从多个目录(文件夹)打开文件

我在多个目录中有多个文件,并且想要迭代要为我的代码运行的每个目录。我写过这样的代码。

import os

path = [".\\folder1\\",".\\forder2\\"]
for i in path:
    # print (i) # test
    for filename in os.listdir(i):
        filedata = open(i+filename,"r")
        data = filedata.read().split()
        string = "".join(data)
        filedata.close()
Run Code Online (Sandbox Code Playgroud)

然而,由于 i 不具体,它会出错。每个文件夹都包含字符串,并通过 os.listdir 访问它们。

从多个目录读取文件时如何解决这个问题?

先感谢您。

python operating-system

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