{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Get Star Count of the Pilot 2019 Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load paths and libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Registered S3 methods overwritten by 'ggplot2':\n",
" method from \n",
" [.quosures rlang\n",
" c.quosures rlang\n",
" print.quosures rlang\n",
"── \u001b[1mAttaching packages\u001b[22m ─────────────────────────────────────── tidyverse 1.2.1 ──\n",
"\u001b[32m✔\u001b[39m \u001b[34mggplot2\u001b[39m 3.1.1 \u001b[32m✔\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.2\n",
"\u001b[32m✔\u001b[39m \u001b[34mtibble \u001b[39m 2.1.2 \u001b[32m✔\u001b[39m \u001b[34mdplyr \u001b[39m 0.8.1\n",
"\u001b[32m✔\u001b[39m \u001b[34mtidyr \u001b[39m 0.8.3 \u001b[32m✔\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n",
"\u001b[32m✔\u001b[39m \u001b[34mreadr \u001b[39m 1.3.1 \u001b[32m✔\u001b[39m \u001b[34mforcats\u001b[39m 0.4.0\n",
"── \u001b[1mConflicts\u001b[22m ────────────────────────────────────────── tidyverse_conflicts() ──\n",
"\u001b[31m✖\u001b[39m \u001b[34mpurrr\u001b[39m::\u001b[32maccumulate()\u001b[39m masks \u001b[34mforeach\u001b[39m::accumulate()\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n",
"\u001b[31m✖\u001b[39m \u001b[34mpurrr\u001b[39m::\u001b[32mwhen()\u001b[39m masks \u001b[34mforeach\u001b[39m::when()\n"
]
}
],
"source": [
"library(foreach)\n",
"library(tidyverse)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"data_root_dir <- \"/data/hts_2019_data/\"\n",
"raw_fastq_dir <- paste(data_root_dir, \"hts2019_pilot_rawdata\", sep = \"\")\n",
"metadata_file <- file.path(raw_fastq_dir, \"2019_pilot_metadata.tsv\")\n",
"count_dir <- paste(data_root_dir, \"hts2019_pilot_counts\", sep = \"\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create directories\n",
"\n",
"Below is an illustration of our folder structure.\n",
"```\n",
"scratch\n",
"└── bioinf_intro\n",
"└── analysis_output\n",
" ├── out -> the folder to store all our output data files\n",
" └── img -> the folder to store all our images \n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"curdir <- \"/home/jovyan/work/scratch/analysis_output\"\n",
"outdir <- file.path(curdir, \"out\")\n",
"imgdir <- file.path(curdir, \"img\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/latex": [],
"text/markdown": [],
"text/plain": [
"character(0)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/latex": [],
"text/markdown": [],
"text/plain": [
"character(0)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"system(paste(\"mkdir -p\", outdir), intern = TRUE)\n",
"system(paste(\"mkdir -p\", imgdir), intern = TRUE)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"count_suffix <- \"_ReadsPerGene.out.tab\""
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"list.files(count_dir, pattern = paste0(count_suffix,\"$\"), full.names = FALSE) -> countfiles"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load STAR Count Data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\t- '1_2019_P_M1_S1_L001_ReadsPerGene.out.tab'
\n",
"\t- '1_2019_P_M1_S1_L002_ReadsPerGene.out.tab'
\n",
"\t- '1_2019_P_M1_S1_L003_ReadsPerGene.out.tab'
\n",
"\t- '1_2019_P_M1_S1_L004_ReadsPerGene.out.tab'
\n",
"\t- '10_2019_P_M1_S10_L001_ReadsPerGene.out.tab'
\n",
"\t- '10_2019_P_M1_S10_L002_ReadsPerGene.out.tab'
\n",
"\t- '10_2019_P_M1_S10_L003_ReadsPerGene.out.tab'
\n",
"\t- '10_2019_P_M1_S10_L004_ReadsPerGene.out.tab'
\n",
"\t- '11_2019_P_M1_S11_L001_ReadsPerGene.out.tab'
\n",
"\t- '11_2019_P_M1_S11_L002_ReadsPerGene.out.tab'
\n",
"\t- '11_2019_P_M1_S11_L003_ReadsPerGene.out.tab'
\n",
"\t- '11_2019_P_M1_S11_L004_ReadsPerGene.out.tab'
\n",
"\t- '12_2019_P_M1_S12_L001_ReadsPerGene.out.tab'
\n",
"\t- '12_2019_P_M1_S12_L002_ReadsPerGene.out.tab'
\n",
"\t- '12_2019_P_M1_S12_L003_ReadsPerGene.out.tab'
\n",
"\t- '12_2019_P_M1_S12_L004_ReadsPerGene.out.tab'
\n",
"\t- '13_2019_P_M1_S13_L001_ReadsPerGene.out.tab'
\n",
"\t- '13_2019_P_M1_S13_L002_ReadsPerGene.out.tab'
\n",
"\t- '13_2019_P_M1_S13_L003_ReadsPerGene.out.tab'
\n",
"\t- '13_2019_P_M1_S13_L004_ReadsPerGene.out.tab'
\n",
"\t- '14_2019_P_M1_S14_L001_ReadsPerGene.out.tab'
\n",
"\t- '14_2019_P_M1_S14_L002_ReadsPerGene.out.tab'
\n",
"\t- '14_2019_P_M1_S14_L003_ReadsPerGene.out.tab'
\n",
"\t- '14_2019_P_M1_S14_L004_ReadsPerGene.out.tab'
\n",
"\t- '15_2019_P_M1_S15_L001_ReadsPerGene.out.tab'
\n",
"\t- '15_2019_P_M1_S15_L002_ReadsPerGene.out.tab'
\n",
"\t- '15_2019_P_M1_S15_L003_ReadsPerGene.out.tab'
\n",
"\t- '15_2019_P_M1_S15_L004_ReadsPerGene.out.tab'
\n",
"\t- '16_2019_P_M1_S16_L001_ReadsPerGene.out.tab'
\n",
"\t- '16_2019_P_M1_S16_L002_ReadsPerGene.out.tab'
\n",
"\t- '16_2019_P_M1_S16_L003_ReadsPerGene.out.tab'
\n",
"\t- '16_2019_P_M1_S16_L004_ReadsPerGene.out.tab'
\n",
"\t- '17_2019_P_M1_S17_L001_ReadsPerGene.out.tab'
\n",
"\t- '17_2019_P_M1_S17_L002_ReadsPerGene.out.tab'
\n",
"\t- '17_2019_P_M1_S17_L003_ReadsPerGene.out.tab'
\n",
"\t- '17_2019_P_M1_S17_L004_ReadsPerGene.out.tab'
\n",
"\t- '18_2019_P_M1_S18_L001_ReadsPerGene.out.tab'
\n",
"\t- '18_2019_P_M1_S18_L002_ReadsPerGene.out.tab'
\n",
"\t- '18_2019_P_M1_S18_L003_ReadsPerGene.out.tab'
\n",
"\t- '18_2019_P_M1_S18_L004_ReadsPerGene.out.tab'
\n",
"\t- '19_2019_P_M1_S19_L001_ReadsPerGene.out.tab'
\n",
"\t- '19_2019_P_M1_S19_L002_ReadsPerGene.out.tab'
\n",
"\t- '19_2019_P_M1_S19_L003_ReadsPerGene.out.tab'
\n",
"\t- '19_2019_P_M1_S19_L004_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H1_S25_L001_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H1_S25_L002_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H1_S25_L003_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H1_S25_L004_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H2_S28_L001_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H2_S28_L002_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H2_S28_L003_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_H2_S28_L004_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_M1_S34_L001_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_M1_S34_L002_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_M1_S34_L003_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_M1_S34_L004_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_T1_S31_L001_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_T1_S31_L002_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_T1_S31_L003_ReadsPerGene.out.tab'
\n",
"\t- '2_2018_P_T1_S31_L004_ReadsPerGene.out.tab'
\n",
"\t- '2_2019_P_M1_S2_L001_ReadsPerGene.out.tab'
\n",
"\t- '2_2019_P_M1_S2_L002_ReadsPerGene.out.tab'
\n",
"\t- '2_2019_P_M1_S2_L003_ReadsPerGene.out.tab'
\n",
"\t- '2_2019_P_M1_S2_L004_ReadsPerGene.out.tab'
\n",
"\t- '20_2019_P_M1_S20_L001_ReadsPerGene.out.tab'
\n",
"\t- '20_2019_P_M1_S20_L002_ReadsPerGene.out.tab'
\n",
"\t- '20_2019_P_M1_S20_L003_ReadsPerGene.out.tab'
\n",
"\t- '20_2019_P_M1_S20_L004_ReadsPerGene.out.tab'
\n",
"\t- '21_2019_P_M1_S21_L001_ReadsPerGene.out.tab'
\n",
"\t- '21_2019_P_M1_S21_L002_ReadsPerGene.out.tab'
\n",
"\t- '21_2019_P_M1_S21_L003_ReadsPerGene.out.tab'
\n",
"\t- '21_2019_P_M1_S21_L004_ReadsPerGene.out.tab'
\n",
"\t- '22_2019_P_M1_S22_L001_ReadsPerGene.out.tab'
\n",
"\t- '22_2019_P_M1_S22_L002_ReadsPerGene.out.tab'
\n",
"\t- '22_2019_P_M1_S22_L003_ReadsPerGene.out.tab'
\n",
"\t- '22_2019_P_M1_S22_L004_ReadsPerGene.out.tab'
\n",
"\t- '23_2019_P_M1_S23_L001_ReadsPerGene.out.tab'
\n",
"\t- '23_2019_P_M1_S23_L002_ReadsPerGene.out.tab'
\n",
"\t- '23_2019_P_M1_S23_L003_ReadsPerGene.out.tab'
\n",
"\t- '23_2019_P_M1_S23_L004_ReadsPerGene.out.tab'
\n",
"\t- '24_2019_P_M1_S24_L001_ReadsPerGene.out.tab'
\n",
"\t- '24_2019_P_M1_S24_L002_ReadsPerGene.out.tab'
\n",
"\t- '24_2019_P_M1_S24_L003_ReadsPerGene.out.tab'
\n",
"\t- '24_2019_P_M1_S24_L004_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H1_S26_L001_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H1_S26_L002_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H1_S26_L003_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H1_S26_L004_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H2_S29_L001_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H2_S29_L002_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H2_S29_L003_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_H2_S29_L004_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_M1_S35_L001_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_M1_S35_L002_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_M1_S35_L003_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_M1_S35_L004_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_T1_S32_L001_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_T1_S32_L002_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_T1_S32_L003_ReadsPerGene.out.tab'
\n",
"\t- '3_2018_P_T1_S32_L004_ReadsPerGene.out.tab'
\n",
"\t- '3_2019_P_M1_S3_L001_ReadsPerGene.out.tab'
\n",
"\t- '3_2019_P_M1_S3_L002_ReadsPerGene.out.tab'
\n",
"\t- '3_2019_P_M1_S3_L003_ReadsPerGene.out.tab'
\n",
"\t- '3_2019_P_M1_S3_L004_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H1_S27_L001_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H1_S27_L002_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H1_S27_L003_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H1_S27_L004_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H2_S30_L001_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H2_S30_L002_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H2_S30_L003_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_H2_S30_L004_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_M1_S36_L001_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_M1_S36_L002_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_M1_S36_L003_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_M1_S36_L004_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_T1_S33_L001_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_T1_S33_L002_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_T1_S33_L003_ReadsPerGene.out.tab'
\n",
"\t- '4_2018_P_T1_S33_L004_ReadsPerGene.out.tab'
\n",
"\t- '4_2019_P_M1_S4_L001_ReadsPerGene.out.tab'
\n",
"\t- '4_2019_P_M1_S4_L002_ReadsPerGene.out.tab'
\n",
"\t- '4_2019_P_M1_S4_L003_ReadsPerGene.out.tab'
\n",
"\t- '4_2019_P_M1_S4_L004_ReadsPerGene.out.tab'
\n",
"\t- '5_2019_P_M1_S5_L001_ReadsPerGene.out.tab'
\n",
"\t- '5_2019_P_M1_S5_L002_ReadsPerGene.out.tab'
\n",
"\t- '5_2019_P_M1_S5_L003_ReadsPerGene.out.tab'
\n",
"\t- '5_2019_P_M1_S5_L004_ReadsPerGene.out.tab'
\n",
"\t- '6_2019_P_M1_S6_L001_ReadsPerGene.out.tab'
\n",
"\t- '6_2019_P_M1_S6_L002_ReadsPerGene.out.tab'
\n",
"\t- '6_2019_P_M1_S6_L003_ReadsPerGene.out.tab'
\n",
"\t- '6_2019_P_M1_S6_L004_ReadsPerGene.out.tab'
\n",
"\t- '7_2019_P_M1_S7_L001_ReadsPerGene.out.tab'
\n",
"\t- '7_2019_P_M1_S7_L002_ReadsPerGene.out.tab'
\n",
"\t- '7_2019_P_M1_S7_L003_ReadsPerGene.out.tab'
\n",
"\t- '7_2019_P_M1_S7_L004_ReadsPerGene.out.tab'
\n",
"\t- '8_2019_P_M1_S8_L001_ReadsPerGene.out.tab'
\n",
"\t- '8_2019_P_M1_S8_L002_ReadsPerGene.out.tab'
\n",
"\t- '8_2019_P_M1_S8_L003_ReadsPerGene.out.tab'
\n",
"\t- '8_2019_P_M1_S8_L004_ReadsPerGene.out.tab'
\n",
"\t- '9_2019_P_M1_S9_L001_ReadsPerGene.out.tab'
\n",
"\t- '9_2019_P_M1_S9_L002_ReadsPerGene.out.tab'
\n",
"\t- '9_2019_P_M1_S9_L003_ReadsPerGene.out.tab'
\n",
"\t- '9_2019_P_M1_S9_L004_ReadsPerGene.out.tab'
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item '1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '10\\_2019\\_P\\_M1\\_S10\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '10\\_2019\\_P\\_M1\\_S10\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '10\\_2019\\_P\\_M1\\_S10\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '11\\_2019\\_P\\_M1\\_S11\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '11\\_2019\\_P\\_M1\\_S11\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '11\\_2019\\_P\\_M1\\_S11\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '11\\_2019\\_P\\_M1\\_S11\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '12\\_2019\\_P\\_M1\\_S12\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '12\\_2019\\_P\\_M1\\_S12\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '12\\_2019\\_P\\_M1\\_S12\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '12\\_2019\\_P\\_M1\\_S12\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '13\\_2019\\_P\\_M1\\_S13\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '13\\_2019\\_P\\_M1\\_S13\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '13\\_2019\\_P\\_M1\\_S13\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '13\\_2019\\_P\\_M1\\_S13\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '14\\_2019\\_P\\_M1\\_S14\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '14\\_2019\\_P\\_M1\\_S14\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '14\\_2019\\_P\\_M1\\_S14\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '14\\_2019\\_P\\_M1\\_S14\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '15\\_2019\\_P\\_M1\\_S15\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '15\\_2019\\_P\\_M1\\_S15\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '15\\_2019\\_P\\_M1\\_S15\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '15\\_2019\\_P\\_M1\\_S15\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '16\\_2019\\_P\\_M1\\_S16\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '16\\_2019\\_P\\_M1\\_S16\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '16\\_2019\\_P\\_M1\\_S16\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '16\\_2019\\_P\\_M1\\_S16\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '17\\_2019\\_P\\_M1\\_S17\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '17\\_2019\\_P\\_M1\\_S17\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '17\\_2019\\_P\\_M1\\_S17\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '17\\_2019\\_P\\_M1\\_S17\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '18\\_2019\\_P\\_M1\\_S18\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '18\\_2019\\_P\\_M1\\_S18\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '18\\_2019\\_P\\_M1\\_S18\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '18\\_2019\\_P\\_M1\\_S18\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '19\\_2019\\_P\\_M1\\_S19\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '19\\_2019\\_P\\_M1\\_S19\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '19\\_2019\\_P\\_M1\\_S19\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '19\\_2019\\_P\\_M1\\_S19\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H1\\_S25\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H1\\_S25\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H1\\_S25\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H1\\_S25\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H2\\_S28\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H2\\_S28\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H2\\_S28\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_H2\\_S28\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_M1\\_S34\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_M1\\_S34\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_M1\\_S34\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_M1\\_S34\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_T1\\_S31\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_T1\\_S31\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_T1\\_S31\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2018\\_P\\_T1\\_S31\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2019\\_P\\_M1\\_S2\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2019\\_P\\_M1\\_S2\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2019\\_P\\_M1\\_S2\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '2\\_2019\\_P\\_M1\\_S2\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '20\\_2019\\_P\\_M1\\_S20\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '20\\_2019\\_P\\_M1\\_S20\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '20\\_2019\\_P\\_M1\\_S20\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '20\\_2019\\_P\\_M1\\_S20\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '21\\_2019\\_P\\_M1\\_S21\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '21\\_2019\\_P\\_M1\\_S21\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '21\\_2019\\_P\\_M1\\_S21\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '21\\_2019\\_P\\_M1\\_S21\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '22\\_2019\\_P\\_M1\\_S22\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '22\\_2019\\_P\\_M1\\_S22\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '22\\_2019\\_P\\_M1\\_S22\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '22\\_2019\\_P\\_M1\\_S22\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '23\\_2019\\_P\\_M1\\_S23\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '23\\_2019\\_P\\_M1\\_S23\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '23\\_2019\\_P\\_M1\\_S23\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '23\\_2019\\_P\\_M1\\_S23\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '24\\_2019\\_P\\_M1\\_S24\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '24\\_2019\\_P\\_M1\\_S24\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '24\\_2019\\_P\\_M1\\_S24\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '24\\_2019\\_P\\_M1\\_S24\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H1\\_S26\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H1\\_S26\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H1\\_S26\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H1\\_S26\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H2\\_S29\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H2\\_S29\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H2\\_S29\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_H2\\_S29\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_M1\\_S35\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_M1\\_S35\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_M1\\_S35\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_M1\\_S35\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_T1\\_S32\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_T1\\_S32\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_T1\\_S32\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2018\\_P\\_T1\\_S32\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2019\\_P\\_M1\\_S3\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2019\\_P\\_M1\\_S3\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2019\\_P\\_M1\\_S3\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '3\\_2019\\_P\\_M1\\_S3\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H1\\_S27\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H1\\_S27\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H1\\_S27\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H1\\_S27\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H2\\_S30\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H2\\_S30\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H2\\_S30\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_H2\\_S30\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_M1\\_S36\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_M1\\_S36\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_M1\\_S36\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_M1\\_S36\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_T1\\_S33\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_T1\\_S33\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_T1\\_S33\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2018\\_P\\_T1\\_S33\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2019\\_P\\_M1\\_S4\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2019\\_P\\_M1\\_S4\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2019\\_P\\_M1\\_S4\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '4\\_2019\\_P\\_M1\\_S4\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '5\\_2019\\_P\\_M1\\_S5\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '5\\_2019\\_P\\_M1\\_S5\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '5\\_2019\\_P\\_M1\\_S5\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '5\\_2019\\_P\\_M1\\_S5\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '6\\_2019\\_P\\_M1\\_S6\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '6\\_2019\\_P\\_M1\\_S6\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '6\\_2019\\_P\\_M1\\_S6\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '6\\_2019\\_P\\_M1\\_S6\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '7\\_2019\\_P\\_M1\\_S7\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '7\\_2019\\_P\\_M1\\_S7\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '7\\_2019\\_P\\_M1\\_S7\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '7\\_2019\\_P\\_M1\\_S7\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '8\\_2019\\_P\\_M1\\_S8\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '8\\_2019\\_P\\_M1\\_S8\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '8\\_2019\\_P\\_M1\\_S8\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '8\\_2019\\_P\\_M1\\_S8\\_L004\\_ReadsPerGene.out.tab'\n",
"\\item '9\\_2019\\_P\\_M1\\_S9\\_L001\\_ReadsPerGene.out.tab'\n",
"\\item '9\\_2019\\_P\\_M1\\_S9\\_L002\\_ReadsPerGene.out.tab'\n",
"\\item '9\\_2019\\_P\\_M1\\_S9\\_L003\\_ReadsPerGene.out.tab'\n",
"\\item '9\\_2019\\_P\\_M1\\_S9\\_L004\\_ReadsPerGene.out.tab'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. '1_2019_P_M1_S1_L001_ReadsPerGene.out.tab'\n",
"2. '1_2019_P_M1_S1_L002_ReadsPerGene.out.tab'\n",
"3. '1_2019_P_M1_S1_L003_ReadsPerGene.out.tab'\n",
"4. '1_2019_P_M1_S1_L004_ReadsPerGene.out.tab'\n",
"5. '10_2019_P_M1_S10_L001_ReadsPerGene.out.tab'\n",
"6. '10_2019_P_M1_S10_L002_ReadsPerGene.out.tab'\n",
"7. '10_2019_P_M1_S10_L003_ReadsPerGene.out.tab'\n",
"8. '10_2019_P_M1_S10_L004_ReadsPerGene.out.tab'\n",
"9. '11_2019_P_M1_S11_L001_ReadsPerGene.out.tab'\n",
"10. '11_2019_P_M1_S11_L002_ReadsPerGene.out.tab'\n",
"11. '11_2019_P_M1_S11_L003_ReadsPerGene.out.tab'\n",
"12. '11_2019_P_M1_S11_L004_ReadsPerGene.out.tab'\n",
"13. '12_2019_P_M1_S12_L001_ReadsPerGene.out.tab'\n",
"14. '12_2019_P_M1_S12_L002_ReadsPerGene.out.tab'\n",
"15. '12_2019_P_M1_S12_L003_ReadsPerGene.out.tab'\n",
"16. '12_2019_P_M1_S12_L004_ReadsPerGene.out.tab'\n",
"17. '13_2019_P_M1_S13_L001_ReadsPerGene.out.tab'\n",
"18. '13_2019_P_M1_S13_L002_ReadsPerGene.out.tab'\n",
"19. '13_2019_P_M1_S13_L003_ReadsPerGene.out.tab'\n",
"20. '13_2019_P_M1_S13_L004_ReadsPerGene.out.tab'\n",
"21. '14_2019_P_M1_S14_L001_ReadsPerGene.out.tab'\n",
"22. '14_2019_P_M1_S14_L002_ReadsPerGene.out.tab'\n",
"23. '14_2019_P_M1_S14_L003_ReadsPerGene.out.tab'\n",
"24. '14_2019_P_M1_S14_L004_ReadsPerGene.out.tab'\n",
"25. '15_2019_P_M1_S15_L001_ReadsPerGene.out.tab'\n",
"26. '15_2019_P_M1_S15_L002_ReadsPerGene.out.tab'\n",
"27. '15_2019_P_M1_S15_L003_ReadsPerGene.out.tab'\n",
"28. '15_2019_P_M1_S15_L004_ReadsPerGene.out.tab'\n",
"29. '16_2019_P_M1_S16_L001_ReadsPerGene.out.tab'\n",
"30. '16_2019_P_M1_S16_L002_ReadsPerGene.out.tab'\n",
"31. '16_2019_P_M1_S16_L003_ReadsPerGene.out.tab'\n",
"32. '16_2019_P_M1_S16_L004_ReadsPerGene.out.tab'\n",
"33. '17_2019_P_M1_S17_L001_ReadsPerGene.out.tab'\n",
"34. '17_2019_P_M1_S17_L002_ReadsPerGene.out.tab'\n",
"35. '17_2019_P_M1_S17_L003_ReadsPerGene.out.tab'\n",
"36. '17_2019_P_M1_S17_L004_ReadsPerGene.out.tab'\n",
"37. '18_2019_P_M1_S18_L001_ReadsPerGene.out.tab'\n",
"38. '18_2019_P_M1_S18_L002_ReadsPerGene.out.tab'\n",
"39. '18_2019_P_M1_S18_L003_ReadsPerGene.out.tab'\n",
"40. '18_2019_P_M1_S18_L004_ReadsPerGene.out.tab'\n",
"41. '19_2019_P_M1_S19_L001_ReadsPerGene.out.tab'\n",
"42. '19_2019_P_M1_S19_L002_ReadsPerGene.out.tab'\n",
"43. '19_2019_P_M1_S19_L003_ReadsPerGene.out.tab'\n",
"44. '19_2019_P_M1_S19_L004_ReadsPerGene.out.tab'\n",
"45. '2_2018_P_H1_S25_L001_ReadsPerGene.out.tab'\n",
"46. '2_2018_P_H1_S25_L002_ReadsPerGene.out.tab'\n",
"47. '2_2018_P_H1_S25_L003_ReadsPerGene.out.tab'\n",
"48. '2_2018_P_H1_S25_L004_ReadsPerGene.out.tab'\n",
"49. '2_2018_P_H2_S28_L001_ReadsPerGene.out.tab'\n",
"50. '2_2018_P_H2_S28_L002_ReadsPerGene.out.tab'\n",
"51. '2_2018_P_H2_S28_L003_ReadsPerGene.out.tab'\n",
"52. '2_2018_P_H2_S28_L004_ReadsPerGene.out.tab'\n",
"53. '2_2018_P_M1_S34_L001_ReadsPerGene.out.tab'\n",
"54. '2_2018_P_M1_S34_L002_ReadsPerGene.out.tab'\n",
"55. '2_2018_P_M1_S34_L003_ReadsPerGene.out.tab'\n",
"56. '2_2018_P_M1_S34_L004_ReadsPerGene.out.tab'\n",
"57. '2_2018_P_T1_S31_L001_ReadsPerGene.out.tab'\n",
"58. '2_2018_P_T1_S31_L002_ReadsPerGene.out.tab'\n",
"59. '2_2018_P_T1_S31_L003_ReadsPerGene.out.tab'\n",
"60. '2_2018_P_T1_S31_L004_ReadsPerGene.out.tab'\n",
"61. '2_2019_P_M1_S2_L001_ReadsPerGene.out.tab'\n",
"62. '2_2019_P_M1_S2_L002_ReadsPerGene.out.tab'\n",
"63. '2_2019_P_M1_S2_L003_ReadsPerGene.out.tab'\n",
"64. '2_2019_P_M1_S2_L004_ReadsPerGene.out.tab'\n",
"65. '20_2019_P_M1_S20_L001_ReadsPerGene.out.tab'\n",
"66. '20_2019_P_M1_S20_L002_ReadsPerGene.out.tab'\n",
"67. '20_2019_P_M1_S20_L003_ReadsPerGene.out.tab'\n",
"68. '20_2019_P_M1_S20_L004_ReadsPerGene.out.tab'\n",
"69. '21_2019_P_M1_S21_L001_ReadsPerGene.out.tab'\n",
"70. '21_2019_P_M1_S21_L002_ReadsPerGene.out.tab'\n",
"71. '21_2019_P_M1_S21_L003_ReadsPerGene.out.tab'\n",
"72. '21_2019_P_M1_S21_L004_ReadsPerGene.out.tab'\n",
"73. '22_2019_P_M1_S22_L001_ReadsPerGene.out.tab'\n",
"74. '22_2019_P_M1_S22_L002_ReadsPerGene.out.tab'\n",
"75. '22_2019_P_M1_S22_L003_ReadsPerGene.out.tab'\n",
"76. '22_2019_P_M1_S22_L004_ReadsPerGene.out.tab'\n",
"77. '23_2019_P_M1_S23_L001_ReadsPerGene.out.tab'\n",
"78. '23_2019_P_M1_S23_L002_ReadsPerGene.out.tab'\n",
"79. '23_2019_P_M1_S23_L003_ReadsPerGene.out.tab'\n",
"80. '23_2019_P_M1_S23_L004_ReadsPerGene.out.tab'\n",
"81. '24_2019_P_M1_S24_L001_ReadsPerGene.out.tab'\n",
"82. '24_2019_P_M1_S24_L002_ReadsPerGene.out.tab'\n",
"83. '24_2019_P_M1_S24_L003_ReadsPerGene.out.tab'\n",
"84. '24_2019_P_M1_S24_L004_ReadsPerGene.out.tab'\n",
"85. '3_2018_P_H1_S26_L001_ReadsPerGene.out.tab'\n",
"86. '3_2018_P_H1_S26_L002_ReadsPerGene.out.tab'\n",
"87. '3_2018_P_H1_S26_L003_ReadsPerGene.out.tab'\n",
"88. '3_2018_P_H1_S26_L004_ReadsPerGene.out.tab'\n",
"89. '3_2018_P_H2_S29_L001_ReadsPerGene.out.tab'\n",
"90. '3_2018_P_H2_S29_L002_ReadsPerGene.out.tab'\n",
"91. '3_2018_P_H2_S29_L003_ReadsPerGene.out.tab'\n",
"92. '3_2018_P_H2_S29_L004_ReadsPerGene.out.tab'\n",
"93. '3_2018_P_M1_S35_L001_ReadsPerGene.out.tab'\n",
"94. '3_2018_P_M1_S35_L002_ReadsPerGene.out.tab'\n",
"95. '3_2018_P_M1_S35_L003_ReadsPerGene.out.tab'\n",
"96. '3_2018_P_M1_S35_L004_ReadsPerGene.out.tab'\n",
"97. '3_2018_P_T1_S32_L001_ReadsPerGene.out.tab'\n",
"98. '3_2018_P_T1_S32_L002_ReadsPerGene.out.tab'\n",
"99. '3_2018_P_T1_S32_L003_ReadsPerGene.out.tab'\n",
"100. '3_2018_P_T1_S32_L004_ReadsPerGene.out.tab'\n",
"101. '3_2019_P_M1_S3_L001_ReadsPerGene.out.tab'\n",
"102. '3_2019_P_M1_S3_L002_ReadsPerGene.out.tab'\n",
"103. '3_2019_P_M1_S3_L003_ReadsPerGene.out.tab'\n",
"104. '3_2019_P_M1_S3_L004_ReadsPerGene.out.tab'\n",
"105. '4_2018_P_H1_S27_L001_ReadsPerGene.out.tab'\n",
"106. '4_2018_P_H1_S27_L002_ReadsPerGene.out.tab'\n",
"107. '4_2018_P_H1_S27_L003_ReadsPerGene.out.tab'\n",
"108. '4_2018_P_H1_S27_L004_ReadsPerGene.out.tab'\n",
"109. '4_2018_P_H2_S30_L001_ReadsPerGene.out.tab'\n",
"110. '4_2018_P_H2_S30_L002_ReadsPerGene.out.tab'\n",
"111. '4_2018_P_H2_S30_L003_ReadsPerGene.out.tab'\n",
"112. '4_2018_P_H2_S30_L004_ReadsPerGene.out.tab'\n",
"113. '4_2018_P_M1_S36_L001_ReadsPerGene.out.tab'\n",
"114. '4_2018_P_M1_S36_L002_ReadsPerGene.out.tab'\n",
"115. '4_2018_P_M1_S36_L003_ReadsPerGene.out.tab'\n",
"116. '4_2018_P_M1_S36_L004_ReadsPerGene.out.tab'\n",
"117. '4_2018_P_T1_S33_L001_ReadsPerGene.out.tab'\n",
"118. '4_2018_P_T1_S33_L002_ReadsPerGene.out.tab'\n",
"119. '4_2018_P_T1_S33_L003_ReadsPerGene.out.tab'\n",
"120. '4_2018_P_T1_S33_L004_ReadsPerGene.out.tab'\n",
"121. '4_2019_P_M1_S4_L001_ReadsPerGene.out.tab'\n",
"122. '4_2019_P_M1_S4_L002_ReadsPerGene.out.tab'\n",
"123. '4_2019_P_M1_S4_L003_ReadsPerGene.out.tab'\n",
"124. '4_2019_P_M1_S4_L004_ReadsPerGene.out.tab'\n",
"125. '5_2019_P_M1_S5_L001_ReadsPerGene.out.tab'\n",
"126. '5_2019_P_M1_S5_L002_ReadsPerGene.out.tab'\n",
"127. '5_2019_P_M1_S5_L003_ReadsPerGene.out.tab'\n",
"128. '5_2019_P_M1_S5_L004_ReadsPerGene.out.tab'\n",
"129. '6_2019_P_M1_S6_L001_ReadsPerGene.out.tab'\n",
"130. '6_2019_P_M1_S6_L002_ReadsPerGene.out.tab'\n",
"131. '6_2019_P_M1_S6_L003_ReadsPerGene.out.tab'\n",
"132. '6_2019_P_M1_S6_L004_ReadsPerGene.out.tab'\n",
"133. '7_2019_P_M1_S7_L001_ReadsPerGene.out.tab'\n",
"134. '7_2019_P_M1_S7_L002_ReadsPerGene.out.tab'\n",
"135. '7_2019_P_M1_S7_L003_ReadsPerGene.out.tab'\n",
"136. '7_2019_P_M1_S7_L004_ReadsPerGene.out.tab'\n",
"137. '8_2019_P_M1_S8_L001_ReadsPerGene.out.tab'\n",
"138. '8_2019_P_M1_S8_L002_ReadsPerGene.out.tab'\n",
"139. '8_2019_P_M1_S8_L003_ReadsPerGene.out.tab'\n",
"140. '8_2019_P_M1_S8_L004_ReadsPerGene.out.tab'\n",
"141. '9_2019_P_M1_S9_L001_ReadsPerGene.out.tab'\n",
"142. '9_2019_P_M1_S9_L002_ReadsPerGene.out.tab'\n",
"143. '9_2019_P_M1_S9_L003_ReadsPerGene.out.tab'\n",
"144. '9_2019_P_M1_S9_L004_ReadsPerGene.out.tab'\n",
"\n",
"\n"
],
"text/plain": [
" [1] \"1_2019_P_M1_S1_L001_ReadsPerGene.out.tab\" \n",
" [2] \"1_2019_P_M1_S1_L002_ReadsPerGene.out.tab\" \n",
" [3] \"1_2019_P_M1_S1_L003_ReadsPerGene.out.tab\" \n",
" [4] \"1_2019_P_M1_S1_L004_ReadsPerGene.out.tab\" \n",
" [5] \"10_2019_P_M1_S10_L001_ReadsPerGene.out.tab\"\n",
" [6] \"10_2019_P_M1_S10_L002_ReadsPerGene.out.tab\"\n",
" [7] \"10_2019_P_M1_S10_L003_ReadsPerGene.out.tab\"\n",
" [8] \"10_2019_P_M1_S10_L004_ReadsPerGene.out.tab\"\n",
" [9] \"11_2019_P_M1_S11_L001_ReadsPerGene.out.tab\"\n",
" [10] \"11_2019_P_M1_S11_L002_ReadsPerGene.out.tab\"\n",
" [11] \"11_2019_P_M1_S11_L003_ReadsPerGene.out.tab\"\n",
" [12] \"11_2019_P_M1_S11_L004_ReadsPerGene.out.tab\"\n",
" [13] \"12_2019_P_M1_S12_L001_ReadsPerGene.out.tab\"\n",
" [14] \"12_2019_P_M1_S12_L002_ReadsPerGene.out.tab\"\n",
" [15] \"12_2019_P_M1_S12_L003_ReadsPerGene.out.tab\"\n",
" [16] \"12_2019_P_M1_S12_L004_ReadsPerGene.out.tab\"\n",
" [17] \"13_2019_P_M1_S13_L001_ReadsPerGene.out.tab\"\n",
" [18] \"13_2019_P_M1_S13_L002_ReadsPerGene.out.tab\"\n",
" [19] \"13_2019_P_M1_S13_L003_ReadsPerGene.out.tab\"\n",
" [20] \"13_2019_P_M1_S13_L004_ReadsPerGene.out.tab\"\n",
" [21] \"14_2019_P_M1_S14_L001_ReadsPerGene.out.tab\"\n",
" [22] \"14_2019_P_M1_S14_L002_ReadsPerGene.out.tab\"\n",
" [23] \"14_2019_P_M1_S14_L003_ReadsPerGene.out.tab\"\n",
" [24] \"14_2019_P_M1_S14_L004_ReadsPerGene.out.tab\"\n",
" [25] \"15_2019_P_M1_S15_L001_ReadsPerGene.out.tab\"\n",
" [26] \"15_2019_P_M1_S15_L002_ReadsPerGene.out.tab\"\n",
" [27] \"15_2019_P_M1_S15_L003_ReadsPerGene.out.tab\"\n",
" [28] \"15_2019_P_M1_S15_L004_ReadsPerGene.out.tab\"\n",
" [29] \"16_2019_P_M1_S16_L001_ReadsPerGene.out.tab\"\n",
" [30] \"16_2019_P_M1_S16_L002_ReadsPerGene.out.tab\"\n",
" [31] \"16_2019_P_M1_S16_L003_ReadsPerGene.out.tab\"\n",
" [32] \"16_2019_P_M1_S16_L004_ReadsPerGene.out.tab\"\n",
" [33] \"17_2019_P_M1_S17_L001_ReadsPerGene.out.tab\"\n",
" [34] \"17_2019_P_M1_S17_L002_ReadsPerGene.out.tab\"\n",
" [35] \"17_2019_P_M1_S17_L003_ReadsPerGene.out.tab\"\n",
" [36] \"17_2019_P_M1_S17_L004_ReadsPerGene.out.tab\"\n",
" [37] \"18_2019_P_M1_S18_L001_ReadsPerGene.out.tab\"\n",
" [38] \"18_2019_P_M1_S18_L002_ReadsPerGene.out.tab\"\n",
" [39] \"18_2019_P_M1_S18_L003_ReadsPerGene.out.tab\"\n",
" [40] \"18_2019_P_M1_S18_L004_ReadsPerGene.out.tab\"\n",
" [41] \"19_2019_P_M1_S19_L001_ReadsPerGene.out.tab\"\n",
" [42] \"19_2019_P_M1_S19_L002_ReadsPerGene.out.tab\"\n",
" [43] \"19_2019_P_M1_S19_L003_ReadsPerGene.out.tab\"\n",
" [44] \"19_2019_P_M1_S19_L004_ReadsPerGene.out.tab\"\n",
" [45] \"2_2018_P_H1_S25_L001_ReadsPerGene.out.tab\" \n",
" [46] \"2_2018_P_H1_S25_L002_ReadsPerGene.out.tab\" \n",
" [47] \"2_2018_P_H1_S25_L003_ReadsPerGene.out.tab\" \n",
" [48] \"2_2018_P_H1_S25_L004_ReadsPerGene.out.tab\" \n",
" [49] \"2_2018_P_H2_S28_L001_ReadsPerGene.out.tab\" \n",
" [50] \"2_2018_P_H2_S28_L002_ReadsPerGene.out.tab\" \n",
" [51] \"2_2018_P_H2_S28_L003_ReadsPerGene.out.tab\" \n",
" [52] \"2_2018_P_H2_S28_L004_ReadsPerGene.out.tab\" \n",
" [53] \"2_2018_P_M1_S34_L001_ReadsPerGene.out.tab\" \n",
" [54] \"2_2018_P_M1_S34_L002_ReadsPerGene.out.tab\" \n",
" [55] \"2_2018_P_M1_S34_L003_ReadsPerGene.out.tab\" \n",
" [56] \"2_2018_P_M1_S34_L004_ReadsPerGene.out.tab\" \n",
" [57] \"2_2018_P_T1_S31_L001_ReadsPerGene.out.tab\" \n",
" [58] \"2_2018_P_T1_S31_L002_ReadsPerGene.out.tab\" \n",
" [59] \"2_2018_P_T1_S31_L003_ReadsPerGene.out.tab\" \n",
" [60] \"2_2018_P_T1_S31_L004_ReadsPerGene.out.tab\" \n",
" [61] \"2_2019_P_M1_S2_L001_ReadsPerGene.out.tab\" \n",
" [62] \"2_2019_P_M1_S2_L002_ReadsPerGene.out.tab\" \n",
" [63] \"2_2019_P_M1_S2_L003_ReadsPerGene.out.tab\" \n",
" [64] \"2_2019_P_M1_S2_L004_ReadsPerGene.out.tab\" \n",
" [65] \"20_2019_P_M1_S20_L001_ReadsPerGene.out.tab\"\n",
" [66] \"20_2019_P_M1_S20_L002_ReadsPerGene.out.tab\"\n",
" [67] \"20_2019_P_M1_S20_L003_ReadsPerGene.out.tab\"\n",
" [68] \"20_2019_P_M1_S20_L004_ReadsPerGene.out.tab\"\n",
" [69] \"21_2019_P_M1_S21_L001_ReadsPerGene.out.tab\"\n",
" [70] \"21_2019_P_M1_S21_L002_ReadsPerGene.out.tab\"\n",
" [71] \"21_2019_P_M1_S21_L003_ReadsPerGene.out.tab\"\n",
" [72] \"21_2019_P_M1_S21_L004_ReadsPerGene.out.tab\"\n",
" [73] \"22_2019_P_M1_S22_L001_ReadsPerGene.out.tab\"\n",
" [74] \"22_2019_P_M1_S22_L002_ReadsPerGene.out.tab\"\n",
" [75] \"22_2019_P_M1_S22_L003_ReadsPerGene.out.tab\"\n",
" [76] \"22_2019_P_M1_S22_L004_ReadsPerGene.out.tab\"\n",
" [77] \"23_2019_P_M1_S23_L001_ReadsPerGene.out.tab\"\n",
" [78] \"23_2019_P_M1_S23_L002_ReadsPerGene.out.tab\"\n",
" [79] \"23_2019_P_M1_S23_L003_ReadsPerGene.out.tab\"\n",
" [80] \"23_2019_P_M1_S23_L004_ReadsPerGene.out.tab\"\n",
" [81] \"24_2019_P_M1_S24_L001_ReadsPerGene.out.tab\"\n",
" [82] \"24_2019_P_M1_S24_L002_ReadsPerGene.out.tab\"\n",
" [83] \"24_2019_P_M1_S24_L003_ReadsPerGene.out.tab\"\n",
" [84] \"24_2019_P_M1_S24_L004_ReadsPerGene.out.tab\"\n",
" [85] \"3_2018_P_H1_S26_L001_ReadsPerGene.out.tab\" \n",
" [86] \"3_2018_P_H1_S26_L002_ReadsPerGene.out.tab\" \n",
" [87] \"3_2018_P_H1_S26_L003_ReadsPerGene.out.tab\" \n",
" [88] \"3_2018_P_H1_S26_L004_ReadsPerGene.out.tab\" \n",
" [89] \"3_2018_P_H2_S29_L001_ReadsPerGene.out.tab\" \n",
" [90] \"3_2018_P_H2_S29_L002_ReadsPerGene.out.tab\" \n",
" [91] \"3_2018_P_H2_S29_L003_ReadsPerGene.out.tab\" \n",
" [92] \"3_2018_P_H2_S29_L004_ReadsPerGene.out.tab\" \n",
" [93] \"3_2018_P_M1_S35_L001_ReadsPerGene.out.tab\" \n",
" [94] \"3_2018_P_M1_S35_L002_ReadsPerGene.out.tab\" \n",
" [95] \"3_2018_P_M1_S35_L003_ReadsPerGene.out.tab\" \n",
" [96] \"3_2018_P_M1_S35_L004_ReadsPerGene.out.tab\" \n",
" [97] \"3_2018_P_T1_S32_L001_ReadsPerGene.out.tab\" \n",
" [98] \"3_2018_P_T1_S32_L002_ReadsPerGene.out.tab\" \n",
" [99] \"3_2018_P_T1_S32_L003_ReadsPerGene.out.tab\" \n",
"[100] \"3_2018_P_T1_S32_L004_ReadsPerGene.out.tab\" \n",
"[101] \"3_2019_P_M1_S3_L001_ReadsPerGene.out.tab\" \n",
"[102] \"3_2019_P_M1_S3_L002_ReadsPerGene.out.tab\" \n",
"[103] \"3_2019_P_M1_S3_L003_ReadsPerGene.out.tab\" \n",
"[104] \"3_2019_P_M1_S3_L004_ReadsPerGene.out.tab\" \n",
"[105] \"4_2018_P_H1_S27_L001_ReadsPerGene.out.tab\" \n",
"[106] \"4_2018_P_H1_S27_L002_ReadsPerGene.out.tab\" \n",
"[107] \"4_2018_P_H1_S27_L003_ReadsPerGene.out.tab\" \n",
"[108] \"4_2018_P_H1_S27_L004_ReadsPerGene.out.tab\" \n",
"[109] \"4_2018_P_H2_S30_L001_ReadsPerGene.out.tab\" \n",
"[110] \"4_2018_P_H2_S30_L002_ReadsPerGene.out.tab\" \n",
"[111] \"4_2018_P_H2_S30_L003_ReadsPerGene.out.tab\" \n",
"[112] \"4_2018_P_H2_S30_L004_ReadsPerGene.out.tab\" \n",
"[113] \"4_2018_P_M1_S36_L001_ReadsPerGene.out.tab\" \n",
"[114] \"4_2018_P_M1_S36_L002_ReadsPerGene.out.tab\" \n",
"[115] \"4_2018_P_M1_S36_L003_ReadsPerGene.out.tab\" \n",
"[116] \"4_2018_P_M1_S36_L004_ReadsPerGene.out.tab\" \n",
"[117] \"4_2018_P_T1_S33_L001_ReadsPerGene.out.tab\" \n",
"[118] \"4_2018_P_T1_S33_L002_ReadsPerGene.out.tab\" \n",
"[119] \"4_2018_P_T1_S33_L003_ReadsPerGene.out.tab\" \n",
"[120] \"4_2018_P_T1_S33_L004_ReadsPerGene.out.tab\" \n",
"[121] \"4_2019_P_M1_S4_L001_ReadsPerGene.out.tab\" \n",
"[122] \"4_2019_P_M1_S4_L002_ReadsPerGene.out.tab\" \n",
"[123] \"4_2019_P_M1_S4_L003_ReadsPerGene.out.tab\" \n",
"[124] \"4_2019_P_M1_S4_L004_ReadsPerGene.out.tab\" \n",
"[125] \"5_2019_P_M1_S5_L001_ReadsPerGene.out.tab\" \n",
"[126] \"5_2019_P_M1_S5_L002_ReadsPerGene.out.tab\" \n",
"[127] \"5_2019_P_M1_S5_L003_ReadsPerGene.out.tab\" \n",
"[128] \"5_2019_P_M1_S5_L004_ReadsPerGene.out.tab\" \n",
"[129] \"6_2019_P_M1_S6_L001_ReadsPerGene.out.tab\" \n",
"[130] \"6_2019_P_M1_S6_L002_ReadsPerGene.out.tab\" \n",
"[131] \"6_2019_P_M1_S6_L003_ReadsPerGene.out.tab\" \n",
"[132] \"6_2019_P_M1_S6_L004_ReadsPerGene.out.tab\" \n",
"[133] \"7_2019_P_M1_S7_L001_ReadsPerGene.out.tab\" \n",
"[134] \"7_2019_P_M1_S7_L002_ReadsPerGene.out.tab\" \n",
"[135] \"7_2019_P_M1_S7_L003_ReadsPerGene.out.tab\" \n",
"[136] \"7_2019_P_M1_S7_L004_ReadsPerGene.out.tab\" \n",
"[137] \"8_2019_P_M1_S8_L001_ReadsPerGene.out.tab\" \n",
"[138] \"8_2019_P_M1_S8_L002_ReadsPerGene.out.tab\" \n",
"[139] \"8_2019_P_M1_S8_L003_ReadsPerGene.out.tab\" \n",
"[140] \"8_2019_P_M1_S8_L004_ReadsPerGene.out.tab\" \n",
"[141] \"9_2019_P_M1_S9_L001_ReadsPerGene.out.tab\" \n",
"[142] \"9_2019_P_M1_S9_L002_ReadsPerGene.out.tab\" \n",
"[143] \"9_2019_P_M1_S9_L003_ReadsPerGene.out.tab\" \n",
"[144] \"9_2019_P_M1_S9_L004_ReadsPerGene.out.tab\" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"list.files(count_dir, pattern = paste0(count_suffix,\"$\"), full.names = FALSE) -> countfiles\n",
"countfiles"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"144"
],
"text/latex": [
"144"
],
"text/markdown": [
"144"
],
"text/plain": [
"[1] 144"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"length(countfiles)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So there are 96 files about 2019 pilot data under this folder. Each file is generated from a fastq file using STAR."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"mycombine <- function(df1, df2) {\n",
" # Combine two data frames by gene names\n",
" #\n",
" # Args:\n",
" # df1 (Dataframe): the first count data\n",
" # df2 (Dataframe): the second count data\n",
" #\n",
" # Returns:\n",
" # (Dataframe) The combined data frame of df1 and df2\n",
" full_join(df1, df2, by = \"gene\")\n",
"}\n",
"\n",
"\n",
"mystarfile <- function(rootdir, stardir) {\n",
" # Get the absolute paths of a file\n",
" #\n",
" # Args:\n",
" # rootdir (Character): the directory of the folder\n",
" # stardir (Character): the filename\n",
" #\n",
" # Returns:\n",
" # (Character) the directory of the input file\n",
" file.path(rootdir, stardir)\n",
"}\n",
"\n",
"# Data type for each column\n",
"coltypes <- list(col_character(), col_integer(), col_integer(), col_integer())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"read the count files and combine them"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“rename_() is deprecated. \n",
"Please use rename() instead\n",
"\n",
"The 'programming' vignette or the tidyeval book can help you\n",
"to program with rename() : https://tidyeval.tidyverse.org\n",
"\u001b[90mThis warning is displayed once per session.\u001b[39m”"
]
}
],
"source": [
"out <- foreach(file = countfiles, .combine = mycombine) %do% {\n",
" cntfile <- mystarfile(count_dir, file)\n",
" readr::read_tsv(cntfile, col_names = FALSE, col_types = coltypes ) %>%\n",
" dplyr::select(X1, X4) %>%\n",
" dplyr::rename_(.dots=setNames(names(.), c(\"gene\", file)))\n",
"}\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\t- 8503
\n",
"\t- 145
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 8503\n",
"\\item 145\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 8503\n",
"2. 145\n",
"\n",
"\n"
],
"text/plain": [
"[1] 8503 145"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dim(out)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 6\n",
"\n",
"\t| gene | 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab |
\n",
"\t| <chr> | <int> | <int> | <int> | <int> | <int> |
\n",
"\n",
"\n",
"\t| N_unmapped | 21162 | 19644 | 19307 | 17356 | 6456 |
\n",
"\t| N_multimapping | 95540 | 94070 | 97787 | 98723 | 75280 |
\n",
"\t| N_noFeature | 26923 | 26053 | 27257 | 26775 | 26470 |
\n",
"\t| N_ambiguous | 606 | 638 | 615 | 607 | 464 |
\n",
"\t| CNAG_04548 | 0 | 0 | 0 | 0 | 0 |
\n",
"\t| CNAG_07303 | 0 | 0 | 0 | 0 | 0 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 6\n",
"\\begin{tabular}{r|llllll}\n",
" gene & 1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab & 1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab & 1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab & 1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab & 10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab\\\\\n",
" & & & & & \\\\\n",
"\\hline\n",
"\t N\\_unmapped & 21162 & 19644 & 19307 & 17356 & 6456\\\\\n",
"\t N\\_multimapping & 95540 & 94070 & 97787 & 98723 & 75280\\\\\n",
"\t N\\_noFeature & 26923 & 26053 & 27257 & 26775 & 26470\\\\\n",
"\t N\\_ambiguous & 606 & 638 & 615 & 607 & 464\\\\\n",
"\t CNAG\\_04548 & 0 & 0 & 0 & 0 & 0\\\\\n",
"\t CNAG\\_07303 & 0 & 0 & 0 & 0 & 0\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 6\n",
"\n",
"| gene <chr> | 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab <int> | 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab <int> | 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab <int> | 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab <int> | 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab <int> |\n",
"|---|---|---|---|---|---|\n",
"| N_unmapped | 21162 | 19644 | 19307 | 17356 | 6456 |\n",
"| N_multimapping | 95540 | 94070 | 97787 | 98723 | 75280 |\n",
"| N_noFeature | 26923 | 26053 | 27257 | 26775 | 26470 |\n",
"| N_ambiguous | 606 | 638 | 615 | 607 | 464 |\n",
"| CNAG_04548 | 0 | 0 | 0 | 0 | 0 |\n",
"| CNAG_07303 | 0 | 0 | 0 | 0 | 0 |\n",
"\n"
],
"text/plain": [
" gene 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab\n",
"1 N_unmapped 21162 \n",
"2 N_multimapping 95540 \n",
"3 N_noFeature 26923 \n",
"4 N_ambiguous 606 \n",
"5 CNAG_04548 0 \n",
"6 CNAG_07303 0 \n",
" 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab\n",
"1 19644 \n",
"2 94070 \n",
"3 26053 \n",
"4 638 \n",
"5 0 \n",
"6 0 \n",
" 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab\n",
"1 19307 \n",
"2 97787 \n",
"3 27257 \n",
"4 615 \n",
"5 0 \n",
"6 0 \n",
" 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab\n",
"1 17356 \n",
"2 98723 \n",
"3 26775 \n",
"4 607 \n",
"5 0 \n",
"6 0 \n",
" 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab\n",
"1 6456 \n",
"2 75280 \n",
"3 26470 \n",
"4 464 \n",
"5 0 \n",
"6 0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"out[1:6, 1:6]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Gather and spread the genes to get a count matrix (genecounts)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 6\n",
"\n",
"\t| expid | CNAG_00001 | CNAG_00002 | CNAG_00003 | CNAG_00004 | CNAG_00005 |
\n",
"\t| <chr> | <int> | <int> | <int> | <int> | <int> |
\n",
"\n",
"\n",
"\t| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 0 | 35 | 48 | 223 | 5 |
\n",
"\t| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 0 | 43 | 46 | 227 | 7 |
\n",
"\t| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 0 | 46 | 49 | 232 | 8 |
\n",
"\t| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 0 | 34 | 58 | 222 | 2 |
\n",
"\t| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 0 | 30 | 36 | 130 | 5 |
\n",
"\t| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 0 | 37 | 37 | 117 | 7 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 6\n",
"\\begin{tabular}{r|llllll}\n",
" expid & CNAG\\_00001 & CNAG\\_00002 & CNAG\\_00003 & CNAG\\_00004 & CNAG\\_00005\\\\\n",
" & & & & & \\\\\n",
"\\hline\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab & 0 & 35 & 48 & 223 & 5\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab & 0 & 43 & 46 & 227 & 7\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab & 0 & 46 & 49 & 232 & 8\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab & 0 & 34 & 58 & 222 & 2\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab & 0 & 30 & 36 & 130 & 5\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L002\\_ReadsPerGene.out.tab & 0 & 37 & 37 & 117 & 7\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 6\n",
"\n",
"| expid <chr> | CNAG_00001 <int> | CNAG_00002 <int> | CNAG_00003 <int> | CNAG_00004 <int> | CNAG_00005 <int> |\n",
"|---|---|---|---|---|---|\n",
"| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 0 | 35 | 48 | 223 | 5 |\n",
"| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 0 | 43 | 46 | 227 | 7 |\n",
"| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 0 | 46 | 49 | 232 | 8 |\n",
"| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 0 | 34 | 58 | 222 | 2 |\n",
"| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 0 | 30 | 36 | 130 | 5 |\n",
"| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 0 | 37 | 37 | 117 | 7 |\n",
"\n"
],
"text/plain": [
" expid CNAG_00001 CNAG_00002 CNAG_00003\n",
"1 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab 0 35 48 \n",
"2 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab 0 43 46 \n",
"3 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab 0 46 49 \n",
"4 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab 0 34 58 \n",
"5 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab 0 30 36 \n",
"6 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab 0 37 37 \n",
" CNAG_00004 CNAG_00005\n",
"1 223 5 \n",
"2 227 7 \n",
"3 232 8 \n",
"4 222 2 \n",
"5 130 5 \n",
"6 117 7 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"out %>%\n",
" slice(-(1:4)) %>%\n",
" gather(expid, value, -gene) %>% \n",
" spread(gene, value) -> genecounts\n",
"\n",
"genecounts[1:6, 1:6]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Gather and spread the first four rows to nmisc"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For nmisc, we will take the first 4 rows of out since those are the summarizing features. Next, we want to transform the data frame so that it is in statistical format (the samples are the rows and the feature types are the columns). Using a combination of gather and spread, we can transpose our matrix into the desired format."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 5\n",
"\n",
"\t| expid | namb | nmulti | nnofeat | nunmap |
\n",
"\t| <chr> | <int> | <int> | <int> | <int> |
\n",
"\n",
"\n",
"\t| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 606 | 95540 | 26923 | 21162 |
\n",
"\t| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 638 | 94070 | 26053 | 19644 |
\n",
"\t| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 615 | 97787 | 27257 | 19307 |
\n",
"\t| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 607 | 98723 | 26775 | 17356 |
\n",
"\t| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 464 | 75280 | 26470 | 6456 |
\n",
"\t| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 445 | 73190 | 25919 | 6097 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 5\n",
"\\begin{tabular}{r|lllll}\n",
" expid & namb & nmulti & nnofeat & nunmap\\\\\n",
" & & & & \\\\\n",
"\\hline\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab & 606 & 95540 & 26923 & 21162\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab & 638 & 94070 & 26053 & 19644\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab & 615 & 97787 & 27257 & 19307\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab & 607 & 98723 & 26775 & 17356\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab & 464 & 75280 & 26470 & 6456\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L002\\_ReadsPerGene.out.tab & 445 & 73190 & 25919 & 6097\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 5\n",
"\n",
"| expid <chr> | namb <int> | nmulti <int> | nnofeat <int> | nunmap <int> |\n",
"|---|---|---|---|---|\n",
"| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 606 | 95540 | 26923 | 21162 |\n",
"| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 638 | 94070 | 26053 | 19644 |\n",
"| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 615 | 97787 | 27257 | 19307 |\n",
"| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 607 | 98723 | 26775 | 17356 |\n",
"| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 464 | 75280 | 26470 | 6456 |\n",
"| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 445 | 73190 | 25919 | 6097 |\n",
"\n"
],
"text/plain": [
" expid namb nmulti nnofeat nunmap\n",
"1 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab 606 95540 26923 21162 \n",
"2 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab 638 94070 26053 19644 \n",
"3 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab 615 97787 27257 19307 \n",
"4 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab 607 98723 26775 17356 \n",
"5 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab 464 75280 26470 6456 \n",
"6 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab 445 73190 25919 6097 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"out %>%\n",
" slice(1:4) %>%\n",
" gather(expid, value, -gene) %>% \n",
" spread(gene, value) %>%\n",
" rename_(.dots=setNames(names(.), c(\"expid\", \"namb\", \"nmulti\", \"nnofeat\",\"nunmap\"))) -> nmisc\n",
"\n",
"nmisc[1:6, ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Gather and spread the gene rows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each samples, we want to sum up all the counts, so we can create a variable denoting the number of total genes mapped for each sample by summing across the rows."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 2\n",
"\n",
"\t| expid | ngenemap |
\n",
"\t| <chr> | <dbl> |
\n",
"\n",
"\n",
"\t| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 4660549 |
\n",
"\t| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 4591006 |
\n",
"\t| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 4715846 |
\n",
"\t| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 4681095 |
\n",
"\t| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 3261459 |
\n",
"\t| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 3208423 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 2\n",
"\\begin{tabular}{r|ll}\n",
" expid & ngenemap\\\\\n",
" & \\\\\n",
"\\hline\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab & 4660549\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab & 4591006\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab & 4715846\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab & 4681095\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab & 3261459\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L002\\_ReadsPerGene.out.tab & 3208423\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 2\n",
"\n",
"| expid <chr> | ngenemap <dbl> |\n",
"|---|---|\n",
"| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 4660549 |\n",
"| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 4591006 |\n",
"| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 4715846 |\n",
"| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 4681095 |\n",
"| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 3261459 |\n",
"| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 3208423 |\n",
"\n"
],
"text/plain": [
" expid ngenemap\n",
"1 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab 4660549 \n",
"2 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab 4591006 \n",
"3 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab 4715846 \n",
"4 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab 4681095 \n",
"5 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab 3261459 \n",
"6 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab 3208423 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"out %>%\n",
" slice(-(1:4)) %>%\n",
" gather(expid, value, -gene) %>% \n",
" spread(gene, value) %>%\n",
" mutate(ngenemap=rowSums(.[-1])) %>%\n",
" select(expid, ngenemap) -> ngene\n",
"\n",
"ngene[1:6, ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### merge in the 4 misc counts and add summaries"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far, we can create a comprehensive data frame mapresults which will combine ngene with nmisc. This data frame will have summarizing mapping features in addition to proportion features."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 10\n",
"\n",
"\t| expid | ngenemap | namb | nmulti | nnofeat | nunmap | depth | prob.gene | prob.nofeat | prob.unique |
\n",
"\t| <chr> | <dbl> | <int> | <int> | <int> | <int> | <int> | <dbl> | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\t| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 4660549 | 606 | 95540 | 26923 | 21162 | 4804780 | 0.9699818 | 0.005603378 | 0.9755851 |
\n",
"\t| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 4591006 | 638 | 94070 | 26053 | 19644 | 4731411 | 0.9703249 | 0.005506391 | 0.9758313 |
\n",
"\t| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 4715846 | 615 | 97787 | 27257 | 19307 | 4860812 | 0.9701766 | 0.005607499 | 0.9757841 |
\n",
"\t| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 4681095 | 607 | 98723 | 26775 | 17356 | 4824556 | 0.9702644 | 0.005549733 | 0.9758141 |
\n",
"\t| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 3261459 | 464 | 75280 | 26470 | 6456 | 3370129 | 0.9677549 | 0.007854299 | 0.9756092 |
\n",
"\t| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 3208423 | 445 | 73190 | 25919 | 6097 | 3314074 | 0.9681205 | 0.007820888 | 0.9759414 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 10\n",
"\\begin{tabular}{r|llllllllll}\n",
" expid & ngenemap & namb & nmulti & nnofeat & nunmap & depth & prob.gene & prob.nofeat & prob.unique\\\\\n",
" & & & & & & & & & \\\\\n",
"\\hline\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L001\\_ReadsPerGene.out.tab & 4660549 & 606 & 95540 & 26923 & 21162 & 4804780 & 0.9699818 & 0.005603378 & 0.9755851\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L002\\_ReadsPerGene.out.tab & 4591006 & 638 & 94070 & 26053 & 19644 & 4731411 & 0.9703249 & 0.005506391 & 0.9758313\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L003\\_ReadsPerGene.out.tab & 4715846 & 615 & 97787 & 27257 & 19307 & 4860812 & 0.9701766 & 0.005607499 & 0.9757841\\\\\n",
"\t 1\\_2019\\_P\\_M1\\_S1\\_L004\\_ReadsPerGene.out.tab & 4681095 & 607 & 98723 & 26775 & 17356 & 4824556 & 0.9702644 & 0.005549733 & 0.9758141\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L001\\_ReadsPerGene.out.tab & 3261459 & 464 & 75280 & 26470 & 6456 & 3370129 & 0.9677549 & 0.007854299 & 0.9756092\\\\\n",
"\t 10\\_2019\\_P\\_M1\\_S10\\_L002\\_ReadsPerGene.out.tab & 3208423 & 445 & 73190 & 25919 & 6097 & 3314074 & 0.9681205 & 0.007820888 & 0.9759414\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 10\n",
"\n",
"| expid <chr> | ngenemap <dbl> | namb <int> | nmulti <int> | nnofeat <int> | nunmap <int> | depth <int> | prob.gene <dbl> | prob.nofeat <dbl> | prob.unique <dbl> |\n",
"|---|---|---|---|---|---|---|---|---|---|\n",
"| 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab | 4660549 | 606 | 95540 | 26923 | 21162 | 4804780 | 0.9699818 | 0.005603378 | 0.9755851 |\n",
"| 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab | 4591006 | 638 | 94070 | 26053 | 19644 | 4731411 | 0.9703249 | 0.005506391 | 0.9758313 |\n",
"| 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab | 4715846 | 615 | 97787 | 27257 | 19307 | 4860812 | 0.9701766 | 0.005607499 | 0.9757841 |\n",
"| 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab | 4681095 | 607 | 98723 | 26775 | 17356 | 4824556 | 0.9702644 | 0.005549733 | 0.9758141 |\n",
"| 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab | 3261459 | 464 | 75280 | 26470 | 6456 | 3370129 | 0.9677549 | 0.007854299 | 0.9756092 |\n",
"| 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab | 3208423 | 445 | 73190 | 25919 | 6097 | 3314074 | 0.9681205 | 0.007820888 | 0.9759414 |\n",
"\n"
],
"text/plain": [
" expid ngenemap namb nmulti nnofeat\n",
"1 1_2019_P_M1_S1_L001_ReadsPerGene.out.tab 4660549 606 95540 26923 \n",
"2 1_2019_P_M1_S1_L002_ReadsPerGene.out.tab 4591006 638 94070 26053 \n",
"3 1_2019_P_M1_S1_L003_ReadsPerGene.out.tab 4715846 615 97787 27257 \n",
"4 1_2019_P_M1_S1_L004_ReadsPerGene.out.tab 4681095 607 98723 26775 \n",
"5 10_2019_P_M1_S10_L001_ReadsPerGene.out.tab 3261459 464 75280 26470 \n",
"6 10_2019_P_M1_S10_L002_ReadsPerGene.out.tab 3208423 445 73190 25919 \n",
" nunmap depth prob.gene prob.nofeat prob.unique\n",
"1 21162 4804780 0.9699818 0.005603378 0.9755851 \n",
"2 19644 4731411 0.9703249 0.005506391 0.9758313 \n",
"3 19307 4860812 0.9701766 0.005607499 0.9757841 \n",
"4 17356 4824556 0.9702644 0.005549733 0.9758141 \n",
"5 6456 3370129 0.9677549 0.007854299 0.9756092 \n",
"6 6097 3314074 0.9681205 0.007820888 0.9759414 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ngene %>%\n",
" full_join(nmisc, by=\"expid\") %>%\n",
" mutate(depth = as.integer(ngenemap + namb + nmulti + nnofeat + nunmap)) %>%\n",
" mutate(prob.gene = ngenemap / depth) %>%\n",
" mutate(prob.nofeat = nnofeat / depth) %>%\n",
" mutate(prob.unique = (ngenemap+nnofeat) / depth) -> mapresults\n",
"\n",
"mapresults[1:6, ]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"/home/jovyan/work/scratch/analysis_output/out/hts-pilot-2019.RData: 'f617195665ef950ffb36a89f2d18a9ca'"
],
"text/latex": [
"\\textbf{/home/jovyan/work/scratch/analysis\\textbackslash{}\\_output/out/hts-pilot-2019.RData:} 'f617195665ef950ffb36a89f2d18a9ca'"
],
"text/markdown": [
"**/home/jovyan/work/scratch/analysis_output/out/hts-pilot-2019.RData:** 'f617195665ef950ffb36a89f2d18a9ca'"
],
"text/plain": [
"/home/jovyan/work/scratch/analysis_output/out/hts-pilot-2019.RData \n",
" \"f617195665ef950ffb36a89f2d18a9ca\" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outfile <- file.path(outdir, \"hts-pilot-2019.RData\")\n",
"save(mapresults, genecounts, file=outfile)\n",
"tools::md5sum(outfile)"
]
}
],
"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": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}