lea*_*ner 1 python linux split fasta
我有一个包含以下内容的大文件:
filename:input.txt
>chr1
jdlfnhl
dh,ndh
dnh.
dhjl
>chr2
dhfl
dhl
dh;l
>chr3
shgl
sgl
>chr2_random
dgld
Run Code Online (Sandbox Code Playgroud)
我需要拆分这个文件,以便我得到四个单独的文件,如下所示:
文件1:chr1.fa
>chr1
jdlfnhl
dh,ndh
dnh.
dhjl
Run Code Online (Sandbox Code Playgroud)
文件2:chr2.fa
>chr2
dhfl
dhl
dh;l
Run Code Online (Sandbox Code Playgroud)
文件3:chr3.fa
>chr3
shgl
sgl
Run Code Online (Sandbox Code Playgroud)
文件4:chr2_random.fa
>chr2_random
dgld
Run Code Online (Sandbox Code Playgroud)
我在linux中尝试了csplit,但是在">"之后不能立即通过文本重命名它们.
csplit -z input.txt '/>/' '{*}'
Run Code Online (Sandbox Code Playgroud)
既然你表明你在Linux机器上'awk'似乎是适合这项工作的工具.
用法:
./foo.awk your_input_file
foo.awk:
#!/usr/bin/awk -f
/^>chr/ {
OUT=substr($0,2) ".fa"
}
OUT {
print >OUT
}
Run Code Online (Sandbox Code Playgroud)
你也可以在一行中做到这一点:
awk '/^>chr/ {OUT=substr($0,2) ".fa"}; OUT {print >OUT}' your_input
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7031 次 |
| 最近记录: |