Difference between revisions of "CB population genetic map"
KangHeum Cho (Talk | contribs) |
KangHeum Cho (Talk | contribs) |
||
(16 intermediate revisions by one user not shown) | |||
Line 58: | Line 58: | ||
-v: variant만 calling해라 | -v: variant만 calling해라 | ||
-m: -c 옵션이 예전 mpileup 옵션이었다면, -m은 아마도 업그레이드 된 형태일 듯 | -m: -c 옵션이 예전 mpileup 옵션이었다면, -m은 아마도 업그레이드 된 형태일 듯 | ||
+ | |||
+ | -> -O, --output-type b|u|z|v | ||
+ | Output compressed BCF (b), uncompressed BCF (u), compressed VCF (z), uncompressed VCF (v). Use the -Ou option when piping between bcftools subcommands to speed up performance by removing unnecessary | ||
+ | compression/decompression and VCF←→BCF conversion. | ||
Line 97: | Line 101: | ||
== 2nd Trial == | == 2nd Trial == | ||
+ | |||
+ | |||
+ | === Data processing === | ||
Line 132: | Line 139: | ||
4) filtering -> 두 개의 파일 생성: InDel 없는 파일 (SNP-only), <b>InDel만</b> 있는 파일 | 4) filtering -> 두 개의 파일 생성: InDel 없는 파일 (SNP-only), <b>InDel만</b> 있는 파일 | ||
− | *InDel의 경우 quality를 조금 높게 (>=50) 설정하여 integrity를 높인다 | + | <nowiki>*</nowiki>InDel의 경우 quality를 조금 높게 (>=50) 설정하여 integrity를 높인다 |
− | * | + | <nowiki>*</nowiki>depth도 높게 (>=5) 설정한다 |
Line 160: | Line 167: | ||
7) 최종 파일은 SNP과 InDel을 합친 파일 | 7) 최종 파일은 SNP과 InDel을 합친 파일 | ||
− | m = 0.2 -> UV.new.chojam.d3.q30.m0.2.SNP.recode.vcf ''' | + | m = 0.2 -> UV.new.chojam.d3.q30.m0.2.SNP.recode.vcf + UV.new.chojam.d5.q50.m0.2.indel.recode.vcf -> '''UV.new.chojam.m0.2.SNPwINDEL.vcf''' (12469) |
+ | |||
+ | m = 0.5 -> UV.new.chojam.d3.q30.m0.5.SNP.recode.vcf + UV.new.chojam.d5.q50.m0.5.indel.recode.vcf -> '''UV.new.chojam.m0.5.SNPwINDEL.vcf''' (9657) | ||
+ | |||
+ | |||
+ | 8) transform into .loc file | ||
+ | |||
+ | command: | ||
+ | |||
+ | python vcf_to_loc.py [vcffile] [population_name] [population_type] [out_locfile] | ||
+ | python vcf_to_loc.py UV.new.chojam.m0.2.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.2.SNPwINDEL.vcf.loc | ||
+ | python vcf_to_loc.py UV.new.chojam.m0.5.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.5.SNPwINDEL.vcf.loc | ||
+ | |||
+ | |||
+ | |||
+ | === Linkage map construction === | ||
+ | |||
+ | |||
+ | |||
+ | 0) 오류 감지 | ||
+ | |||
+ | UV.new.chojam.m0.5.SNPwINDEL.vcf.loc 이 파일을 JoinMap에 옮겼더니 중복된 마커가 감지됨. | ||
+ | |||
+ | ''' double presence of locus Chr08_46691793 (numbers 3193 and 9244)''' | ||
+ | |||
+ | |||
+ | 1) 그래서 일단은 각각의 SNP, InDel 마커를 구분한다. vcf_to_loc.py를 다듬는다. | ||
+ | |||
+ | command: | ||
+ | |||
+ | python vcf_to_loc.py UV.new.chojam.m0.2.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.2.SNPwINDEL.vcf.loc | ||
+ | python vcf_to_loc.py UV.new.chojam.m0.5.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.5.SNPwINDEL.vcf.loc | ||
+ | |||
+ | |||
+ | 2) JoinMap 옵션들 | ||
+ | |||
+ | |||
+ | '''''일단 이하 JoinMap 과정에 들어가는 파일은 missing 50%인 마커들이다.''''' | ||
+ | |||
+ | |||
+ | * 2-1) Similarity of Loci -> Population -> Exclude identicals '''1041 identical loci excluded''' + Exclude similar loci (''0.995'') '''No loci excluded''' | ||
+ | |||
+ | * 2-2) Locus Genotype Frequency -> Highly significant loci excluded (prone to segregation distortion) ''유의성 4개 (****) 이상인 것 제외'' | ||
+ | |||
+ | JoinMap grouping 중, LOD 25.0로 설정했으나 갈라지지 않은 마커가 발견됨 -> vcf filtering을 더 빡세게 해야겠다고 생각함 | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | vcf filtering options: QUAL >= 999, DP >= 5, max-missing = 0.2/0.5 | ||
+ | |||
+ | vcftools --vcf UV.new.chojam.m0.2.SNPwINDEL.vcf --out UV.new.chojam.d5.q999.'''m0.2'''.SNPwINDEL --minDP 5 --minQ 999 --max-missing 0.2 --recode | ||
+ | vcftools --vcf UV.new.chojam.m0.5.SNPwINDEL.vcf --out UV.new.chojam.d5.q999.'''m0.5'''.SNPwINDEL --minDP 5 --minQ 999 --max-missing 0.5 --recode | ||
+ | |||
+ | JoinMap options: similarity >= 0.95, segregation distortion >= *** | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
− | + | 3) 총 24개의 group으로 grouping, prefix ''snpwindel_m50_d5q999''로 저장 (JoinMap, Excel) -> ML interval mapping |
Latest revision as of 03:40, 13 July 2020
WD: 244:/hayasen/chojam/new_GBS
하위 디렉토리:
1) GBS --> /alima9002/YMY/UV/GBS
태영이형이 윤박사님 데이터 분석한 폴더
176 line들 중 138라인만 .bam.sorted.bam 형태로 되어 있고,
나머지 38라인과 모,부본은 .cat.fq.trimmed 형태로 되어 있다.
2) UV --> /NGS/NGS/GlycineMax/DNA/UV
윤박사님이 DNA추출 후 얻은 GBS raw data
분석은 barcode removal까지 된 .fq_trimmed 형식으로 된 파일들을 사용한다.
3) assembly --> /alima9002/ref/Gmax/assembly
Gmax275 genome sequence
Contents |
1st Trial
분석 과정:
1) the_38_lines.list는 모종의 이유로 정상적인 분석에서 제외된 38라인과 모,부본을 담고 있다
이번 분석에서는 일단 이 라인들을 제외하지 않고, 다시 reference에 mapping을 하여 bamfile을 생성했다.
예시:
bwa mem (-t 4) Gmax_275_v2.0.fa 6_barcode.lane7_UV77.fq_trimmed > UV77.bam samtools sort -o UV77.bam.sorted.bam UV77.bam
2) 그렇게 총 174 + 모부본의 bam.sorted.bam 파일이 생성되고, mpileup을 진행한다.
(원래는 samtools mpileup을 썼던 것 같은데 이제는 bcftools mpileup을 사용하나보다)
command:
bcftools mpileup -b bam_list -Ou -f Gmax_275_v2.0.fa | bcftools call -Ov -mv -o UV.chojam.variant.vcfsamtools mpileup -f Gmax_275_v2.0.fa -v -t DP,AD,ADF,ADR,SP,INFO/AD,INFO/ADF,INFO/ADR -u -b bam_list | bcftools call -Ov -mv -o UV.chojam.variant.vcf
samtools mpileup의 -t 옵션은 bcftools mpileup의 -a (annotate) 옵션으로 치환가능하다.
*options: -Ou: 중간단계에서 textual 형태로 쓰지 않고, uncompressed binary 형태로 가지고 있어라 -Ov: vcf 형태의 파일을 만들어라 -v: variant만 calling해라 -m: -c 옵션이 예전 mpileup 옵션이었다면, -m은 아마도 업그레이드 된 형태일 듯
-> -O, --output-type b|u|z|v Output compressed BCF (b), uncompressed BCF (u), compressed VCF (z), uncompressed VCF (v). Use the -Ou option when piping between bcftools subcommands to speed up performance by removing unnecessary compression/decompression and VCF←→BCF conversion.
3) 생성된 vcf 파일 filtering - 일단은 depth, quality에 대해서만 진행
command:
vcftools --vcf UV.chojam.variant.vcf --out UV.chojam.d3.q30 --remove-indels --minDP 3 --minQ 30 --recode
4) 모부본에 대해서 homo이고 polymorphic한 SNP만 걸러낸다.
command:
python parent_homo.py UV.chojam.d3.q30.recode.vcf UV.chojam.d3.q30.recode.homo.vcf
5) missing option: max-missing 0.1 0.3 0.5 0.7
command:
vcftools --vcf UV.chojam.d3.q30.recode.homo.vcf --out UV.chojam.d3.q30.m0.1 --recode --max-missing 0.1
--max-missing 0.1 -> 10178 --max-missing 0.3 -> 9277 --max-missing 0.5 -> 7599 --max-missing 0.7 -> 4899
6) transform into .loc file
command:
python vcf_to_loc.py [vcffile] [population_name] [population_type] [out_locfile] python vcf_to_loc.py UV.chojam.d3.q30.m0.5.recode.vcf new_CB RI6 UV.chojam.d3.q30.m0.5.recode.vcf.loc
근데 이걸 보고 있으니, 몇 개의 라인에서 계속적으로 genotype이 안 읽힌다. 아마 '그' 38개일 듯
2nd Trial
Data processing
분석 과정:
1) '그' 38개 파일의 출처 확인
리드 수가 안 나와서 두 번에 걸쳐 GBS 한 것으로 판단됨
첫 번째 GBS는 '/NGS/NGS/GlycineMax/DNA/UV'에 초록색으로 표시된 '#_barcode.lane#_UV##.fq_trimmed' 형태의 파일이고,
두 번째 GBS ('the_38_lines')는 같은 디렉토리에 있는 하얀색 '#_UV##A.fq_trimmed' 형태의 파일이다.
'그' 38개의 라인은 첫 번째와 두 번째 파일이 합쳐진 'UV##.cat.fq.trimmed' 형태이다.
2) 태영이형이 이미 mapping까지 끝낸 파일들이 있으므로, 그것들을 사용한다.
command:
cp /alima9002/YMY/UV/GBS/*.bam.sorted.bam ./new_bamfiles -> 모부본 포함 총 176개 파일 ls -1 | sort -V > new_bam_list -> 새로운 bam_list 만들기, 이후 모부본 자리 바꾸기
*option: sort -V: sort by lexicographic order(!)
3) mpileup
command:
bcftools mpileup -b new_bam_list -a DP,AD,ADF,ADR,SP,INFO/AD,INFO/ADF,INFO/ADR -Ou -f Gmax_275_v2.0.fa | bcftools call -Ov -mv -o UV.new.chojam.variant.vcf
4) filtering -> 두 개의 파일 생성: InDel 없는 파일 (SNP-only), InDel만 있는 파일
*InDel의 경우 quality를 조금 높게 (>=50) 설정하여 integrity를 높인다 *depth도 높게 (>=5) 설정한다
command:
vcftools --vcf UV.new.chojam.variant.vcf --out UV.new.chojam.d3.q30.SNP --minDP 3 --minQ 30 --remove-indels --recode vcftools --vcf UV.new.chojam.variant.vcf --out UV.new.chojam.d5.q50.indel --minDP 5 --minQ 50 --keep-only-indels --recode
5) run parent_homo.py
command:
python parent_homo.py UV.new.chojam.d3.q30.SNP.recode.vcf UV.new.chojam.d3.q30.SNP.recode.homo.vcf python parent_homo.py UV.new.chojam.d5.q50.indel.recode.vcf UV.new.chojam.d5.q50.indel.recode.homo.vcf
6) missing option: max-missing 0.2 low stringency 0.5 high stringency
command:
vcftools --vcf UV.new.chojam.d3.q30.SNP.recode.homo.vcf --out UV.new.chojam.d3.q30.m0.2.SNP --recode --max-missing 0.2 (0.5) vcftools --vcf UV.new.chojam.d5.q50.indel.recode.homo.vcf --out UV.new.chojam.d5.q50.m0.2.indel --recode --max-missing 0.2 (0.5)
7) 최종 파일은 SNP과 InDel을 합친 파일
m = 0.2 -> UV.new.chojam.d3.q30.m0.2.SNP.recode.vcf + UV.new.chojam.d5.q50.m0.2.indel.recode.vcf -> UV.new.chojam.m0.2.SNPwINDEL.vcf (12469)
m = 0.5 -> UV.new.chojam.d3.q30.m0.5.SNP.recode.vcf + UV.new.chojam.d5.q50.m0.5.indel.recode.vcf -> UV.new.chojam.m0.5.SNPwINDEL.vcf (9657)
8) transform into .loc file
command:
python vcf_to_loc.py [vcffile] [population_name] [population_type] [out_locfile] python vcf_to_loc.py UV.new.chojam.m0.2.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.2.SNPwINDEL.vcf.loc python vcf_to_loc.py UV.new.chojam.m0.5.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.5.SNPwINDEL.vcf.loc
Linkage map construction
0) 오류 감지
UV.new.chojam.m0.5.SNPwINDEL.vcf.loc 이 파일을 JoinMap에 옮겼더니 중복된 마커가 감지됨.
double presence of locus Chr08_46691793 (numbers 3193 and 9244)
1) 그래서 일단은 각각의 SNP, InDel 마커를 구분한다. vcf_to_loc.py를 다듬는다.
command:
python vcf_to_loc.py UV.new.chojam.m0.2.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.2.SNPwINDEL.vcf.loc python vcf_to_loc.py UV.new.chojam.m0.5.SNPwINDEL.vcf new_CB RI6 UV.new.chojam.m0.5.SNPwINDEL.vcf.loc
2) JoinMap 옵션들
일단 이하 JoinMap 과정에 들어가는 파일은 missing 50%인 마커들이다.
- 2-1) Similarity of Loci -> Population -> Exclude identicals 1041 identical loci excluded + Exclude similar loci (0.995) No loci excluded
- 2-2) Locus Genotype Frequency -> Highly significant loci excluded (prone to segregation distortion) 유의성 4개 (****) 이상인 것 제외
JoinMap grouping 중, LOD 25.0로 설정했으나 갈라지지 않은 마커가 발견됨 -> vcf filtering을 더 빡세게 해야겠다고 생각함
vcf filtering options: QUAL >= 999, DP >= 5, max-missing = 0.2/0.5
vcftools --vcf UV.new.chojam.m0.2.SNPwINDEL.vcf --out UV.new.chojam.d5.q999.m0.2.SNPwINDEL --minDP 5 --minQ 999 --max-missing 0.2 --recode vcftools --vcf UV.new.chojam.m0.5.SNPwINDEL.vcf --out UV.new.chojam.d5.q999.m0.5.SNPwINDEL --minDP 5 --minQ 999 --max-missing 0.5 --recode
JoinMap options: similarity >= 0.95, segregation distortion >= ***
3) 총 24개의 group으로 grouping, prefix snpwindel_m50_d5q999로 저장 (JoinMap, Excel) -> ML interval mapping