-
awk 다루기 - Data preprocessinggenome data analysis/Genome analysis 2021. 3. 1. 12:46
대량의 genome data를 다룰 때 awk, grep 등을 잘 쓰면 효율적으로 원하는 데이터를 얻거나 원하는 형식으로 만들 수 있습니다.
예제 샘플은 github.com/tobiasrausch/svcatalog 여기서 받았습니다. 여기에 있는 "samples.tsv"를 썼습니다.
아래 나오는 방법들은 파이썬으로 거의 똑같이 할 수 있습니다만 저처럼 파이썬 기본이 좀 부족한 상태에서 데이터를 다루다 보면 글자를 다루는 코드라 숫자라서 안 되는 경우가 있고 반대로 글자라서 안 되는 오류들이 많이 생길 거예요. 근데 awk 나 grep에서는 그런 오류가 잘 안 생깁니다. 그래서 좀 더 편한 거 같아요
1. Data 형태보기
cat samples.tsv| awk '{print $0}' | less # or, less samples.tsv
HG00096 EUR GBR male
HG00268 EUR FIN female
HG00419 EAS CHS female
HG00759 EAS CDX female
HG01051 AMR PUR male
HG01112 AMR CLM male굳이 이렇게 안 해도 되지만 awk를 쓰는 가장 기본적인 형태인 것 같아서 이렇게 했습니다.
2. 두 번째 열 데이터를 보고 싶을 때
cat samples.tsv| awk '{print $2}' | less # 또는 cat samples.tsv| cut -f2 | less
파일로 저장하고 싶을 때는 "| less" 대신에 "> file.txt" 이런 형식으로 해주시면 됩니다.
3. 두 번째, 세 번째, 첫 번째 열 순서로 데이터를 보고 싶을 때
cat samples.tsv| awk '{print $2,$3,$1}' | less # 또는 cat samples.tsv| cut -f2,3,1 | less
4. 위의 경우에서 두 번째 열은 첫 번째 숫자(글자)만 필요한 경우
cat samples.tsv| awk '{print substr($2,1,1),$3,$1}' | less
E GBR HG00096
E FIN HG00268
E CHS HG00419
E CDX HG00759
A PUR HG01051
A CLM HG01112
E IBS HG015005. 위의 경우에서 첫 번째 열의 세 번째 숫자(글자)부터 4개 글자(숫자)가 필요한 경우
cat samples.tsv| awk '{print substr($2,1,1),$3,substr($1,3,4)}' | less
* 위에 적힌 내용 따라 하시다가 안 되는 경우가 있을 수 있는데 보통
1. 괄호 처리
2. 따옴표 확인 (" " 또는 ' ') 이런 형태의 따옴표여야 합니다. (“ “ 또는 ‘ ‘) 이렇게 약간 대각선으로 되어있는 형태의 따옴표는 상황에 따라 안 될 수도 있습니다.
이 두 가지를 먼저 확인해보세요
6. 필터링
6.1. 세 번째 열이 ACB 일 경우의 데이터만 선택
cat samples.tsv| awk '$3=="ACB" {print $0}' | less
6.2. 첫 번째 열이 NA를 포함하고 세 번째 열이 TSI 인 데이터만 선택
cat samples.tsv| awk '$1~/NA/ && $3=="TSI" {print $0}' | less
6.3. 첫 번째 열의 끝 숫자가 6이면서 4번째 열이 female 이 아닌 데이터만 선택
cat samples.tsv| awk '$1~/_6$/ && $4!="female" {print $0}' | less
SMALL'genome data analysis > Genome analysis' 카테고리의 다른 글
Insilico PCR including Batch option (0) 2021.09.12 Intergrative Genomics View (IGV) 사용법 (0) 2020.05.05 Multiple genome alignment, Synteny map 그리기 - Mauve (0) 2020.04.18 Variants Call Format (VCF) 파일 하나로 합치기 (0) 2020.04.17 Local BLAST - makeblastdb 이용 nhr, nin, nsq 파일 만들기 (0) 2020.04.15