将序列写入单独的列表或数组

时间:2018-03-13 14:36:45

标签: python-3.x

我正在尝试从文件中将这些序列提取到Python中的单独列表或数组中。

我的数据如下:

>gene_FST
AGTGGGTAATG--TGATG...GAAATTTG
>gene_FPY
AGT-GG..ATGAAT---AAATGAAAT--G

我想

seq1 = [AGTGGGTAATG--TGATG...GAAATTTG]
seq2 = [AGT-GG..ATGAAT---AAATGAAAT--G]

我的计划是稍后比较一下列表的内容

我很感激任何建议

2 个答案:

答案 0 :(得分:0)

到目前为止,这就是我所做的,

f = open (r"C:\Users\Olukayode\Desktop\my_file.txt", 'r') #first r - before the normal string it converts normal string to raw string
def parse_fasta(lines):
    seq = []
    seq1 = []
    seq2 = []
    head = []
    data = ''
    for line in lines:
        if line.startswith('>'):
            if data:
                seq.append(data)
                data = ''
            head.append(line[1:])
        else:
            data+= line.rstrip()
    seq.append(data)
    return seq

    
h = parse_fasta(f)
print(h)
print(h[0])
print(h[1])

给出:

['AGTGGGTAATG--TGATG...GAAATTTG', 'AGT-GG..ATGAAT---AAATGAAAT--G']
AGTGGGTAATG--TGATG...GAAATTTG
AGT-GG..ATGAAT---AAATGAAAT--G

我想我刚想通了,我可以将包含两个序列的每个字符串传递到一个单独的列表中,如果可能的话,

答案 1 :(得分:0)

如果您想获得您在原始问题中寻找的确切结果,即

devilspie2

你可以通过各种方式做到这一点。您可以将数据转换为字典并打印字典项目,而不是更改已有的任何内容。

seq1 = [AGTGGGTAATG--TGATG...GAAATTTG]
seq2 = [AGT-GG..ATGAAT---AAATGAAAT--G]