- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在尝试阅读 fasta 序列,但不知何故,它总是跳过最后一个序列。
你能帮帮我吗,我在这里缺少什么。这是下面的代码。
import sys
fasta = []
test = []
with open("tests.fasta") as file_one:
for line in file_one:
line = line.strip()
if not line:
continue
if line.startswith(">"):
active_sequence_name = line[1:]
if active_sequence_name not in fasta:
test.append(''.join(fasta))
fasta = []
continue
sequence = line
fasta.append(sequence)
print(test)
下面是fasta序列
>1FN3:A|PDBID|CHAIN|SEQUENCE
VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNAL
SALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
>5OKT:A|PDBID|CHAIN|SEQUENCE
MGSSHHHHHHSSGLVPRGSHMELRVGNRYRLGRKIGSGSFGDIYLGTDIAAGEEVAIKLECVKTKHPQLHIESKIYKMMQ
GGVGIPTIRWCGAEGDYNVMVMELLGPSLEDLFNFCSRKFSLKTVLLLADQMISRIEYIHSKNFIHRDVKPDNFLMGLGK
KGNLVYIIDFGLAKKYRDARTHQHIPYRENKNLTGTARYASINTHLGIEQSRRDDLESLGYVLMYFNLGSLPWQGLKAAT
KRQKYERISEKKMSTPIEVLCKGYPSEFATYLNFCRSLRFDDKPDYSYLRQLFRNLFHRQGFSYDYVFDWNMLK*
>2PAB:A|PDBID|CHAIN|SEQUENCE
GPTGTGESKCPLMVKVLDAVRGSPAINVAVHVFRKAADDTWEPFASGKTSESGELHGLTTEEQFVEGIYKVEIDTKSYWK
ALGISPFHEHAEVVFTANDSGPRRYTIAALLSPYSYSTTAVVTNPKE*
>3IDP:B|PDBID|CHAIN|SEQUENCE
HHHHHHDRNRMKTLGRRDSSDDWEIPDGQITVGQRIGSGSFGTVYKGKWHGDVAVKMLNVTAPTPQQLQAFKNEVGVLRK
TRHVNILLFMGYSTKPQLAIVTQWCEGSSLYHHLHIIETKFEMIKLIDIARQTAQGMDYLHAKSIIHRDLKSNNIFLHED
LTVKIGDFGLATEKSRWSGSHQFEQLSGSILWMAPEVIRMQDKNPYSFQSDVYAFGIVLYELMTGQLPYSNINNRDQIIF
MVGRGYLSPDLSKVRSNCPKAMKRLMAECLKKKRDERPLFPQILASIELLARSLPKIHRS
>4QUD:A|PDBID|CHAIN|SEQUENCE
MENTENSVDSKSIKNLEPKIIHGSESMDSGISLDNSYKMDYPEMGLCIIINNKNFHKSTGMTSRSGTDVDAANLRETFRN
LKYEVRNKNDLTREEIVELMRDVSKEDHSKRSSFVCVLLSHGEEGIIFGTNGPVDLKKIFNFFRGDRCRSLTGKPKLFII
QACRGTELDCGIETDSGVDDDMACHKIPVEADFLYAYSTAPGYYSWRNSKDGSWFIQSLCAMLKQYADKLEFMHILTRVN
RKVATEFESFSFDATFHAKKQIPCIVSMLTKELYFYH
最佳答案
问题是 FASTA block 仅在读取新的起始行时附加到 test
,但文件末尾没有起始行,因此最后一个 block 不会附加。所以你需要在循环结束时处理它。像这样:
import sys
fasta = []
test = []
with open("tests.fasta") as file_one:
for line in file_one:
line = line.strip()
if not line:
continue
if line.startswith(">"):
active_sequence_name = line[1:]
if active_sequence_name not in fasta:
test.append(''.join(fasta))
fasta = []
continue
sequence = line
fasta.append(sequence)
# Flush the last fasta block to the test list
if fasta:
test.append(''.join(fasta))
# Print the test list
for i, row in enumerate(test):
print(i)
print(row)
输出
0
1
VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
2
MGSSHHHHHHSSGLVPRGSHMELRVGNRYRLGRKIGSGSFGDIYLGTDIAAGEEVAIKLECVKTKHPQLHIESKIYKMMQGGVGIPTIRWCGAEGDYNVMVMELLGPSLEDLFNFCSRKFSLKTVLLLADQMISRIEYIHSKNFIHRDVKPDNFLMGLGKKGNLVYIIDFGLAKKYRDARTHQHIPYRENKNLTGTARYASINTHLGIEQSRRDDLESLGYVLMYFNLGSLPWQGLKAATKRQKYERISEKKMSTPIEVLCKGYPSEFATYLNFCRSLRFDDKPDYSYLRQLFRNLFHRQGFSYDYVFDWNMLK*
3
GPTGTGESKCPLMVKVLDAVRGSPAINVAVHVFRKAADDTWEPFASGKTSESGELHGLTTEEQFVEGIYKVEIDTKSYWKALGISPFHEHAEVVFTANDSGPRRYTIAALLSPYSYSTTAVVTNPKE*
4
HHHHHHDRNRMKTLGRRDSSDDWEIPDGQITVGQRIGSGSFGTVYKGKWHGDVAVKMLNVTAPTPQQLQAFKNEVGVLRKTRHVNILLFMGYSTKPQLAIVTQWCEGSSLYHHLHIIETKFEMIKLIDIARQTAQGMDYLHAKSIIHRDLKSNNIFLHEDLTVKIGDFGLATEKSRWSGSHQFEQLSGSILWMAPEVIRMQDKNPYSFQSDVYAFGIVLYELMTGQLPYSNINNRDQIIFMVGRGYLSPDLSKVRSNCPKAMKRLMAECLKKKRDERPLFPQILASIELLARSLPKIHRS
5
MENTENSVDSKSIKNLEPKIIHGSESMDSGISLDNSYKMDYPEMGLCIIINNKNFHKSTGMTSRSGTDVDAANLRETFRNLKYEVRNKNDLTREEIVELMRDVSKEDHSKRSSFVCVLLSHGEEGIIFGTNGPVDLKKIFNFFRGDRCRSLTGKPKLFIIQACRGTELDCGIETDSGVDDDMACHKIPVEADFLYAYSTAPGYYSWRNSKDGSWFIQSLCAMLKQYADKLEFMHILTRVNRKVATEFESFSFDATFHAKKQIPCIVSMLTKELYFYH
关于python - 读取fasta序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50121056/
我有一个小的 DNA 序列 fasta 文件,它看起来像这样: >NM_000016 700 200 234 ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATAT
我想使用以下脚本从一个大的 fasta 文件中提取特定的 fasta 序列,但输出为空。 transcripts.txt 文件包含我要从 assembly.fasta 导出到 selected_tra
我有一个名为 fasta1.fasta 的多 fasta 文件,其中包含序列及其 ID。我想要的是剪切具有 ID 的序列 header 并将其减少为仅包含序列的 ID 登录号。我使用了命令行 grep
我有一个 DNA 序列的小 fasta 文件,如下所示: sequence 1 > ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC sequence
我试图找到一个 python 解决方案,使用序列的完整 header 作为查询来提取 fasta 文件中特定序列的长度。完整的 header 作为变量存储在管道的早期(即“CONTIG”)。我想将此脚
我有数千个文件,它们是序列名称列表及其序列,每行一个单独的文件,如下所示: L.abdalai.LJAMM.14363.SanMartindeLosAndes CCCTAAGAATAAT
我有数千个文件,它们是序列名称列表及其序列,每行一个单独的文件,如下所示: L.abdalai.LJAMM.14363.SanMartindeLosAndes CCCTAAGAATAAT
我有一个 fasta 文件,其中包含序列 header 及其相应的序列,如下所示: >ID101_hg19 ATGGGTGTATCGTACCC >ID102_hg19 AGCTTTAGCGGGGTAC
我正在设计一个需要在早期阶段之一输入 .fasta 文件的代码。现在,我正在使用此函数验证输入: def file_validation(fasta): while True:
我知道有很多类似的问题,我已经通读了其中的许多问题。但我仍然无法让我的代码工作。有人可以帮我指出问题吗?谢谢! (base) $ head Sample.pep2 >M00000032072 gene
我有一个包含数千个登录号的文件: 看起来像这样.. >NC_033829.1 Kallithea virus isolate DrosEU46_Kharkiv_2014, complete genom
我想从输入 fasta 文件中检索第 nth 序列(或者最好从 nth 到 mth 序列),理想情况下使用 unix“单线”。 我知道我可以用 perl(或任何其他脚本语言)读取序列、计数,然后打印序
向全世界的 Perl 大师们问好。 我在编程方面遇到了另一个麻烦。我正在编写一个程序,该程序从具有特定输入编号的蛋白质组 fasta 文件中选择随机序列。 一般的 fasta 文件如下所示: >seq
我想根据包含新名称的文本文件更改 fasta 文件中的序列名称。我找到了几种方法,但 seqkit 给人留下了很好的印象,无论如何我无法让它运行。 通过键值文件将键替换为值 fasta 文件 seq.
我只想从多个序列的 fasta 文件中提取第一个序列。我在下面有这段代码,但我无法让循环恰到好处地相互配合。 while (my $line = ) { chomp $line;
向全世界的 Perl 大师们问好。 我在编程方面遇到了另一个麻烦。我正在编写一个程序,该程序从具有特定输入编号的蛋白质组 fasta 文件中选择随机序列。 一般的 fasta 文件如下所示: >seq
我有一个 fasta 文件,其中序列用换行符分隔。我想删除换行符。这是我的文件的示例: >accession1 ATGGCCCATG GGATCCTAGC >accession2 GATATCCATG
我想根据包含新名称的文本文件更改 fasta 文件中的序列名称。我找到了几种方法,但 seqkit 给人留下了很好的印象,无论如何我无法让它运行。 通过键值文件将键替换为值 fasta 文件 seq.
下面是我用于搜索在命令行输入的 FASTA 文件以查找用户提供的主题的代码。当我运行它并输入一个我知道在文件中的主题时,它返回“找不到主题”。我只是 Perl 的初学者,我无法弄清楚如何让它打印找到的
我有一个这样的 fasta 文件(myfasta.fasta): >aat.2.2344.a ATTGCCGGTTTAATATTA >aat.2.d2344.acc ATTGCCGGTTTAATAAA
我是一名优秀的程序员,十分优秀!