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"
사용자의 응답을 입력 하고 tr
to , to 등 의 tr
모든 항목을 변경합니다 . 결과는 변수 ("complement"의 약어)에 저장됩니다.A
T
C
G
compl
rev
행 텍스트를 반전시키는 비표준 명령입니다. $REPLY
문자열을 rev
through 에 할당 합니다 <<<"$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 파일), GNU를 tac
사용할 수 있다고 가정합니다(파일의 줄 순서를 반대로 바꿈).
- 역순으로:
tac filename | rev
- 보완 순서:
tr 'ACGT' 'TGCA' <filename
- 역보체 순서:
tr 'ACGT' 'TGCA' <filename | tac | rev
답변2
$ echo GTAAGCCGGAAGG | tr 'ATCG' 'TAGC'
CATTCGGCCTTCC
man tr
자세한 내용은 참조하십시오 .