我有一个如下所示的表格:
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) 你可以在这里得到数据! 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,然后增加另一个值.
不是字符串中的图案数量.
人类有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) 我正在检查这里的代码.
运行代码时,我得到:
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) 亲爱的,我的同伴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函数,但我不知道如何将每个数字与每个字符串匹配.是先读取字符串?或者用来知道我必须运行多少次才能达到结果?
非常感谢您的帮助! …
我在多个目录中有多个文件,并且想要迭代要为我的代码运行的每个目录。我写过这样的代码。
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 ×5
numpy ×2
string ×2
alignment ×1
arrays ×1
combinations ×1
cut ×1
for-loop ×1
list ×1
matrix ×1
perl ×1
permutation ×1
python-3.x ×1
scipy ×1
sequence ×1