-
Notifications
You must be signed in to change notification settings - Fork 0
/
Build_bact_assoc_nets.R
76 lines (62 loc) · 3.17 KB
/
Build_bact_assoc_nets.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
# Import libraries
library(NetCoMi)
library(phyloseq)
library(microbiome)
# Set seed to make results reproducible
set.seed(123)
# Load data
Col_forest_metag_filt_phy <- readRDS("Data/Colomb_forest_metag_phy_filtered.rds")
# Create phyloseq file at the family level
phy_family = tax_glom(Col_forest_metag_filt_phy, taxrank="Family")
# Rename taxonomic table and make Family unique
phy_familyrenamed <- renameTaxa(phy_family,
pat = "<name>",
substPat = "<name>_<subst_name>(<subst_R>)",
numDupli = "Family")
# Convert taxonomic information into a data frame and save it
tax_bact_familyrenamed <- data.frame(tax_table(phy_familyrenamed))
write.csv(tax_bact_familyrenamed, "Data/tax_bact_familyrenamed.csv",
row.names = FALSE)
# Split the samples by condition
forest <- phyloseq::subset_samples(phy_familyrenamed, sample_environment.feature == "ENVO:00001998")
pasture <- phyloseq::subset_samples(phy_familyrenamed, sample_environment.feature == "ENVO:00005773")
# SPRING networks
nets_spring <- netConstruct(forest,
pasture,
taxRank = "Family",
measure = "spring",
measurePar = list(nlambda = 10,
rep.num = 10,
thresh = 0.02),
normMethod = "none",
zeroMethod = "none",
sparsMethod = "none",
dissFunc = "signed",
verbose = 3,
seed = 123)
# Save an object to a file
saveRDS(nets_spring, file = "Results/Networks/nets_spring_ColombRainforest.rds")
# Export the networks as edge lists
forest_spring_fam_net_df <- as.data.frame(do.call(cbind, nets_spring$edgelist1))
write.csv(forest_spring_fam_net_df, "Results/Networks/Forest_spring_fam_net_edgelist.csv")
pasture_spring_fam_net_df <- as.data.frame(do.call(cbind, nets_spring$edgelist2))
write.csv(pasture_spring_fam_net_df, "Results/Networks/Pasture_spring_fam_net_edgelist.csv")
# CCLasso networks
nets_cclasso <- netConstruct(forest,
pasture,
taxRank = "Family",
measure = "cclasso",
normMethod = "none",
zeroMethod = "pseudoZO",
sparsMethod = "threshold",
thresh = 0.2,
dissFunc = "signed",
verbose = 3,
seed = 123)
# Save an object to a file
saveRDS(nets_cclasso, file = "Results/Networks/nets_cclasso_ColombRainforest.rds")
# Export the networks as edge lists
forest_cclasso_fam_net_df <- as.data.frame(do.call(cbind, nets_cclasso$edgelist1))
write.csv(forest_cclasso_fam_net_df, "Results/Networks/Forest_cclasso_fam_net_edgelist.csv")
pasture_cclasso_fam_net_df <- as.data.frame(do.call(cbind, nets_cclasso$edgelist2))
write.csv(pasture_cclasso_fam_net_df, "Results/Networks/Pasture_cclasso_fam_net_edgelist.csv")