我在打印 DNA 互补链序列以及反向序列时遇到问题,我想要这样的输出 请输入模板链的 DNA 序列: GTAAGCCGGAAGG 反义链的 DNA 序列是 CATTCGGCCTTCC 反向 DNA 序列是 GGAAGGCCGAATG
答案1
#!/bin/bash
read -p 'Please enter DNA sequence of template strand: '
compl=$( tr 'ACGT' 'TGCA' <<<"$REPLY" )
revseq=$( rev <<<"$REPLY" )
revcompl=$( rev <<<"$compl" )
printf 'DNA sequence of antisense strand is %s\n' "$compl"
printf 'Reverse DNA sequence is %s\n' "$revseq"
printf 'Reverse-complement DNA sequence is %s\n' "$revcompl"
您可能想看看StackExchange 生物信息学网站。
read
将从用户读取输入(或控制脚本标准输入的任何内容)。可以-p
添加提示文字或问题。用户的响应默认存储在$REPLY
.
tr
将文本中的字符从一组更改为另一组。我们<<<"$REPLY"
将用户的响应输入tr
并tr
更改所有出现的A
to T
、C
toG
等。结果存储在变量中compl
(“补码”的缩写)。
rev
是反转行文本的非标准命令。我们将$REPLY
字符串赋予rev
through <<<"$REPLY"
。rev
还用于通过反转 来计算反向补序列$compl
。
这三个printf
语句产生输出。
运行示例:
$ bash script.sh
Please enter DNA sequence of template strand: AAACGTTTG
DNA sequence of antisense strand is TTTGCAAAC
Reverse DNA sequence is GTTTGCAAA
Reverse-complement DNA sequence is CAAACGTTT
如果 DNA 存储在文件中仅有的其中的DNA(即不是fasta 文件),并假设 GNUtac
可用(反转文件中行的顺序):
- 相反的顺序:
tac filename | rev
- 补体序列:
tr 'ACGT' 'TGCA' <filename
- 反向补体序列:
tr 'ACGT' 'TGCA' <filename | tac | rev
答案2
$ echo GTAAGCCGGAAGG | tr 'ATCG' 'TAGC'
CATTCGGCCTTCC
请参阅man tr
了解更多详情。