명령줄 도구를 통해 두 DNA 서열 간의 차이점을 표시하는 방법

명령줄 도구를 통해 두 DNA 서열 간의 차이점을 표시하는 방법

다음과 같은 질문이 있습니다.

내 데이터 테이블은 다음과 같습니다

AAAGGGTTT AAAGGG
AAAGGGCCC GGGCCC

이렇게 세 번째 줄에 두 시퀀스의 차이점을 표시하고 싶습니다.

AAAGGGTTT AAAGGG TTT
AAAGGGCCC GGGCCC AAA

diff를 사용해 보았습니다. 파일(f1.txt 및 f2.txt)에서 개별 시퀀스를 추출하고 diff로 한 줄씩 비교할 수 있도록 형식을 지정했는데, 이로 인해 시퀀스 시작 부분에서만 유사하다는 문제가 발생했습니다. 효과(데이터 테이블의 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첫 번째 필드를 세 번째 필드에 복사하고

  • sub($2,"",$3)세 번째 필드 내에서 두 번째 필드를 찾습니다. 일치하는 항목이 있으면 sub일치하는 문자열을 세 번째 필드의 빈 문자열로 바꿉니다.

  • 마지막으로 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

관련 정보