-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlib-amp_ddradseq.Rmd
127 lines (90 loc) · 3.76 KB
/
lib-amp_ddradseq.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
---
title: "PCR pools on `r Sys.Date()`"
params:
num_negs: 0
num_wells: 96
rxn_size_ul: 20
output: html_notebook
---
1. Update db with PCR numbers and indices.
```{r update_db, echo=FALSE, message=FALSE}
source("../genomics/scripts/lab_helpers.R")
library(tidyverse)
# lab <- write_db("Laboratory")
P <- paste0("P", formatC(73:128, width = 3, format = "d", flag=0))
pools <- tibble(pcr_id = P) %>%
filter(pcr_id < "P079" | pcr_id > "P082") %>%
mutate(date = "2018-08-22",
buffer = 30,
size = 375,
vol_from_pippin = 40,
pool_id = paste0("Pool", substr(pcr_id, 2, 5)))
# send data to pool table in db
for_db <- pools %>%
select(-pcr_id)
# dbWriteTable(lab, "pool", for_db, row.names=F, append=T)
rm(for_db)
# send data to pcr table in db
pools <- pools %>%
select(-buffer, -vol_from_pippin, -size) %>%
# date of pcr
mutate(date = "2018-09-04",
# 4 pcr reactions for each pool
rxns = 4,
# add illumina index number
index = rep(1:12, length = nrow(pools)),
# 20uL pcr reactions
vol_rxns = params$rxn_size_ul,
# 430 bp for APCL project
bp = 430)
# dbWriteTable(lab, "pcr", pools, row.names=F, append = T)
```
PCR pools
```{r pcr setup}
library(dplyr)
num_wells <- params$num_wells
neg_control <- params$num_negs
rxns_plus_error <- ceiling((num_wells + neg_control)*1.1)
rxn_size <- params$rxn_size_ul
final_volume <- rxn_size * rxns_plus_error
calc_table <- readr::read_csv("item, vol_to_add, initial_conc, final_conc, final_vol, per_rxn
5x buffer, NA, 5, 1, NA, 4
F primer, NA, 10, 0.5, NA, 1
dNTPs, NA, 10, 0.2, NA, 0.4
MgCl2, NA, 50, 1.25, NA, 0.5
phusion, NA, NA, NA, NA, 0.2
pH2O, NA, NA, NA, NA, 2.9") %>%
mutate(final_vol = final_volume,
vol_to_add = (final_conc * final_vol)/initial_conc,
vol_to_add = ifelse(item == "phusion", final_volume/100, vol_to_add))
added <- calc_table %>%
summarise(s = sum(vol_to_add, na.rm = T))
calc_table <- calc_table %>%
mutate(vol_to_add = ifelse(item == "pH2O", final_vol - (added$s+rxns_plus_error+(rxns_plus_error*rxn_size*.5)), vol_to_add))
# double check the match
check <- calc_table %>%
mutate(check = per_rxn*rxns_plus_error)
# These should all be true
floor(check$check) == floor(check$vol_to_add)
knitr::kable(calc_table) %>%
kableExtra::kable_styling()
```
2. Run each pool in 4 rxns at 10µL of sample each in 20µL reactions.
3. Don’t include R primer in master mix, add later…example recipe looks like:
* Place 9µL master mix in each well
* Place 10µL sample in each well
* Place 1µL R primer (of the correct index) in each well
4. Run on thermocycler PHUSION_PCR which is 98 degrees for 30 sec, (98degrees for 10 sec, 64degrees for 30 sec, 72degrees for 30 sec) X 12, 72degrees for 10 minutes, hold at 4degreesC
After the thermocycler finishes (~35 minutes) Combine the reactions of each pool individually in tubes (o-ring if not cleaning immediately) labeled on the top with the pool number and on the side with
“PCR #" not clean date
Clean the PCR products separately (separate pools) each pool should be 80µL add 120µL Ampure - elute into 40µL TE
Qubit the pools
Make a note of the supplies used and update the inventory
For PCR Single reaction volumes: 2.9 pH2O 4.0 Phusion buffer 0.5 MgCl2 0.4 10mM dNTPs 1.0 F Primer 1.0 R Primer (2_2) 0.2 Phusion polymerase
```{r make working stock}
```
To make working stock primers from primary stock:
For 1 plate of PCR rxns, make 100µL:
* final: 100µL @ 10µM = initial 5µL @ 200µM
* Combine 95µL pH2O + 5µL primary primer stock (in primer freezer box in freezer)
3/4/2014 - pg 54 of lab notebook