第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在 ID 行后跟值行的文件中按 ID 對行進(jìn)行分組?

如何在 ID 行后跟值行的文件中按 ID 對行進(jìn)行分組?

縹緲止盈 2023-07-05 15:45:18
我生成的序列文件如下:>rpl-7ATGGCTCCAAC>rpl-7AAGAAAGTGCCACAGGTTCCAGAAAC>rpl-8AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC>rpl-8GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA>rpl-8AAGTTCAACATCATCTGTCTTGAGGA我想合并相同ID的序列,就像這樣:>rpl-7ATGGCTCCAACAAGAAAGTGCCACAGGTTCCAGAAAC>rpl-8AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGCGCTCTCCAGATCCTCCGTCTTCGTCAGATCAAAAGTTCAACATCATCTGTCTTGAGGA我用python判斷以'>'開頭的字符串是否相同,如果相同則繼續(xù)增加序列。但是,這種方法無法輸出第一個(gè)ID。另外,我認(rèn)為使用awk會更容易,不幸的是我對 awk 不熟悉。你知道該怎么做嗎?謝謝。
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

循環(huán)輸入文件,使用rpl-idas 鍵分組到字典并將值附加到列表中:



rpl_dict = {}


with open('rpl_input.txt') as rpl_input_file:

    lines = rpl_input_file.readlines()

    for line in lines:

        # Fetching current `rpl-id`

        if line.startswith('>rpl'):

            rpl_key = line.strip()

        # Fetching current `rpl-value`

        else:

            rpl_value = line.strip()

            # Appending current `rpl-value`

            if rpl_key not in rpl_dict.keys():

                rpl_dict[rpl_key] = []

            rpl_dict[rpl_key].append(rpl_value)


# {'>rpl-7': ['ATGGCTCCAAC', 'AAGAAAGTGCCACAGGTTCCAGAAAC'], '>rpl-8': ['AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC', 'GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA', 'AAGTTCAACATCATCTGTCTTGAGGA']}

print(rpl_dict)


with open('rpl_output.txt', 'w') as rpl_output_file:

    for rpl_id, rpl_values in rpl_dict.items():

        rpl_output_file.write(f'{rpl_key}\n')

        for v in rpl_values:

            rpl_output_file.write(f'{v}\n')

輸出文件:


>rpl-8

ATGGCTCCAAC

AAGAAAGTGCCACAGGTTCCAGAAAC

>rpl-8

AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC

GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA

AAGTTCAACATCATCTGTCTTGAGGA


查看完整回答
反對 回復(fù) 2023-07-05
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是另一個(gè)解決方案,


input_ = """>rpl-7

ATGGCTCCAAC

>rpl-7

AAGAAAGTGCCACAGGTTCCAGAAAC

>rpl-8

AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC

>rpl-8

GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA

>rpl-8

AAGTTCAACATCATCTGTCTTGAGGA"""


results = {}


lines = input_.splitlines()

for i, j in zip(lines[::2], lines[1::2]):

    results.setdefault(i, []).append(j)


for i, j in results.items():

    print(i)

    print("\n".join(j))

>rpl-7

ATGGCTCCAAC

AAGAAAGTGCCACAGGTTCCAGAAAC

>rpl-8

AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC

GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA

AAGTTCAACATCATCTGTCTTGAGGA


查看完整回答
反對 回復(fù) 2023-07-05
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用正則表達(dá)式來執(zhí)行此操作。由于您提到文件,我添加了新行字符,您可以將其替換為文件的內(nèi)容。


import re


regex = r'rpl-\d\n.*(?:$|\n)'

dic = {}

test_str = (">rpl-7\n"

    "ATGGCTCCAAC\n"

    ">rpl-7\n"

    "AAGAAAGTGCCACAGGTTCCAGAAAC\n"

    ">rpl-8\n"

    "AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGC\n"

    ">rpl-8\n"

    "GCTCTCCAGATCCTCCGTCTTCGTCAGATCAA\n"

    ">rpl-8\n"

    "AAGTTCAACATCATCTGTCTTGAGGA\n")


matches = re.finditer(regex, test_str, re.MULTILINE)


for  match in matches:

    rpl,pro = match.group().split('\n')

    if rpl in dic:

        dic[rpl] = dic[rpl]+pro

    else:

        dic[rpl] = pro

輸出:


{'rpl-7': 'ATGGCTCCAACAAGAAAGTGCCACAGGTTCCAGAAAC',

 'rpl-8': 'AAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGCGCTCTCCAGATCCTCCGTCTTCGTCAGATCAAAAGTTCAACATCATCTGTCTTGAGGA'}



查看完整回答
反對 回復(fù) 2023-07-05
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號