【发布时间】:2022-08-24 20:25:12
【问题描述】:
我有一个多 fasta 序列文件:test.fasta
>Ara_001
MGIKGLTKLLADNAPSCMKEQKFESYFGRKIAVDASMSIYQFLIVVGRTGTEMLTNEAGE
VTSHLQGMFNRTIRLLEAGIKPVYVFDGKPPELKRQELAKRYSKRADATADLTGAIEAGN
>Ara_002
MGIKGLTKLLADNAPSCMKEQKFESYFGRKIAVDASMSIYQFLIVVGRTGTEMLTNEAGE
VTSHLQGMFNRTIRLLEAGIKPVYVFDGKPPELKRQELAKRYSKRADATADLTGAIEAGN
>Ara_003
MGIKGLTKLLAEHAPRAAAQRRVEDYRGRVIAIDASLSIYQFLVVVGRKGTEVLTNEAEG
LTVDCYARFVFDGEPPDLKKRELAKRSLRRDDASEDLNRAIEVGDEDSIEKFSKRTVKIT
我有另一个范围的列表文件:range.txt
Ara_001 3 60
Ara_002 10 80
Ara_003 20 50
我想提取定义的区域。
我的预期输出将是:
>Ara_001
KGLTKLLADNAPSCMKEQKFESYFGRKIAVDASMSIYQFLIVVGRTGTEMLTNEAGE
VT
>Ara_002
ADNAPSCMKEQKFESYFGRKIAVDASMSIYQFLIVVGRTGTEMLTNEAGE
VTSHLQGMFNRTIRLLEAGIKPVYVFDGKP
>Ara_003
RRVEDYRGRVIAIDASLSIYQFLVVVGRKG
我试过了:
#!/bin/bash
lines=$(awk \'END {print NR}\' range.txt)
for ((a=1; a<= $lines ; a++))
do
number=$(awk -v lines=$a \'NR == lines\' range.txt)
grep -v \">\" test.fasta | awk -v lines=$a \'NR == lines\' | cut -c$number
done;
-
请更详细地更新问题...
$number来自哪里?range.txt中的 2 个数字指的是什么 - 起始位置和结束位置 - 要提取的字符串的起始位置和长度 - 其他;以及这两个数字如何跨行应用 fasta 文件? -
还可以考虑查看How do I format my posts,然后使用正确的格式更新您的问题;查看您的问题历史记录,您可能还想查看What should I do when someone answers my question,然后考虑查看您的问题历史记录
标签: python bash perl bioinformatics fasta