개체이름으로, 일부의 SNP만, 일루미나 SNP 이름으로 Final Report를 다운로드하면 할 일이 끝난 줄 알았으나 끝이 아니었다. Final Report와 SNP Map 파일의 SNP 순서가 달라서 일관된 순서 즉 SNP 이름 순으로 정렬을 해야 한다. 그래야 다음 프로그램(illumina2pregs)이 동작을 한다. Long Format Exprt Tool도 끝까지 사람을 귀찮게 한다. 어쩌랴, 하는 수 밖에 없다. 

Final Report는 개체, SNP 이름순으로 정렬된 것처럼 보이나, SNP Map 파일은 SNP 이름순으로 정렬된 것으로 보이지 않는다. Final Report도 확실히 정렬되어 있는지 알 수가 없으므로 그냥 정렬한다.정렬 프로그램이 문제다. 윈도우즈의 정렬 프로그램은 생각처럼 동작하지 않는다. 유닉스(리눅스)의 정렬 명령어를 사용하기 바란다. 윈도우에서 리눅스 명령어를 사용하는 가장 좋은 방법은 마이크로소프트의 권고대로 WSL을 사용하는 것이다. WSL을 사용하기 싫다면 리눅스 컴퓨터로 자료를 옮긴 후 정렬하기 바란다. 파일의 앞 뒤 내용을 확인하고, 행의 개수를 세고, 분리하고, 정렬하고, 합치는데 불과 간단한 몇 개의 리눅스 명령어로 해결이 가능하다.

 

wc -l output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt
head output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt
tail output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt

head -n 1 output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt > abv3_snpmap_header.txt
head abv3_snpmap_header.txt

tail -n +2 output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt > abv3_snpmap_body.txt
wc -l abv3_snpmap_body.txt

sort abv3_snpmap_body.txt > abv3_snpmap_body_sorted.txt
head abv3_snpmap_body_sorted.txt
tail abv3_snpmap_body_sorted.txt

cat abv3_snpmap_header.txt abv3_snpmap_body_sorted.txt > abv3_snpmap.txt

wc -l output_01_Axiom_BovMDv3.r2_newsnpname.txt
head -n 15 output_01_Axiom_BovMDv3.r2_newsnpname.txt
tail -n 15 output_01_Axiom_BovMDv3.r2_newsnpname.txt

head -n 11 output_01_Axiom_BovMDv3.r2_newsnpname.txt > abv3_finalreport_header.txt
cat abv3_finalreport_header.txt

tail -n +12 output_01_Axiom_BovMDv3.r2_newsnpname.txt > abv3_finalreport_body.txt
head abv3_finalreport_body.txt
tail abv3_finalreport_body.txt

sort -k2,2 -k1,1 abv3_finalreport_body.txt > abv3_finalreport_body_sorted.txt
head abv3_finalreport_body_sorted.txt
tail abv3_finalreport_body_sorted.txt

cat abv3_finalreport_header.txt abv3_finalreport_body_sorted.txt > abv3_finalreport.txt

illumina2pregs --snpfile abv3_finalreport.txt --mapfile  abv3_snpmap.txt --sortmap --snpfile_out snp_abv3.txt --mapfile_out snpmap_abv3.txt | tee illumia2pregs_01.log

 

wc -l output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt

행의 개수

head output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt

파일 앞 부분 내용 확인

tail output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt

파일 뒷 부분 내용 확인

head -n 1 output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt > abv3_snpmap_header.txt

한 줄 분리하여 저장

head abv3_snpmap_header.txt

분리한 내용 확인

tail -n +2 output_01_Axiom_BovMDv3.r2_SNPMap_newsnpname.txt > abv3_snpmap_body.txt

2줄 이후 분리하여 저장

wc -l abv3_snpmap_body.txt

행의 개수 확인

sort abv3_snpmap_body.txt > abv3_snpmap_body_sorted.txt

정렬

head abv3_snpmap_body_sorted.txt

파일의 앞 부분 확인

tail abv3_snpmap_body_sorted.txt

파일의 뒷 부분 확인

cat abv3_snpmap_header.txt abv3_snpmap_body_sorted.txt > abv3_snpmap.txt

합쳐서 저장

wc -l output_01_Axiom_BovMDv3.r2_newsnpname.txt

행의 개수 확인

head -n 15 output_01_Axiom_BovMDv3.r2_newsnpname.txt

파일의 앞 부분 확인

tail -n 15 output_01_Axiom_BovMDv3.r2_newsnpname.txt

파일의 뒷 부분 확인

head -n 11 output_01_Axiom_BovMDv3.r2_newsnpname.txt > abv3_finalreport_header.txt

파일의 앞 11줄 분리하여 저장

cat abv3_finalreport_header.txt

분리한 파일 확인

tail -n +12 output_01_Axiom_BovMDv3.r2_newsnpname.txt > abv3_finalreport_body.txt

파일의 12줄 이후 분리하여 저장

head abv3_finalreport_body.txt

파일의 앞 부분 확인

tail abv3_finalreport_body.txt

파일의 뒷 부분 확인

sort -k2,2 -k1,1 abv3_finalreport_body.txt > abv3_finalreport_body_sorted.txt

2열, 1일 순으로 정렬하여 저장

head abv3_finalreport_body_sorted.txt

정렬한 파일의 앞 부분 확인

tail abv3_finalreport_body_sorted.txt

정렬한 파일의 뒷 부분 확인

cat abv3_finalreport_header.txt abv3_finalreport_body_sorted.txt > abv3_finalreport.txt

합쳐서 저장

illumina2pregs --snpfile abv3_finalreport.txt --mapfile  abv3_snpmap.txt --sortmap --snpfile_out snp_abv3.txt --mapfile_out snpmap_abv3.txt | tee illumia2pregs_01.log

illumin2pregs 실행

 

(드디어 Axiom 칩으로 실험을 하였을 경우 Final Report로 출력하는 방법을 모두 설명하였다. 이걸 알아 내는데 (나 빼고) 많은 사람이  고생하였다. 나는 그저 어렵게 알아낸 걸 배워서 블로그에 올릴 뿐이다. 써모피셔의 도움을 기대하였으나 그건 오산이었다. 시원한 대답을 몇 번 못 들어봤다. 선택은 여러분의 몫이다.)

+ Recent posts