{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "authorized-tournament",
   "metadata": {},
   "source": [
    "# First install the libraries\n",
    "\n",
    "We will use LEA package to perform PCA analysis\n",
    "\n",
    "https://www.bioconductor.org/packages/release/bioc/html/LEA.html\n",
    "\n",
    "http://membres-timc.imag.fr/Olivier.Francois/LEA/files/LEA_github.pdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "educated-compensation",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Bioconductor version 3.12 (BiocManager 1.30.10), R 4.0.3 (2020-10-10)\n",
      "\n",
      "Installing package(s) 'LEA'\n",
      "\n",
      "Updating HTML index of packages in '.Library'\n",
      "\n",
      "Making 'packages.html' ...\n",
      " done\n",
      "\n",
      "Old packages: 'brio', 'IRdisplay', 'repr', 'tinytex', 'usethis'\n",
      "\n"
     ]
    }
   ],
   "source": [
    "if (!requireNamespace(\"BiocManager\", quietly = TRUE))\n",
    "    install.packages(\"BiocManager\")\n",
    "\n",
    "BiocManager::install(\"LEA\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "incident-incident",
   "metadata": {},
   "source": [
    "## Load the libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bound-functionality",
   "metadata": {},
   "outputs": [],
   "source": [
    "library(\"LEA\")\n",
    "library(data.table) # use to read delimited files;"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "substantial-poster",
   "metadata": {},
   "source": [
    "## Load the data\n",
    "\n",
    "### Dataset used : small dataset consisting of 5000 SNPs genotyped for 250  rice individuals\n",
    "\n",
    "* 86 wild african Rice\n",
    "* 164 african cultivated Rice\n",
    "\n",
    "In the file PCA_matrix.csv, we have :\n",
    "* one SNP by line \n",
    "* one sample by column with the sample genotype value : 0,1,2,NA  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "scheduled-seeker",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning message in fread(input = \"PopGen/PCA_matrix.csv\"):\n",
      "“Detected 251 column names but the data has 252 columns (i.e. invalid file). Added 1 extra default column name for the first column which is guessed to be row names or an index. Use setnames() afterwards if this guess is not correct, or fix the file write command that created the file to create a valid file.”\n"
     ]
    }
   ],
   "source": [
    "geno <- fread(input = \"PopGen/PCA_matrix.csv\") "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "variable-north",
   "metadata": {},
   "source": [
    "## Get lines and columns number "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "checked-humor",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       ".list-inline {list-style: none; margin:0; padding: 0}\n",
       ".list-inline>li {display: inline-block}\n",
       ".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
       "</style>\n",
       "<ol class=list-inline><li>4859</li><li>252</li></ol>\n"
      ],
      "text/latex": [
       "\\begin{enumerate*}\n",
       "\\item 4859\n",
       "\\item 252\n",
       "\\end{enumerate*}\n"
      ],
      "text/markdown": [
       "1. 4859\n",
       "2. 252\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       "[1] 4859  252"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dim(geno)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "electoral-quarterly",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.table: 6 × 252</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>V1</th><th scope=col>AA</th><th scope=col>AB</th><th scope=col>AC</th><th scope=col>AD</th><th scope=col>AE</th><th scope=col>AF</th><th scope=col>AG</th><th scope=col>AH</th><th scope=col>AI</th><th scope=col>⋯</th><th scope=col>NT</th><th scope=col>NV</th><th scope=col>R</th><th scope=col>RO</th><th scope=col>S</th><th scope=col>SO</th><th scope=col>T</th><th scope=col>TO</th><th scope=col>VO</th><th scope=col>V252</th></tr>\n",
       "\t<tr><th scope=col>&lt;chr&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>⋯</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;int&gt;</th><th scope=col>&lt;lgl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>SNP1</td><td>0</td><td> 0</td><td> 0</td><td>0</td><td>0</td><td>0</td><td> 1</td><td>0</td><td>1</td><td>⋯</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>NA</td></tr>\n",
       "\t<tr><td>SNP2</td><td>0</td><td> 0</td><td>NA</td><td>0</td><td>0</td><td>0</td><td> 0</td><td>0</td><td>0</td><td>⋯</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>NA</td></tr>\n",
       "\t<tr><td>SNP3</td><td>0</td><td>NA</td><td> 0</td><td>0</td><td>0</td><td>0</td><td> 0</td><td>0</td><td>0</td><td>⋯</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>NA</td></tr>\n",
       "\t<tr><td>SNP4</td><td>2</td><td> 2</td><td> 2</td><td>2</td><td>2</td><td>2</td><td> 2</td><td>2</td><td>2</td><td>⋯</td><td>2</td><td>2</td><td>2</td><td>2</td><td>2</td><td>2</td><td>2</td><td>2</td><td>2</td><td>NA</td></tr>\n",
       "\t<tr><td>SNP5</td><td>2</td><td> 2</td><td> 2</td><td>2</td><td>2</td><td>2</td><td>NA</td><td>2</td><td>2</td><td>⋯</td><td>9</td><td>2</td><td>2</td><td>2</td><td>2</td><td>9</td><td>2</td><td>2</td><td>2</td><td>NA</td></tr>\n",
       "\t<tr><td>SNP6</td><td>0</td><td> 0</td><td>NA</td><td>0</td><td>0</td><td>0</td><td> 9</td><td>9</td><td>9</td><td>⋯</td><td>0</td><td>9</td><td>9</td><td>9</td><td>9</td><td>9</td><td>9</td><td>2</td><td>0</td><td>NA</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.table: 6 × 252\n",
       "\\begin{tabular}{lllllllllllllllllllll}\n",
       " V1 & AA & AB & AC & AD & AE & AF & AG & AH & AI & ⋯ & NT & NV & R & RO & S & SO & T & TO & VO & V252\\\\\n",
       " <chr> & <int> & <int> & <int> & <int> & <int> & <int> & <int> & <int> & <int> & ⋯ & <int> & <int> & <int> & <int> & <int> & <int> & <int> & <int> & <int> & <lgl>\\\\\n",
       "\\hline\n",
       "\t SNP1 & 0 &  0 &  0 & 0 & 0 & 0 &  1 & 0 & 1 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & NA\\\\\n",
       "\t SNP2 & 0 &  0 & NA & 0 & 0 & 0 &  0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & NA\\\\\n",
       "\t SNP3 & 0 & NA &  0 & 0 & 0 & 0 &  0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & NA\\\\\n",
       "\t SNP4 & 2 &  2 &  2 & 2 & 2 & 2 &  2 & 2 & 2 & ⋯ & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & NA\\\\\n",
       "\t SNP5 & 2 &  2 &  2 & 2 & 2 & 2 & NA & 2 & 2 & ⋯ & 9 & 2 & 2 & 2 & 2 & 9 & 2 & 2 & 2 & NA\\\\\n",
       "\t SNP6 & 0 &  0 & NA & 0 & 0 & 0 &  9 & 9 & 9 & ⋯ & 0 & 9 & 9 & 9 & 9 & 9 & 9 & 2 & 0 & NA\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.table: 6 × 252\n",
       "\n",
       "| V1 &lt;chr&gt; | AA &lt;int&gt; | AB &lt;int&gt; | AC &lt;int&gt; | AD &lt;int&gt; | AE &lt;int&gt; | AF &lt;int&gt; | AG &lt;int&gt; | AH &lt;int&gt; | AI &lt;int&gt; | ⋯ ⋯ | NT &lt;int&gt; | NV &lt;int&gt; | R &lt;int&gt; | RO &lt;int&gt; | S &lt;int&gt; | SO &lt;int&gt; | T &lt;int&gt; | TO &lt;int&gt; | VO &lt;int&gt; | V252 &lt;lgl&gt; |\n",
       "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
       "| SNP1 | 0 |  0 |  0 | 0 | 0 | 0 |  1 | 0 | 1 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA |\n",
       "| SNP2 | 0 |  0 | NA | 0 | 0 | 0 |  0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | NA |\n",
       "| SNP3 | 0 | NA |  0 | 0 | 0 | 0 |  0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA |\n",
       "| SNP4 | 2 |  2 |  2 | 2 | 2 | 2 |  2 | 2 | 2 | ⋯ | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | NA |\n",
       "| SNP5 | 2 |  2 |  2 | 2 | 2 | 2 | NA | 2 | 2 | ⋯ | 9 | 2 | 2 | 2 | 2 | 9 | 2 | 2 | 2 | NA |\n",
       "| SNP6 | 0 |  0 | NA | 0 | 0 | 0 |  9 | 9 | 9 | ⋯ | 0 | 9 | 9 | 9 | 9 | 9 | 9 | 2 | 0 | NA |\n",
       "\n"
      ],
      "text/plain": [
       "  V1   AA AB AC AD AE AF AG AH AI ⋯ NT NV R RO S SO T TO VO V252\n",
       "1 SNP1 0   0  0 0  0  0   1 0  1  ⋯ 0  0  0 0  0 0  0 0  0  NA  \n",
       "2 SNP2 0   0 NA 0  0  0   0 0  0  ⋯ 0  0  0 0  0 0  0 0  2  NA  \n",
       "3 SNP3 0  NA  0 0  0  0   0 0  0  ⋯ 0  0  0 0  0 0  0 0  0  NA  \n",
       "4 SNP4 2   2  2 2  2  2   2 2  2  ⋯ 2  2  2 2  2 2  2 2  2  NA  \n",
       "5 SNP5 2   2  2 2  2  2  NA 2  2  ⋯ 9  2  2 2  2 9  2 2  2  NA  \n",
       "6 SNP6 0   0 NA 0  0  0   9 9  9  ⋯ 0  9  9 9  9 9  9 2  0  NA  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "head(geno)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "rough-great",
   "metadata": {},
   "source": [
    "## Transpose matrix rows and columns using the t() command\n",
    "\n",
    "We need to transpose the matrix to get with :\n",
    "* one sample by line\n",
    "* 5000 columns (one column by SNP) with the genotype value "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "false-selection",
   "metadata": {},
   "outputs": [],
   "source": [
    "geno <- t(geno[-1,-c(1,252)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "regulated-provision",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       ".list-inline {list-style: none; margin:0; padding: 0}\n",
       ".list-inline>li {display: inline-block}\n",
       ".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
       "</style>\n",
       "<ol class=list-inline><li>250</li><li>4858</li></ol>\n"
      ],
      "text/latex": [
       "\\begin{enumerate*}\n",
       "\\item 250\n",
       "\\item 4858\n",
       "\\end{enumerate*}\n"
      ],
      "text/markdown": [
       "1. 250\n",
       "2. 4858\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       "[1]  250 4858"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dim(geno)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "whole-interest",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A matrix: 6 × 4858 of type int</caption>\n",
       "<tbody>\n",
       "\t<tr><th scope=row>AA</th><td> 0</td><td> 0</td><td>2</td><td>2</td><td> 0</td><td>2</td><td>NA</td><td>0</td><td>0</td><td>NA</td><td>⋯</td><td>1</td><td>2</td><td>1</td><td>0</td><td> 0</td><td> 0</td><td>2</td><td>0</td><td>0</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>AB</th><td> 0</td><td>NA</td><td>2</td><td>2</td><td> 0</td><td>2</td><td> 9</td><td>9</td><td>0</td><td> 0</td><td>⋯</td><td>0</td><td>0</td><td>1</td><td>0</td><td> 2</td><td> 0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>AC</th><td>NA</td><td> 0</td><td>2</td><td>2</td><td>NA</td><td>2</td><td> 9</td><td>9</td><td>0</td><td> 0</td><td>⋯</td><td>0</td><td>2</td><td>0</td><td>0</td><td> 0</td><td>NA</td><td>2</td><td>0</td><td>2</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>AD</th><td> 0</td><td> 0</td><td>2</td><td>2</td><td> 0</td><td>2</td><td> 9</td><td>0</td><td>0</td><td> 0</td><td>⋯</td><td>0</td><td>2</td><td>1</td><td>0</td><td> 0</td><td> 0</td><td>0</td><td>0</td><td>1</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>AE</th><td> 0</td><td> 0</td><td>2</td><td>2</td><td> 0</td><td>2</td><td> 9</td><td>9</td><td>0</td><td> 9</td><td>⋯</td><td>0</td><td>2</td><td>0</td><td>0</td><td>NA</td><td> 0</td><td>0</td><td>0</td><td>2</td><td>0</td></tr>\n",
       "\t<tr><th scope=row>AF</th><td> 0</td><td> 0</td><td>2</td><td>2</td><td> 0</td><td>2</td><td> 9</td><td>0</td><td>0</td><td> 2</td><td>⋯</td><td>0</td><td>2</td><td>0</td><td>0</td><td> 0</td><td> 0</td><td>0</td><td>1</td><td>2</td><td>0</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A matrix: 6 × 4858 of type int\n",
       "\\begin{tabular}{r|lllllllllllllllllllll}\n",
       "\tAA &  0 &  0 & 2 & 2 &  0 & 2 & NA & 0 & 0 & NA & ⋯ & 1 & 2 & 1 & 0 &  0 &  0 & 2 & 0 & 0 & 0\\\\\n",
       "\tAB &  0 & NA & 2 & 2 &  0 & 2 &  9 & 9 & 0 &  0 & ⋯ & 0 & 0 & 1 & 0 &  2 &  0 & 0 & 0 & 0 & 0\\\\\n",
       "\tAC & NA &  0 & 2 & 2 & NA & 2 &  9 & 9 & 0 &  0 & ⋯ & 0 & 2 & 0 & 0 &  0 & NA & 2 & 0 & 2 & 0\\\\\n",
       "\tAD &  0 &  0 & 2 & 2 &  0 & 2 &  9 & 0 & 0 &  0 & ⋯ & 0 & 2 & 1 & 0 &  0 &  0 & 0 & 0 & 1 & 0\\\\\n",
       "\tAE &  0 &  0 & 2 & 2 &  0 & 2 &  9 & 9 & 0 &  9 & ⋯ & 0 & 2 & 0 & 0 & NA &  0 & 0 & 0 & 2 & 0\\\\\n",
       "\tAF &  0 &  0 & 2 & 2 &  0 & 2 &  9 & 0 & 0 &  2 & ⋯ & 0 & 2 & 0 & 0 &  0 &  0 & 0 & 1 & 2 & 0\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A matrix: 6 × 4858 of type int\n",
       "\n",
       "| AA |  0 |  0 | 2 | 2 |  0 | 2 | NA | 0 | 0 | NA | ⋯ | 1 | 2 | 1 | 0 |  0 |  0 | 2 | 0 | 0 | 0 |\n",
       "| AB |  0 | NA | 2 | 2 |  0 | 2 |  9 | 9 | 0 |  0 | ⋯ | 0 | 0 | 1 | 0 |  2 |  0 | 0 | 0 | 0 | 0 |\n",
       "| AC | NA |  0 | 2 | 2 | NA | 2 |  9 | 9 | 0 |  0 | ⋯ | 0 | 2 | 0 | 0 |  0 | NA | 2 | 0 | 2 | 0 |\n",
       "| AD |  0 |  0 | 2 | 2 |  0 | 2 |  9 | 0 | 0 |  0 | ⋯ | 0 | 2 | 1 | 0 |  0 |  0 | 0 | 0 | 1 | 0 |\n",
       "| AE |  0 |  0 | 2 | 2 |  0 | 2 |  9 | 9 | 0 |  9 | ⋯ | 0 | 2 | 0 | 0 | NA |  0 | 0 | 0 | 2 | 0 |\n",
       "| AF |  0 |  0 | 2 | 2 |  0 | 2 |  9 | 0 | 0 |  2 | ⋯ | 0 | 2 | 0 | 0 |  0 |  0 | 0 | 1 | 2 | 0 |\n",
       "\n"
      ],
      "text/plain": [
       "   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]\n",
       "AA  0    0   2    2     0   2    NA   0    0    NA    ⋯     1     2     1    \n",
       "AB  0   NA   2    2     0   2     9   9    0     0    ⋯     0     0     1    \n",
       "AC NA    0   2    2    NA   2     9   9    0     0    ⋯     0     2     0    \n",
       "AD  0    0   2    2     0   2     9   0    0     0    ⋯     0     2     1    \n",
       "AE  0    0   2    2     0   2     9   9    0     9    ⋯     0     2     0    \n",
       "AF  0    0   2    2     0   2     9   0    0     2    ⋯     0     2     0    \n",
       "   [,15] [,16] [,17] [,18] [,19] [,20] [,21]\n",
       "AA 0      0     0    2     0     0     0    \n",
       "AB 0      2     0    0     0     0     0    \n",
       "AC 0      0    NA    2     0     2     0    \n",
       "AD 0      0     0    0     0     1     0    \n",
       "AE 0     NA     0    0     0     2     0    \n",
       "AF 0      0     0    0     1     2     0    "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "head(geno)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "developed-fabric",
   "metadata": {},
   "source": [
    "## Write genotypes in the lfmm format"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "dutch-submission",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "'PCA_matrix.lfmm'"
      ],
      "text/latex": [
       "'PCA\\_matrix.lfmm'"
      ],
      "text/markdown": [
       "'PCA_matrix.lfmm'"
      ],
      "text/plain": [
       "[1] \"PCA_matrix.lfmm\""
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "write.lfmm(geno,\"PCA_matrix.lfmm\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "selective-angola",
   "metadata": {},
   "source": [
    "# PCA analysis\n",
    "\n",
    "We can now easily make a Principal Component Analysis based on our dataset using PCA function (LEA package)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "published-antibody",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] \"******************************\"\n",
      "[1] \" Principal Component Analysis \"\n",
      "[1] \"******************************\"\n",
      "summary of the options:\n",
      "\n",
      "        -n (number of individuals)          250\n",
      "        -L (number of loci)                 4858\n",
      "        -K (number of principal components) 250\n",
      "        -x (genotype file)                  /ifb/data/mydatalocal/PCA_matrix.lfmm\n",
      "        -a (eigenvalue file)                /ifb/data/mydatalocal/PCA_matrix.pca/PCA_matrix.eigenvalues\n",
      "        -e (eigenvector file)               /ifb/data/mydatalocal/PCA_matrix.pca/PCA_matrix.eigenvectors\n",
      "        -d (standard deviation file)        /ifb/data/mydatalocal/PCA_matrix.pca/PCA_matrix.sdev\n",
      "        -p (projection file)                /ifb/data/mydatalocal/PCA_matrix.pca/PCA_matrix.projections\n",
      "        -c data centered\n",
      "\n"
     ]
    }
   ],
   "source": [
    "pca <- pca(\"PCA_matrix.lfmm\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "indirect-correspondence",
   "metadata": {},
   "source": [
    "## Plot PCA eigenvalues"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "palestinian-bidder",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dB2BUZbqH8fc7bfpMeia9kUII\nLaGFkNBbQgdBinREuggI0rGhoGCv62LbtYJdWRHEhgVY6+oia1u9ImBHpOfcmSQUXZiEzJuZ\n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\n/h/WRt0+QDAtUAAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(pca)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "engaged-silicon",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dCZyM9R/A8d/eu1jHuta57hSR\no5JypENFSCQqQumgJGqVK/o7otCh8E+6qaT+1T+VFCnl6tBNSOQ+c+05v/9zrfWXZo/57jP7\n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\nWl+m2yatN1xd3njWdijrBZP1hC/+LXvlD/Wr1ne0sF82Ta5kJLOvcmfjeaDvldhnzIt8s+oq\nFdPxZ+fGl0+9/9+/ufv3gY2Q3JeWmbW0rpkqV1a1sDpIeNm+bFHMMZ0Z8Ym98pdao3UdZ2/F\nTvWt1qPOsCeVP5Fgnt9RfMLarR9cGb/avOjPVpFNrqoVfq9z88unDJ7xffa9/lWQfyUQUnD9\n9PqCX+yl25pYkx0yLjY/M5g0075wVZjxkqq08/CkzbenznW+Ce2viOVaL45cYS77bmxgPGal\nNbrA3B/xQUKyedmudpHNOp8V1tfObuVVZVTZa75zbif1m7fWMkdJFiEVFjuqtV2TkbmuYzlz\nV969DexPYFzX2jip+5SzhTJKSHre2b7sm1rfcJ29/Gf4Kq2fc45O/p+o7UaP5zczb2dF5VvN\ni16LvP7Nr9/o5OzcmFFOlVGlpzhfpLbzzcnzNrjw9wtxhFRo/H6Fii2uWlnP8/bUaLtO6219\ni601Vu6yv/1MTzCPVdl0kr310cilWjd71Llu9Re07t7fXvZVeEnrN0rYb1gtDzNeZO2Mt6+U\nXN6cZftwscf364OzS5pT/3TmiOgy51UKu8H+eafM7N6o/cisPYL73n5kzrcF+3cOHYRUiGz/\naNEfzuKWS1WpCuos61gqWxN6Gy9wfM9HmYcES25k76R7tqTxmHWes0dcVzZeYLXJmrLX9DGt\n+zuPVdbD2fSadomp5Y3eNkfb3/70Ubj5Aiq59JvGI9OXda4wL9rdpNztjyc3Km2/QJtWvNT5\ntcIuc95B3jxz8ENvnzjEbPrP2+T/+p5GSIXVprfnf+/sNlhdM75Nh2qxj5vLO8veZH4b2qJ4\nc//3rc6ByTco4/Gra9ZRKysbz/463eustBut9S03OCtXGY9C0+o5K+c+ZPQa+Z59A7H/NU7b\nNzc/6ZF5T2lzgtNTsXOMZH85r5H10m1sZO0ubUvUW2dt/fs10UqVHXPio/S7D4n/7T2HkLwg\n9a2xQ+dst5dXJyVcecPZ4cXbZ4IAABMkSURBVMPNlzirwq2PcKS2Nw8T9nSi/UP7OHyL1v2u\nd656xhPGw1PWd7Z3HKr14C7Oys19jB90DWel8x1af6d+tJYzzviX1kdKWvvX9f4K5j7D6cWM\nV2T6QPeKZmnry7ddtH3DvxOvsD7/u/+OckrVGG8/WKU/3iK+9IVznJdfh18fNWJ+dmSHQ/kb\npgjJc46/ev+tU51dfRMjb1uwfGbjyuabR8fqtN9rnK2ubDSh55WyZ8d+FfaT1o/VtX+z0xPn\naP3Apc7tXHun1qPbOStDOtkf+rBXOmr9fpyzX+/uK43XTqXtqtLOetA4vexy69nlJuvzv7vq\nNHzxx7WPV2hvlnT8srKj330rOb6btcH75RPaXVou4W37qhNqh6nK9zhZ7ZrWt9uYrNdfqQvH\nDJ51YgJU+i/L98r8oFxFSN72wWUJEXUGWXPN9W9nx1/W+7yw3uZTrvQmLc1XMd8k9TZOtxWz\nvwjg4TL7tf5PcfuB4UhZ4wXT1EbO7dxobDe1qbMypq3Wc2o7K9Mba70swvn3GN9c6z/DnONP\nDDcfB29qan3v7uay5hPPUZWtHn4qY66sjnnAeFaYOjbqc2Ml7fIK01Z9O6feWVYk75Sq3efO\nluHJVt/f1C5xceeaUROs20wdFa+Uav6VfQ9f33hG6fNGHrBX0l4b1nPkJ1l/8eWT75p20nEw\ngn7EJkLyvOzfofS3Huw7abW9/OcFMa17NQ+/3npcmRsx4OP1H94YaT4/Szuzs3lZ2g3Vj2q9\nNsx+NvdXOeOx6s1Szs6E6242Vko7L9BGGFUtKOvcw/NJzidATOaRkw7HvG+vjDN6y6wwy14Z\nb37a6kpnf0efNsbJY+U2m8uHGt5inP4QM8a88cUljKedemf5nubD1GtxTxunvi4VX9iR+k2f\nmKXm1i9GXT3z7Ql1a1hX/a1ByY63XRx5tfXByH2XRTbvek5YD/uAaD/2qKqqdF/njPGP+f96\n8ZesH8nRFc9/dNIhMnan5/7nmjeEFKoyPxw3YHLWp9iXtIpWse2sd2/1z9Vq3T/zgfoVrSlJ\nHc82v7n9UMc6RlyHSj1ubxDzrvHkK9IuJL3+Q8YjUuQR+3bMR6TlYU66r1YyP2213175KNqn\ntyrnAC8r1HGdHvWBvbIs3Lhyg/H2ylvFjhkPf1fYK4+bMwnva2T/cj9e1sj49Tg7gTvqGqVt\niDZD08cuMR/5Uuq1N+/p59o9jVNf68bmW19f17ReCX4Yd8VLn7/SIcbab5Jxb2TFC6uH9bJ/\ngWYmRFSPjRpovym3qWeCij73DedHsnpcr0Fzsn7Nts+9b/y7Wfsk01fOmf/jiZ/j3qUrDmb/\nVA8cOOlH7DtpliMhFRHp2078qx8Yf0X9y8bssZfbxHW6t0e5etbn5edETdivU/9T1dodcVdl\ncyJESt9yxoYppeyZFunma6T9Uc4XvN96hXkoJecFzQexPr1ZbbZXVhv/frvVD/bKJvW7zoj4\n1F7ZqYzXbFXmZq0YjyKNnem3B8O+1LrLLc6fhBtP7u47317ZGLZW62fL2S+vVpsv+t6L22Kt\nfB1m/N/gYPn7rJURCWZpd5Uz9z+urGPtz3wi5vGjOmNRtc7myrel27z+w5L7okeZKxm3h10w\noFvFKvZzyOmxVa+8sHg9+0XbxzXCayWq1tYh1/SGy1RURPh19iGijj1QRakqD9hZ+v7dIj62\n6WTnfyrbxhNS0Zb51j0db3/O2bHwcqJKjIy5x1pLvT7y0nt6Vq6y0lyZVtycpnSwh7XX7qaG\n1qPQsuj/GE+ditn7EvRI47EqNX6BvfJMFeO5Y9bn7T8PP6wzI50XNzvMY5gVt/e56wxzxnvl\nV5yRlDRurmHWN15XeVnrS0Y4K7X/rXUvZz68rjtD67s7OCtNJmn9XAX7lzmtslH7+vAl1sr6\nGKP2fcWt+fLGQ6wRV2ajHtaT1UXh5ptzI8uav/fH+yWYiTwX/YLxau1Aj/Lmyucxg40XkRsu\nrW7+VTdVaL8y9dinzeuZf+PD5yXN+uabmUnnmQ/PGd1LPvjeR/+qeJH17PK14vUJCdnSvp6/\n7MSTl0+Hdxkw05nrOiaybtd28XWs/2fva1x94gevD4weYq7cepa1/U8lzZdHtzayngLuq/mA\ncXppb/uqt7U0Ts5+2F5ZUOJ49pyn38yngo2n2CuHwoxnns2dFZ1gJNnKuY4+y2jnymRnxby0\n523OytVDtb6ns7PS7U7jCeIZzspVdxvPPcs6j8LX9tf6q3BnxkaHW407i7U/YJlxtjHSjET7\nQTG9sXFrurn9pdvHG5jvxHVtaz3vPFzfXEmuYb3a2l1juHH6VGnr2d/2JPPhcG3UIymEhNzY\n+Mxdoxc6z2OOjW0aV+5Seyrt/kY1n1ixZFwpa4/37jqNF/6xeV69JmZ+n0dNNC7LnBZpPkY8\nkWDN59tf33zXeEhj++XIUPO3/r7G9m/7k+ZrpNsus+9hjTKeWfW71l75K+YjrftmvTFWzXh4\nuutqZ8WcMHVXV2fleiOv4c7LLz2wm9aTnOeG+kHjZufUclbGtzSfiDp/lYfPN+/MfpqrH2ug\njdd5zk6Lp2obAUV/ZK/MNh5ifRX/ba/8u6Lx+NXQmUfyQhkjtW5deI2EAB15sE5E9DkznOMn\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot the percentage of variance explained by each component.\n",
    "plot(pca, xlim=c(1,50))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "streaming-thomson",
   "metadata": {},
   "source": [
    "We see here that the two first components explain a large portion of the variation, "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "acceptable-group",
   "metadata": {},
   "outputs": [],
   "source": [
    "# PCA with 5000 SNPs "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "weird-alignment",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2dCbxOxRvHj+26177vJG3aRKQs\n2UkJJaKiyF/JLopQaSGUsiSJqEQkkaUkWwjZ14Tsa+Ta7+Uu7/m/Z2bee9/33nc/c2bmvO/v\n+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\nhFBeOAAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "library(ggplot2)\n",
    "ggplot(data = as.data.frame(pca$projections))+\n",
    "  geom_point(aes(V1,V2))+\n",
    "  theme_classic()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "novel-nutrition",
   "metadata": {},
   "source": [
    "We have done the PCA only on 5000 SNPs detected on the rice chromosome 9 (from the filtered vcf with more than 1 millions SNPs). \n",
    "\n",
    "The whole analysis is described here : https://pubmed.ncbi.nlm.nih.gov/29983312/ :\n",
    "* 163 domesticated and 83 wild african rice\n",
    "* 3,051,681 nuclear SNPs\n",
    "\n",
    "| | Polymorphisms | Avg/chromosome | SNP/kbp |\n",
    "|------|------|------|------|\n",
    "| Raw INDELs/SNPs | 19 115 021 | 1 592 918 | 51| \n",
    "| Filtered INDELS/SNPs | 5 870 429 | 526 869 | 16| \n",
    "| High-quality SNPs | 5 537 832 | 461 486 | 15| \n",
    "| Additional filters | 3 051 681|  254 307 |  8| "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "minus-credits",
   "metadata": {},
   "source": [
    "* PCA from Cubry & al :\n",
    "\n",
    "<img style=\"float: left;\" width=\"800\" height=\"800\"  src=\"https://ars.els-cdn.com/content/image/1-s2.0-S0960982218307024-gr1.jpg\"> "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "4.0.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
