コマンドラインツールを介して2つのDNA配列の違いを表示する方法

コマンドラインツールを介して2つのDNA配列の違いを表示する方法

次の質問があります。

私のデータテーブルは次のとおりです

AAAGGGTTT AAAGGG
AAAGGGCCC GGGCCC

このように、3行目に2つのシーケンスの違いを表示したいと思います。

AAAGGGTTT AAAGGG TTT
AAAGGGCCC GGGCCC AAA

diffを使ってみました。ファイル(f1.txtとf2.txt)から個々のシーケンスを抽出し、diffで1行ずつ比較できるようにフォーマットしました。効果(データテーブルの1行))。

awk '{gsub(".","&\n");printf "%s",$0}' < f1.txt >f1a.txt
awk '{gsub(".","&\n");printf "%s",$0}' < f2.txt >f2a.txt
 
diff -y f1a.txt f2a.txt 

希望の結果を得る方法を知っている人はいますか?

答え1

これがあなたが追いかけているのでしょうか?

awk '{$3=$1;sub($2,"",$3)}1' file
  • $3=$1最初のフィールドを3番目のフィールドにコピーし、

  • sub($2,"",$3)3番目のフィールド内で2番目のフィールドを探します。一致するものがある場合は、sub一致する文字列を3番目のフィールドの空の文字列に置き換えます。

  • 最後に1結果を印刷します。これは{print}ステートメントと同じで、書き換えることができます{$3=$1;sub($2,"",$3);print}

結果:

AAAGGGTTT AAAGGG TTT
AAAGGGCCC GGGCCC AAA

答え2

シーケンスのペアで並べ替えを表示する必要がある場合は、適切なバイオ情報ツールを使用してください。配列アラインメントは、一般ユーザが期待する形式の違いを示す。ここでは、ヌクレオチド配列のペアごとの整列のためにblastnBLASTツール(例えばと共にインストール可能)を使用することができます。condaスレッド内の次のコマンドを参照してください。https://www.biostars.org/p/18087/#18095:

blastn -query querySeqSet.fasta -subject targetSeqSet.fasta

関連情報