안녕하세요 한주현입니다.
오늘은 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 정보
문자 |
ASCII 값 |
ASCII 값 - 33 |
! |
33 |
0 |
" |
34 |
1 |
# |
35 |
2 |
$ |
36 |
3 |
% |
37 |
4 |
& |
38 |
5 |
' |
39 |
6 |
( |
40 |
7 |
) |
41 |
8 |
* |
42 |
9 |
+ |
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://github.com/lonsbio/fastqe
댓글