gpt4 book ai didi

python - 新建一个数组

转载 作者:行者123 更新时间:2023-12-01 03:47:07 26 4
gpt4 key购买 nike

我正在编写一个解析序列等位基因的程序。我编写了读取文件并创建头数组和序列数组的代码。以下是一个文件示例:

>DQB1*04:02:01
------------------------------------------------------------
--ATGTCTTGGAAGAAGGCTTTGCGGAT-------CCCTGGAGGCCTTCGGGTAGCAACT
GTGACCTT----GATGCTGGCGATGCTGAGCACCCCGGTGGCTGAGGGCAGAGACTCTCC
CGAGGATTTCGTGTTCCAGTTTAAGGGCATGTGCTACTTCACCAACGGGACCGAGCGCGT
GTTGGAGCTCCGCACGACCTTGCAGCGGCGA-----------------------------
---GTGGAGCCCACAGTGACCATCTCCCCATCCAGGACAGAGGCCCTCAACCACCACAAC
CTGCTGGTCTGCTCAGTGACAG----CATTGGAGGCTTCGTGCTGGGGCTGATCTTCCTC
GGGCTGGGCCTTATTATC--------------CATCACAGGAGTCAGAAAGGGCTCCTGC
ACTGA-------------------------------------------------------
>OMIXON_CONSENSUS_M_155_09_4890_DQB1*04:02:01
-------------------ATCAGGTCCAAGCTGTGTTGACTACCACTACTTTTCCCTTC
GTCTCAATTATGTCTTGGAAGAAGGCTTTGCGGATCCCTGGAGGCCTTCGGGTAGCAACT
GTGACCTTGATGCTGGCGATGCTGAGCACCCCGGTGGCTGAGGGCAGAGACTCTCCCGGT
AAGTGCAGGGCCACTGCTCTCCAGAGCCGCCACTCTGGGAACAGGCTCTCCTTGGGCTGG
GGTAGGGGGATGGTGATCTCCATGATCTCGGACACAATCTTTCATCAACATTTCCTCTCT
TTGGGGAAAGAGAACGATGTTGCATTCCCATTTATCTTT---------------------
>GENDX_CONSENSUS_M_155_09_4890_DQB1*04:02:01
TGCCAGGTACATCAGATCCATCAGGTCCAAGCTGTGTTGACTACCACTACTTTTCCCTTC
GTCTCAATTATGTCTTGGAAGAAGGCTTTGCGGATCCCTGGAGGCCTTCGGGTAGCAACT
GTGACCTTGATGCTGGCGATGCTGAGCACCCCGGTGGCTGAGGGCAGAGACTCTCCCGGT
AAGTGCAGGGCCACTGCTCTCCAGAGCCGCCACTCTGGGAACAGGCTCTCCTTGGGCTGG
GGTAGGGGGATGGTGATCTCCATGATCTCGGACACAATCTTTCATCAACATTTCCTCTCT

标题是('>DQB1'、'>GENDX' 和 '>OMIXON'),三个序列是上面看到的其他三个字符串。

我的代码的下一部分检测等位基因序列是否完整或不完整。如果 >DQB1 序列中有 4 个以上的断裂,则等位基因被确定为“不完整”。 (中断由“-”表示)。例如,上面的序列被破坏,因为有五个中断。

我正在尝试编写代码,如果检测到不完整的等位基因,程序将创建一个仅包含 >GENDX 和 >OMIXON header 和序列的新数组。

如何制作不包含 >DQB1 的数组?

这是我的代码:

import sys, re

max_num_breaks=4
filename=sys.argv[1]
f=open(filename,"r")
header=[]
header2=[]
sequence=[]
sequence2=[]
string=""
for line in f:
if ">" in line and string=="":
header.append(line[:-1])
elif ">" in line and string!="":
sequence.append(string)
header.append(line[:-1])
string=""
else:
string=string+line[:-1]
sequence.append(string)
s1=sequence[0]
breaks=sum(1 for m in re.finditer("-+",''.join(s1.splitlines())))
if breaks>max_num_breaks:
print "Incomplete Reference Allele Detected"
for m in range(len(header)):
if re.finditer(header[m], 'OMIXON') or re.finditer(header[m], 'GENDX'):
header2.append(header[m])
sequence2.append(sequence[m])
print header2

上述代码的问题是,每当我打印 header2 时,它仍然包含 DQB1。

最佳答案

为什么要使用re.finditer

怎么样

if header[m].find('OMIXON') > -1 or header[m].find('GENDX') > -1:

关于python - 新建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com