본문 바로가기
생물정보학/Tools

[fastqe] fastqe , fastq 파일의 quality를 이모티콘으로! , fastq 파일이란?

by HanJoohyun 2018. 7. 29.
반응형

 

 

 

안녕하세요 한주현입니다.

 

오늘은 fastqe 라고 재미난 라이브러리를 하나 소개해 보겠습니다. ㅎㅎ



fastqe 개발자님 페이지



fastq에 emoji (에모지, 이모티콘) 정보를 더한 fastqe에 대해 적어보겠습니다


fastq의 quality를 아래와 같이 emoticon 으로 나타낸 것 이지요.


fastqe를 알아보기 전에 간단하게 fastq가  어떤 포맷의 파일인지 알아볼까요?



fastq?


fastq는 시퀀서에서 읽은 염기서열의 정보를 4줄에 걸친 텍스트 정보로 나타낸 것 입니다.


fastq 각 줄의 정보

첫 번째 줄: @ 로 시작하여 sequence identifier를 나타냅니다.

두 번째 줄: raw sequence를 나타냅니다.

세 번째 줄: + 기호로 구분자 역할을 합니다. 옛날 포맷의 경우는 sequence identifier 가 같이 나오기도 합니다.

네 번째 줄: raw sequence에 해당하는 quality 점수가 나옵니다.


첫 번째 줄인 sequence identifier 정보


첫 줄은 아래와 같이 @ 기호로 시작합니다

@A12345:218:A1B2CDEFG:2:1101:26443:2088 1:N:0:ACGTACGT

A12345 : 기기 이름
218 : run id
A1B2CDEFG : Flow cell id
2 : Flow cell lane
1101 : tile number
26443 : x축 값
2088 : y축 값
1 : pair 번호
Y or N : read의 filter 여부
0 : control bit
ACGTACGT : index 서열


네 번째 줄인 quality 정보

fastq의 quality 정보는 ASCII 값으로 나타냅니다.

ASCII table에서 출력 가능한 character 중 가장 낮은 숫자는 33인 ! 로

이 문자를 시작으로 quality 정보를 나타냅니다.

quality 가 가장 낮은 값은 0 점으로, 출력 가능한 가장 낮은 ASCII 값이 33 이므로

! 의 ASCII 값인 33 에서 33을 빼면 0이 되겠지요.

점수는 Phred score로 표현되는데 그 의미는 아래 식으로 표현할 수 있습니다.

만약 Quality값이 30 이라면 Probability는 아래식과 같이 계산하면 0.001이 나옵니다.

이 값은 sequencer가 잘못 읽을 확률로, sequencer가 맞게 읽을 확률은 1-0.001 을 하면 99.9% 가 나옵니다.




그래서 아래와 같은 신뢰도가 나오게 되죠.

10은 90% 의 신뢰도,
20은 99% 의 신뢰도,
30은 99.9% 의 신뢰도,
40은 99.99% 의 신뢰도를 나타냅니다.

문자 

ASCII 값 

ASCII 값 - 33 

 !

33 

 "

34 

 #

35 

 $

36 

 %

37 

4

 &

38 

5

 '

39 

6

 (

40 

 )

41 

 *

42 

 +

43 

10 

 ,

44 

11 

 -

45 

12 

 .

46 

13 

 /

47 

14 

 0

48 

15 

 1

49 

16 

 2

50 

17 

 3

51 

18 

 4

52 

19 

 5

53 

20 

 6

54 

21 

 7

55 

22 

 8

56 

23 

 9

57 

24 

 :

58 

25 

 ;

59 

26 

 <

60 

27 

 =

61 

28 

 >

62 

29 

 ?

63 

30 

 @

64 

31 

 A

65 

32 

 B

66 

33 

 C

67 

34 

 D

68 

35 

 E

69 

36 

 F

70 

37 






fastqe?


그래서 fastqe는 fastq의 네 번째 줄인 quality 정보를 ASCII 값이 아닌 emoticon 으로 표현해 줍니다.



이렇게 말이죠!!


정말 재밌네요 ㅎㅎ


파이썬으로 실행됩니다 ㅎㅎ


설치 방법

 $ pip install fastqe


실행 방법

$ fastqe -py -h

usage: fastqe [-h] [--minlen N] [--version] [--mean] [--bin] [--min] [--max]

              [--log LOG_FILE] [--scale]

              [FASTA_FILE [FASTA_FILE ...]]


Read one or more FASTQ files, compute quality stats for each file, print as

emoji... for some reason.


positional arguments:

  FASTA_FILE      Input FASTQ files


optional arguments:

  -h, --help      show this help message and exit

  --minlen N      Minimum length sequence to include in stats (default 0)

  --version       show program's version number and exit

  --mean          show mean quality per position (DEFAULT)

  --bin           use binned scores

  --min           show minimum quality per position

  --max           show maximum quality per position

  --log LOG_FILE  record program progress in LOG_FILE

  --scale         show relevant scale in output


제가 실행하였던 fastq 파일을 샘플로 드려봅니다 ㅎㅎ


sample_1.fastq

$ cat sample_1.fastq 

@A12345:218:A1B2CDEFG:2:1101:26443:2088 1:N:0:ACGTACGT

TGAGCCGAGATTGTGCCACCGCACTCCAGCCTGGGTGACCTACTGAGACTCTGTCTCAGAGAGAGAGAGAGGAAGGAGGGGAGGGGAGAAGAGGGAAAGGA

+

!!!!!"""""#$%^&'()**+,-./012345566778899::;;<<==>>??@@AABBCCDDEEFFGGHHIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJ



재미난 점은 binning 이 가능합니다.


각 점수를 아래와 같이 scale  별로 나타낼 수 있지만



아래와 같이 구간을 정하여 특정 점수 구간이면 같은 quality 정보로 표시할 수 있다는 얘기 입니다 ㅎㅎ




재밌게 참 잘만들어주신 개발자 분께 경의의 박수를 드립니다 짝짝짝 👏👏👏😁





참고 문헌

https://fastqe.com/

https://github.com/lonsbio/fastqe




오늘은 fastq 파일의 quality 라인을 emoticon 으로 표현한 fastqe에 대해 알아보았습니다.

그럼 다음에 또 만나요 ^^




기부 버튼을 만들었습니다
여러분들의 작은 정성이 저에게 큰 힘이 됩니다
기부해주신 분들을 기억하며
더 좋은 내용으로 보답해 드리겠습니다 :)

Donate 버튼은 paypal 결제로 paypal 계정이 없으시더라도
카드로도 기부 가능하십니다 :)
Use your credit card or bank account (where available). 옆의 continue 를 누르시면 됩니다

한주현 드림



 



반응형

댓글