次の質問があります。
私のデータテーブルは次のとおりです
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
シーケンスのペアで並べ替えを表示する必要がある場合は、適切なバイオ情報ツールを使用してください。配列アラインメントは、一般ユーザが期待する形式の違いを示す。ここでは、ヌクレオチド配列のペアごとの整列のためにblastn
BLASTツール(例えばと共にインストール可能)を使用することができます。conda
スレッド内の次のコマンドを参照してください。https://www.biostars.org/p/18087/#18095:
blastn -query querySeqSet.fasta -subject targetSeqSet.fasta