入力チェーンから補完チェーンを印刷する方法

入力チェーンから補完チェーンを印刷する方法

DNA相補鎖配列と逆方向配列の印刷に問題がある。次のような出力が必要です。 テンプレート鎖のDNA配列を入力してください:GTAAGCCGGAAGGアンチセンス鎖のDNA配列はCATTCGGCCTTCCです。逆方向DNA配列はGGAAGCCGAATGである。

答え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"ユーザーの応答を入力し、trto、toなどのtrすべての項目を変更します。結果は変数("complement"の略語)に格納されます。ATCGcompl

rev行テキストを反転させる非標準コマンドです。$REPLY文字列をrevスルーに割り当てます<<<"$REPLY"revまた、反転による逆補体シーケンスの計算にも使用されます$compl

これら3つの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ファイル)、GNUがtac利用可能であるとします(ファイルの行の順序を逆にする)。

  • 逆順:tac filename | rev
  • 補完順序:tr 'ACGT' 'TGCA' <filename
  • 逆補体の順序:tr 'ACGT' 'TGCA' <filename | tac | rev

答え2

$ echo GTAAGCCGGAAGG | tr 'ATCG' 'TAGC'
CATTCGGCCTTCC

man tr詳細は参照してください。

関連情報