如何用Python将氨基酸序列格式化为带<|endoftext|>标记的分段文本
解决方法
以下是满足需求的Python实现代码,核心是按原文件的每行独立处理,同时控制每行的氨基酸数量:
# 读取input.txt中的所有序列 with open('input.txt', 'r') as input_file: # 逐行读取,去掉首尾空白后按空格分割成氨基酸列表,跳过空行 raw_sequences = [line.strip().split() for line in input_file if line.strip()] processed_content = [] for seq in raw_sequences: # 为当前序列添加开头标记 marked_seq = ['<|endoftext|>'] + seq # 按每30个元素为一组分割 for start_idx in range(0, len(marked_seq), 30): # 截取当前组的元素,转为空格分隔的字符串 line_chunk = ' '.join(marked_seq[start_idx:start_idx+30]) processed_content.append(line_chunk) # 输出处理后的内容(可选择打印或写入文件) # 打印到控制台 print('\n'.join(processed_content)) # 若要写入文件,取消下面注释 # with open('output.txt', 'w') as output_file: # output_file.write('\n'.join(processed_content))
关键逻辑说明
- 按行独立处理:原文件的每一行对应一个独立的氨基酸序列,读取时保留这种独立性,避免所有序列被无差别拼接。
- 标记添加:给每个序列的最前面插入
<|endoftext|>标记,和氨基酸序列合并成一个统一列表。 - 分段控制:通过
range(0, len(marked_seq), 30)生成起始索引,每次截取最多30个元素,确保每行的元素(含标记)数量不超过30个。
内容的提问来源于stack exchange,提问作者littleworth
相关产品推荐
相关产品推荐

