gpt4 book ai didi

bash - 如何使用 bash 循环替换 fasta 文件中行中的字母?

转载 作者:行者123 更新时间:2023-11-29 09:38:59 27 4
gpt4 key购买 nike

我想改变所有n在序列中放入- ,但我不知道如何让我的 bash 脚本不更改 n出现在序列名称中。我没有使用 sed 或正则表达式来确保我的 bash 脚本只读取不以 > 开头的行的经验,因为它表示 header 。

示例文件:

>Name_with_nnn
nnnatgcnnnatttg
>Name2_with_nnn
atgggnnnnGGtnnn

同时我想将所有小写字母转换为大写字母,仅在序列行中。我什至不知道如何开始使用 sed,我发现它真的很难理解。

预期输出:

>Name_with_nnn
---ATGC---ATTTG
>Name2_with_nnn
ATGGG----GGT---

因此,在我创建序列文件后,我尝试使用以下命令继续我的脚本:

while IFS= read -r line
do
if [[ $line == ">"* ]]
then
echo "Ignoring header line: $line"
else
echo "Converting to uppercase and then N-to-gaps"
# sed or tr?? do call $line or do I call $OUTFILE? so confused..
fi
done

最佳答案

您可以使用 sed 解决此问题下面一行:

sed -i "/^>/! {s/n/-/g; s/\(.*\)/\U\1/g}" text.txt

你的输出将是:

>Name_with_nnn
---ATGC---ATTTG
>Name2_with_nnn
ATGGG----GGT---

关于bash - 如何使用 bash 循环替换 fasta 文件中行中的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54027847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com