如何从输入链打印补体链

如何从输入链打印补体链

我在打印 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"将用户的响应输入trtr更改所有出现的Ato TCtoG等。结果存储在变量中compl(“补码”的缩写)。

rev是反转行文本的非标准命令。我们将$REPLY字符串赋予revthrough <<<"$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了解更多详情。

相关内容