У меня есть таблица с именем NE
, которая содержит сплайсированные соединения РНК:
#Chr start end ID . + GTEX-Q2AG-0126-SM-2HMLB
1: 13 20244503 20244980 13:20244503:20244980:clu_1587_NA . + 0.01122552
2: 13 20244503 20245346 13:20244503:20245346:clu_1587_NA . + 0.09151192
3: 13 20249124 20251864 13:20249124:20251864:clu_1588_NA . + 0.94156107
4: 13 20249793 20251864 13:20249793:20251864:clu_1588_NA . + -1.00545250
5: 13 20251963 20304379 13:20251963:20304379:clu_1589_NA . + -0.17101732
6: 13 20283739 20304379 13:20283739:20304379:clu_1589_NA . + 0.26907797
GTEX-N7MT-0011-R5a-SM-2I3G6 GTEX-PW2O-0526-SM-2I3DX GTEX-OHPK-0526-SM-2HMJB
1: -0.73425796 0.32721133 -0.05645774
2: 0.83044440 -0.08213476 0.23888779
3: -0.02207567 -1.68168241 1.69042151
4: 0.16780741 1.55309040 -1.83313242
5: -0.96313998 0.96385901 0.40292406
6: 1.00445387 -0.89044547 -0.24664686
У меня есть другая таблица с именем tissue_table
, которая содержит такую информацию:
Run Sample_Name body_site
1: SRR598484 GTEX-PW2O-0526-SM-2I3DX Lung
2: SRR598124 GTEX-NPJ8-0011-R4a-SM-2HML3 Brain - Amygdala
3: SRR599192 GTEX-N7MT-0011-R5a-SM-2I3G6 Brain - Caudate (basal ganglia)
4: SRR601925 GTEX-OHPK-0526-SM-2HMJB Lung
5: SRR601068 GTEX-Q2AG-0126-SM-2HMLB Skin - Sun Exposed (Lower leg)
6: SRR602598 GTEX-Q2AG-0011-R9A-SM-2HMJ6 Brain - Spinal cord (cervical c-1)
Я хочу создать новые таблицы из NE
на основе tissue_table$body_site
; это означает, что я хочу, чтобы все строки для каждого столбца, которые соответствуют каждому типу ткани, выводились в виде файла. Например, если GTEX-PW2O-0526-SM-2I3DX
и GTEX-OHPK-0526-SM-2HMJB
совпадают с 'Lung' в tissue_table$body_site
, я хочу создать новую таблицу с именем, например LungPhenotypes.txt
, которая выглядит как NE
(в том смысле, что в ней есть столбцы #Chr
, start
, end
и ID
), но содержит только информацию, взятую из легких в соответствии с tissue_table
.
Вот код, который у меня уже есть:
require("data.table")
require("R.utils")
args = commandArgs(trailingOnly=TRUE)
# args[1] is the leafcutter-generated phenotypes, args[2] is the tissue table
NE <- fread("NE_sQTL_perind.counts.gz.qqnorm_chr13")
tistab <- fread("tissue_table.txt")
# below takes the SRR IDs found in NE column headers, matches them to those found in the
# tissue table, and then changes them the GTEX sample ID
ind <- match(names(NE), tistab$Run)
names(NE) <- tistab$Sample_Name[ind]
# I guess now what I want to do is find the tissue that corresponds to each sample, and write
# to file the phenotypes or whatever
Это насколько я понял: мне удалось изменить заголовки столбцов с их оригинальных заголовков (найденных в tissue_table$Run
) на заголовки, найденные в tissue_table$Sample_Name
. Иначе я даже не знаю, как бы я подошел к этой проблеме. Я уверен, что это легко, у меня просто недостаточно знаний о R, чтобы понять это. Пожалуйста, дайте мне знать, если я смогу прояснить мою проблему.
Спасибо.
РЕДАКТИРОВАТЬ: По запросу, данные образца:
> dput(head(NE, 10))
structure(list(`#Chr` = c(13L, 13L, 13L, 13L, 13L, 13L, 13L,
13L, 13L, 13L), start = c(20244503L, 20244503L, 20249124L, 20249793L,
20251963L, 20283739L, 20803888L, 20803888L, 20803888L, 20804946L
), end = c(20244980L, 20245346L, 20251864L, 20251864L, 20304379L,
20304379L, 20804837L, 20805005L, 20805521L, 20805521L), ID = c("13:20244503:20244980:clu_1587_NA",
"13:20244503:20245346:clu_1587_NA", "13:20249124:20251864:clu_1588_NA",
"13:20249793:20251864:clu_1588_NA", "13:20251963:20304379:clu_1589_NA",
"13:20283739:20304379:clu_1589_NA", "13:20803888:20804837:clu_1590_NA",
"13:20803888:20805005:clu_1590_NA", "13:20803888:20805521:clu_1590_NA",
"13:20804946:20805521:clu_1590_NA"), . = c(".", ".", ".", ".",
".", ".", ".", ".", ".", "."), `+` = c("+", "+", "+", "+", "+",
"+", "+", "+", "+", "+"), `GTEX-Q2AG-0126-SM-2HMLB` = c(0.011225518662542,
0.0915119165352026, 0.941561071760354, -1.00545250297076, -0.171017320204747,
0.269077973405877, 2.26711789363315, -2.79253861638934, -0.732483471764967,
1.14279009708336), `GTEX-N7MT-0011-R5a-SM-2I3G6` = c(-0.734257957140664,
0.830444403564401, -0.0220756713815287, 0.167807411034554, -0.963139984748595,
1.00445387270491, -1.10454772191492, 0.872446843686367, -1.47490517820283,
-1.69929164403211), `GTEX-PW2O-0526-SM-2I3DX` = c(0.327211326349541,
-0.0821347590368987, -1.68168241366976, 1.55309040177528, 0.963859014491135,
-0.890445468211905, 0.126678936291309, 0.135493519239826, 0.126527048968275,
0.14416639182154), `GTEX-OHPK-0526-SM-2HMJB` = c(-0.0564577430398568,
0.238887789085513, 1.69042150820732, -1.83313242253239, 0.402924064571882,
-0.246646862056526, 0.091360610412634, 0.0993070943580591, 0.0912093063816043,
0.107562947531429), `GTEX-OXRL-0526-SM-2I3EZ` = c(0.0674782081460005,
0.158645645285045, 1.78738099166716, -1.88842809909606, 0.508954892349862,
-0.315945651353048, 0.119695085673777, 0.126982719708521, 0.119543328884529,
0.134581189175627), `GTEX-NPJ8-0011-R4a-SM-2HML3` = c(-0.437321982565311,
0.507754687799161, -0.150716233289565, 0.259715866743248, -1.25996459356113,
1.18247794999203, -1.16864600399772, 0.315945651353048, -0.328801349819712,
-1.23212889898317), `GTEX-Q2AG-0011-R9A-SM-2HMJ6` = c(-1.09599155148678,
0.925486945143163, -0.404068240058415, 0.465014413370245, 0.0869736283894613,
-0.0496678054798097, -0.151935513719884, -0.144927678233019,
2.26125148845566, 0.321494053014199), `GTEX-OIZH-0005-SM-2HMJN` = c(2.00669264539791,
-2.53139742741042, -1.17975392273608, 0.834065972618895, 1.47222782753213,
-1.91886672909768, 0.530513153906467, 0.969147205230478, 0.37852951989621,
1.19315578476064), `GTEX-Q2AG-0011-R4A-SM-2HMKA` = c(-0.375779231335771,
0.446292587332684, -0.710978014218879, 0.662901557390466, -1.30771089265708,
1.19715667858446, -0.747740836500599, 0.160171661041644, -0.487460943331342,
-0.816486102660646), `GTEX-OXRK-0926-SM-2HMKP` = c(0.536071533897896,
-0.32498668145395, 0.286146956081191, -0.058419751422225, 0.245249146196741,
-0.0231306654644876, 0.134125066194346, 0.141045986021489, 0.133973031406055,
0.147669008162181)), .Names = c("#Chr", "start", "end", "ID",
".", "+", "GTEX-Q2AG-0126-SM-2HMLB", "GTEX-N7MT-0011-R5a-SM-2I3G6",
"GTEX-PW2O-0526-SM-2I3DX", "GTEX-OHPK-0526-SM-2HMJB", "GTEX-OXRL-0526-SM-2I3EZ",
"GTEX-NPJ8-0011-R4a-SM-2HML3", "GTEX-Q2AG-0011-R9A-SM-2HMJ6",
"GTEX-OIZH-0005-SM-2HMJN", "GTEX-Q2AG-0011-R4A-SM-2HMKA", "GTEX-OXRK-0926-SM-2HMKP"
), class = c("data.table", "data.frame"), row.names = c(NA, -10L
), .internal.selfref = <pointer: 0x1fcb378>)
> dput(head(tistab, 10))
structure(list(Run = c("SRR598484", "SRR598124", "SRR599192",
"SRR601925", "SRR601068", "SRR602598", "SRR607586", "SRR608288",
"SRR600445", "SRR608344"), Sample_Name = c("GTEX-PW2O-0526-SM-2I3DX",
"GTEX-NPJ8-0011-R4a-SM-2HML3", "GTEX-N7MT-0011-R5a-SM-2I3G6",
"GTEX-OHPK-0526-SM-2HMJB", "GTEX-Q2AG-0126-SM-2HMLB", "GTEX-Q2AG-0011-R9A-SM-2HMJ6",
"GTEX-OXRL-0526-SM-2I3EZ", "GTEX-OXRK-0926-SM-2HMKP", "GTEX-Q2AG-0011-R4A-SM-2HMKA",
"GTEX-OIZH-0005-SM-2HMJN"), body_site = c("Lung", "Brain - Amygdala",
"Brain - Caudate (basal ganglia)", "Lung", "Skin - Sun Exposed (Lower leg)",
"Brain - Spinal cord (cervical c-1)", "Lung", "Lung", "Brain - Amygdala",
"Whole Blood")), .Names = c("Run", "Sample_Name", "body_site"
), class = c("data.table", "data.frame"), row.names = c(NA, -10L
), .internal.selfref = <pointer: 0x1fcb378>)