"): # 如果是以">"开头的行,表示基因ID行 gene_id = line[1:].strip() # 获取基因ID # 如果基因ID在替换字典中,则替换为新ID if gene_id in replacement_dict: new_gene_id = replacement_dict[gene_id] outfile.write(f">{new_gene_id}\n") else: outfile.write(line) # 如果没有匹配到替换ID,保持原ID else: # 不是基因ID行(即FASTA序列行),直接写入输出文件 outfile.write(line) # 主函数 def"> "): # 如果是以">"开头的行,表示基因ID行 gene_id = line[1:].strip() # 获取基因ID # 如果基因ID在替换字典中,则替换为新ID if gene_id in replacement_dict: new_gene_id = replacement_dict[gene_id] outfile.write(f">{new_gene_id}\n") else: outfile.write(line) # 如果没有匹配到替换ID,保持原ID else: # 不是基因ID行(即FASTA序列行),直接写入输出文件 outfile.write(line) # 主函数 def"> "): # 如果是以">"开头的行,表示基因ID行 gene_id = line[1:].strip() # 获取基因ID # 如果基因ID在替换字典中,则替换为新ID if gene_id in replacement_dict: new_gene_id = replacement_dict[gene_id] outfile.write(f">{new_gene_id}\n") else: outfile.write(line) # 如果没有匹配到替换ID,保持原ID else: # 不是基因ID行(即FASTA序列行),直接写入输出文件 outfile.write(line) # 主函数 def">
# 导入必要的库
import re
# 读取替换信息文件 as.txt
def read_replacement_info(file_path):
replacement_dict = {}
with open(file_path, 'r') as f:
for line in f:
old_id, new_id = line.strip().split() # 假设文件是空格分隔的
replacement_dict[old_id] = new_id
return replacement_dict
# 替换FASTA文件中的基因ID
def replace_gene_ids(input_fasta, output_fasta, replacement_dict):
with open(input_fasta, 'r') as infile, open(output_fasta, 'w') as outfile:
for line in infile:
if line.startswith(">"): # 如果是以">"开头的行,表示基因ID行
gene_id = line[1:].strip() # 获取基因ID
# 如果基因ID在替换字典中,则替换为新ID
if gene_id in replacement_dict:
new_gene_id = replacement_dict[gene_id]
outfile.write(f">{new_gene_id}\\n")
else:
outfile.write(line) # 如果没有匹配到替换ID,保持原ID
else:
# 不是基因ID行(即FASTA序列行),直接写入输出文件
outfile.write(line)
# 主函数
def main():
input_fasta = 'AT-bhlh1.fa' # 输入FASTA文件路径
replacement_file = 'as.txt' # 替换信息文件路径
output_fasta = 'AT-bhlh2.fa' # 输出FASTA文件路径
# 读取替换信息文件
replacement_dict = read_replacement_info(replacement_file)
# 替换基因ID并保存结果
replace_gene_ids(input_fasta, output_fasta, replacement_dict)
print(f"基因ID已成功替换并保存到 {output_fasta}")
# 运行脚本
if __name__ == "__main__":
main()