-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdavies2018.R
159 lines (129 loc) · 6.71 KB
/
davies2018.R
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
library("MSnbase")
library("pRoloc")
csvfile <- "../../inst/extdata/Daviesetal.csv"
csv <- read.csv(csvfile)
#getEcols(csvfile, split = ",", n = 3)
## There are 2 replicates in this dataset
davies2018ap4b1 <- readMSnSet2(file = csvfile, ecol = 6:15, skip = 0, fnames = 1)
davies2018ap4e1 <- readMSnSet2(file = csvfile, ecol = 16:25, skip = 0, fnames = 1)
davies2018wt <- readMSnSet2(file = csvfile, ecol = 26:35, skip = 0, fnames = 1)
## Experimental data to add
experiment <- new("MIAPE",
lab = "Cambridge Institute for Medical Research",
name = "Alexandra K. Davies",
contact = "Margaret S. Robinson",
email = "[email protected]",
samples = list(
species = "Human HeLa",
operator = "Alexandra K. Davies"
),
title = "AP-4 vesicles contribute to spatial control of autophagy via RUSC-dependent peripheral delivery of ATG9A",
abstract = "Adaptor protein 4 (AP-4) is an ancient membrane trafficking complex, whose function has largely remained elusive. In humans, AP-4 deficiency causes a severe neurological disorder of unknown aetiology. We apply unbiased proteomic methods, including 'Dynamic Organellar Maps', to find proteins whose subcellular localisation depends on AP-4. We identify three transmembrane cargo proteins, ATG9A, SERINC1 and SERINC3, and two AP-4 accessory proteins, RUSC1 and RUSC2. We demonstrate that AP-4 deficiency causes missorting of ATG9A in diverse cell types, including patient-derived cells, as well as dysregulation of autophagy. RUSC2 facilitates the transport of AP-4-derived, ATG9A-positive vesicles from the trans-Golgi network to the cell periphery. These vesicles cluster in close association with autophagosomes, suggesting they are the 'ATG9A reservoir' required for autophagosome biogenesis. Our study uncovers ATG9A trafficking as a ubiquitous function of the AP-4 pathway. Furthermore, it provides a potential molecular pathomechanism of AP-4 deficiency, through dysregulated spatial control of autophagy.",
pubMedIds = "",
url = "",
instrumentModel = "Q Exactive HF-X",
instrumentManufacturer = "ThermoScientific",
ionSource = "",
analyser = "Orbitrap",
detectorType = "Orbitrap",
softwareName = "MaxQuant ",
collisionEnergy = "",
dateStamp = "27 September 2018"
)
## Expression data
e1 <- exprs(davies2018ap4b1)
e2 <- exprs(davies2018ap4e1)
e3 <- exprs(davies2018wt)
## Experiment info
toName <- paste0(colnames(e1)[1:10])
colnames(e1) <- toName
pd1 <- data.frame(toName,
row.names=colnames(e1))
pd1 <- new("AnnotatedDataFrame", pd1)
## Experiment info
toName <- paste0(colnames(e2)[1:10])
colnames(e2) <- toName
pd2 <- data.frame(toName,
row.names=colnames(e2))
pd2 <- new("AnnotatedDataFrame", pd2)
## Experiment info
toName <- paste0(colnames(e3)[1:10])
colnames(e3) <- toName
pd3 <- data.frame(toName,
row.names=colnames(e3))
pd3 <- new("AnnotatedDataFrame", pd3)
## feature data
fd1 <- rownames(e1)
fd1 <- as.data.frame(fd1)
markerdata <- as.data.frame(csv[,5])
rownames(markerdata) <- csv[,1]
fd1$markers <- "unknown"
rownames(fd1) <- csv[,1]
fd1$markers[markerdata !=""] <- unlist(lapply(markerdata[markerdata !="",1], as.character))
fd1 <- new("AnnotatedDataFrame", fd1)
## feature data
fd2 <- rownames(e2)
fd2 <- as.data.frame(fd2)
markerdata <- as.data.frame(csv[,5])
rownames(markerdata) <- csv[,1]
fd2$markers <- "unknown"
rownames(fd2) <- csv[,1]
fd2$markers[markerdata !=""] <- unlist(lapply(markerdata[markerdata !="",1], as.character))
fd2 <- new("AnnotatedDataFrame", fd2)
## feature data
fd3 <- rownames(e3)
fd3 <- as.data.frame(fd3)
markerdata <- as.data.frame(csv[,5])
rownames(markerdata) <- csv[,1]
fd3$markers <- "unknown"
rownames(fd3) <- csv[,1]
fd3$markers[markerdata !=""] <- unlist(lapply(markerdata[markerdata !="",1], as.character))
fd3 <- new("AnnotatedDataFrame", fd3)
process <- new("MSnProcess",
processing=c(
paste("Loaded on ",date(),".",sep=""),
paste("median Normalisation")),
normalised=FALSE)
davies2018ap4b1 <- new("MSnSet",
exprs = e1,
phenoData = pd1,
experimentData = experiment,
featureData = fd1)
davies2018ap4e1 <- new("MSnSet",
exprs = e2,
phenoData = pd2,
experimentData = experiment,
featureData = fd2)
davies2018wt <- new("MSnSet",
exprs = e3,
phenoData = pd3,
experimentData = experiment,
featureData = fd3)
## Normalise
davies2018ap4b1 <- normalise(davies2018ap4b1, method = "sum")
davies2018ap4e1 <- normalise(davies2018ap4e1, method = "sum")
davies2018wt <- normalise(davies2018wt, method = "sum")
#plot2D(orre2019a431, main = "A431", method = "t-SNE")
#addLegend(orre2019a431, where = "bottomleft", ncol = 1, cex = 0.9)
## Phenodata
pData(davies2018ap4b1)$fraction <- matrix(unlist(strsplit(sampleNames(davies2018ap4b1), "[_]")), 10, 3, byrow = T)[,3]
pData(davies2018ap4b1)$replicate <- matrix(unlist(strsplit(sampleNames(davies2018ap4b1), "[_]")), 10, 3, byrow = T)[,2]
pData(davies2018ap4e1)$fraction <- matrix(unlist(strsplit(sampleNames(davies2018ap4e1), "[_]")), 10, 3, byrow = T)[,3]
pData(davies2018ap4e1)$replicate <- matrix(unlist(strsplit(sampleNames(davies2018ap4e1), "[_]")), 10, 3, byrow = T)[,2]
pData(davies2018wt)$fraction <- matrix(unlist(strsplit(sampleNames(davies2018wt), "[_]")), 10, 3, byrow = T)[,3]
pData(davies2018wt)$replicate <- matrix(unlist(strsplit(sampleNames(davies2018wt), "[_]")), 10, 3, byrow = T)[,2]
stopifnot(length(pData(davies2018ap4b1)$replicate) == ncol(e1)) # check columns and experiments match
stopifnot(length(pData(davies2018ap4e1)$replicate) == ncol(e1)) # check columns and experiments match
stopifnot(length(pData(davies2018wt)$replicate) == ncol(e1)) # check columns and experiments match
davies2018ap4b1@processingData <- process
davies2018ap4e1@processingData <- process
davies2018wt@processingData <- process
stopifnot(validObject(davies2018ap4b1))
stopifnot(validObject(davies2018ap4e1))
stopifnot(validObject(davies2018wt))
save(davies2018ap4b1, file="../../data/davies2018ap4b1.rda",
compress = "xz", compression_level = 9)
save(davies2018ap4e1, file="../../data/davies2018ap4e1.rda",
compress = "xz", compression_level = 9)
save(davies2018wt, file="../../data/davies2018wt.rda",
compress = "xz", compression_level = 9)