원하는 출력을 얻는 방법은 무엇입니까?
Nov 24 2020
다음 명령을 사용하여 프로젝트를 진행하고 있습니다 nano
.
from Bio import SeqIO
import sys
import re
fasta_file = (sys.argv[1])
for myfile in SeqIO.parse(fasta_file, "fasta"):
if len(myfile) > 250:
gene_id = myfile.id
mylist = re.match(r"H149xcV_\w+_\w+_\w+", gene_id)
print (">"+mylist.group(0)) # edited from list to mylist
다음 아웃 아웃을 제공합니다.
>H149xcV_Fge342_r3_h2_d1
>H149xcV_bTr423_r3_h2_d1
>H149xcV_kN893_r3_h2_d1
>H149xcV_DNp021_r3_h2_d1
>H149xcV_JEP3324_r3_h2_d1
>H149xcV_SRt424234_r3_h2_d1
원하는 형식과 고유 한 유전자 ID 만 제공하도록 명령을 변경하려면 어떻게해야합니까?
>H149xcV_Fge342_r3_h2
>H149xcV_bTr423_r3_h2
>H149xcV_kN893_r3_h2
>H149xcV_DNp021_r3_h2
>H149xcV_JEP3324_r3_h2
>H149xcV_SRt424234_r3_h2
답변
2 M__ Nov 24 2020 at 05:18
쉽게 대체 그 match
와 함께 sub
있지만, 사용을 중지하시기 바랍니다 list
변수로 ... myList에 괜찮습니다.
이것은 작동 할 수 있습니다
mylist = re.sub(r'H149xcV_\w+_\w+_\w+', gene_id)
그렇지 않으면
myregex = re.compile('_\w+\s+.*')
fastaid = myregex.sub('', myfile)
또는 @MaximilianPress에서
myregex2 = re.compile('_\w+\n') # or myregex2 = re.compile('_\w+$')
fastaid2 = myregex.sub('\n', myfile) # or fasaid2 = myregex.sub('', myfile)
위의 내용이 작동합니다. 모든 내 코드와 마찬가지로 증명하지 않습니다.
pippo1980 Dec 16 2020 at 16:37
from Bio import SeqIO
import sys
import re
unique = []
fasta_file = (sys.argv[1])
for myfile in SeqIO.parse(fasta_file, "fasta"):
if len(myfile) > 250:
gene_id = myfile.id
if gene.id not in unique:
unique.append(gene.id)
mylist = re.match(r"H149xcV_\w+_\w+_\w+", gene_id)
print (">"+mylist.group(0))
작동하는지 알려주세요 저도 배우고 있습니다