Linux中根据物理位置提取基因组序列
**一个简单的python脚本实现根据物理位置提取基因组序列。**# 使用方法:
```shell
python get_seq.py --ID 自定义序列名称 --Genome fasta格式的基因组文件 --Chr 染色体号 --Start 起始位置 --End 终止位置
```
# python脚本:
```python
#coding:UTF8
import sys,argparse
from Bio import SeqIO
parser = argparse.ArgumentParser(description='根据物理位置提取基因组文件')
parser.add_argument('--ID', type=str,help='序列名称', required=True)
parser.add_argument('--Genome', type=str,help='基因组', required=True)
parser.add_argument('--Chr', type=str,help='染色体号', required=True)
parser.add_argument('--Start', type=str,help='序列起始位置', required=True)
parser.add_argument('--End', type=str,help='序列终止位置', required=True)
args = parser.parse_args()
name,genome,chro,start,end = args.ID,args.Genome,args.Chr,args.Start,args.End
save=open(name+'.txt','w')
for geno in SeqIO.parse(genome, "fasta"):
if chro.lower()==geno.id.lower():
fa=geno.seq
save.write('>'+name+'\n'+str(fa)+'\n')
print ('succeed')
break
```
# 注意事项
**此脚本需使用python3运行,提前安装argparse、Bio软件包**
**安装方法:**
```shell
pip3 install argparse
pip3 install bio
```
只能说你这样能行,但是效率太低了,你每次提取都要遍历整个基因组。我要是需要快速提取多个位置,你这个方法就不行了 Xiaohanys 发表于 2024-8-16 09:53
只能说你这样能行,但是效率太低了,你每次提取都要遍历整个基因组。我要是需要快速提取多个位置,你这个方 ...
确实,这个效率比较慢,只适合一些简单场景
页:
[1]