{"id":117,"date":"2025-02-23T03:53:45","date_gmt":"2025-02-23T10:53:45","guid":{"rendered":"https:\/\/blogs.ubc.ca\/evobiodriresources\/?page_id=117"},"modified":"2025-02-23T03:54:11","modified_gmt":"2025-02-23T10:54:11","slug":"population-selection-analysis","status":"publish","type":"page","link":"https:\/\/blogs.ubc.ca\/evobiodriresources\/population-selection-analysis\/","title":{"rendered":"Population Selection Analysis"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This tutorial provides a step-by-step guide for calculating and visualizing genetic diversity metrics such as \u03c0 (nucleotide diversity), Tajima\u2019s D (neutrality test), and Fst (population differentiation). These metrics are essential for understanding genetic variation within and between populations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Required Tools and Files:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>vcftools<\/strong>: For calculating \u03c0, Tajima\u2019s D, and Fst.<\/li>\n\n\n\n<li><strong>R<\/strong>: For visualizing the results using ggplot2 and ggridges.<\/li>\n\n\n\n<li><strong>Data Files<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>VCF File<\/strong>: <code>data\/all.vcf<\/code><\/li>\n\n\n\n<li><strong>Population Lists<\/strong>: <code>data\/pop_wild.list<\/code> and <code>data\/pop_cultivated.list<\/code> (lists of individuals in wild and cultivated populations).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 1: Calculate \u03c0 Values<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this step, we calculate nucleotide diversity (\u03c0) for both wild and cultivated populations using a sliding window approach.<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code># Parameter settings<br>VCF=\"data\/all.vcf\"<br>WINDOW=100000  # 100 kb window<br>STEP=10000     # 10 kb sliding step<br><br># Wild population<br>vcftools --vcf $VCF \\<br>    --window-pi $WINDOW \\<br>    --window-pi-step $STEP \\<br>    --keep data\/pop_wild.list \\<br>    --out results\/pi\/wild_population<br><br># Cultivated population<br>vcftools --vcf $VCF \\<br>    --window-pi $WINDOW \\<br>    --window-pi-step $STEP \\<br>    --keep data\/pop_cultivated.list \\<br>    --out results\/pi\/cultivated_population<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 2: Visualize \u03c0 Values<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After calculating \u03c0, we can visualize the values across the genome with a Manhattan plot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In R:<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code>library(ggplot2)<br>library(dplyr)<br><br># Read data<br>wild_pi &lt;- read.table(\"results\/pi\/wild_population.windowed.pi\", header=T)<br>cultivated_pi &lt;- read.table(\"results\/pi\/cultivated_population.windowed.pi\", header=T)<br><br># Merge data<br>combined &lt;- bind_rows(<br>    mutate(wild_pi, Population = \"Wild\"),<br>    mutate(cultivated_pi, Population = \"Cultivated\")<br>)<br><br># Generate Manhattan plot<br>png(\"figures\/pi_manhattan.png\", width=12, height=6, units=\"in\", res=300)<br>ggplot(combined, aes(x=BIN_START\/1e6, y=PI, color=CHROM)) +<br>    geom_point(alpha=0.6) +<br>    facet_grid(Population ~ .) +<br>    labs(x=\"Position (Mb)\", y=\"\u03c0 Value\") +<br>    theme_bw() +<br>    scale_color_viridis_d()  # Colorblind-friendly palette<br>dev.off()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 3: Calculate Tajima\u2019s D<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We calculate Tajima\u2019s D to test for deviations from neutrality in both populations.<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code># Wild population<br>vcftools --vcf $VCF \\<br>    --TajimaD $WINDOW \\<br>    --keep data\/pop_wild.list \\<br>    --out results\/tajimaD\/wild_population<br><br># Cultivated population<br>vcftools --vcf $VCF \\<br>    --TajimaD $WINDOW \\<br>    --keep data\/pop_cultivated.list \\<br>    --out results\/tajimaD\/cultivated_population<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 4: Visualize Tajima\u2019s D<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After calculating Tajima\u2019s D, we can visualize its distribution in both populations using a density plot.<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code>library(ggridges)<br><br># Read data<br>wild_tajima &lt;- read.table(\"results\/tajimaD\/wild_population.TajimaD\", header=T)<br>cultivated_tajima &lt;- read.table(\"results\/tajimaD\/cultivated_population.TajimaD\", header=T)<br><br># Merge data<br>combined &lt;- bind_rows(<br>    mutate(wild_tajima, Population = \"Wild\"),<br>    mutate(cultivated_tajima, Population = \"Cultivated\")<br>)<br><br># Generate density plot<br>png(\"figures\/tajimad_density.png\", width=8, height=6, units=\"in\", res=300)<br>ggplot(combined, aes(x=TajimaD, y=Population, fill=Population)) +<br>    geom_density_ridges(alpha=0.6, scale=0.9) +<br>    labs(x=\"Tajima's D\", y=\"\") +<br>    theme_minimal() +<br>    scale_fill_manual(values=c(\"#1b9e77\", \"#d95f02\"))<br>dev.off()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 5: Calculate Fst<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We calculate Fst to measure the genetic differentiation between the wild and cultivated populations using a sliding window approach.<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code>vcftools --vcf $VCF \\<br>--fst-window-size $WINDOW \\<br>--fst-window-step $STEP \\<br>--weir-fst-pop data\/pop_wild.list \\<br>--weir-fst-pop data\/pop_cultivated.list \\<br>--out results\/fst\/wild_cultivated<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 6: Visualize Fst<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can visualize Fst values across the genome using a genome track plot.<\/p>\n\n\n\n<p class=\"has-subtle-background-background-color has-background has-small-font-size wp-block-paragraph\"><code>library(ggbio)<br>library(GenomicRanges)<br><br># Read data<br>fst_data &lt;- read.table(\"results\/fst\/wild_cultivated.windowed.weir.fst\", header=T)<br><br># Create genomic ranges<br>gr &lt;- GRanges(<br>    seqnames = fst_data$CHROM,<br>    ranges = IRanges(start=fst_data$BIN_START, end=fst_data$BIN_END),<br>    FST = fst_data$WEIGHTED_FST<br>)<br><br># Generate genome track plot<br>png(\"figures\/fst_genome_track.png\", width=15, height=4, units=\"in\", res=300)<br>autoplot(gr, aes(y=FST)) + <br>    geom_line(color=\"#7570b3\", size=0.3) +<br>    facet_grid(. ~ seqnames, scales=\"free_x\") +<br>    labs(title=\"Wild vs Cultivated Fst\") +<br>    theme_bw() +<br>    ylim(0, 0.5)  # Set Fst axis range<br>dev.off()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>License and Copyright<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copyright (C) 2025 Xingwan Yi<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial provides a step-by-step guide for calculating and visualizing genetic diversity metrics such as \u03c0 (nucleotide diversity), Tajima\u2019s D (neutrality test), and Fst (population differentiation). These metrics are essential for understanding genetic variation within and between populations. Required Tools and Files: Step 1: Calculate \u03c0 Values In this step, we calculate nucleotide diversity (\u03c0) [&hellip;]<\/p>\n","protected":false},"author":103178,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-117","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/pages\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/users\/103178"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":2,"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/pages\/117\/revisions"}],"predecessor-version":[{"id":119,"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/pages\/117\/revisions\/119"}],"wp:attachment":[{"href":"https:\/\/blogs.ubc.ca\/evobiodriresources\/wp-json\/wp\/v2\/media?parent=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}