Reputation: 1
I am trying to create a taxonomic reference for some 16S/18S data in R and have been running into issues when following this tutorial. I am trying to create an OTU table from a taxonomy/sequence table that was bootstrapped for only 18S data. Here is the error I receive and I am not sure how to go about fixing it:
OTU <- seqtab.nochim_18S %>%
column_to_rownames("OTUNumber") %>%
select_if(is.numeric) %>%
select(-contains("_boot")) %>%
as.matrix() %>%
otu_table(taxa_are_rows = TRUE)
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'object' in selecting a method for function 'otu_table': error in evaluating the argument 'x' in selecting a method for function 'as.matrix':.data
must be a data frame without row names.
seqchim_18S_struct <- structure(
list(
Kingdom = c(
"Bacteria",
"Bacteria",
"Bacteria",
"Bacteria",
"Bacteria",
"Bacteria"
),
Supergroups = c(
"Bacteria_X",
"Bacteria_X",
"Bacteria_X",
"Bacteria_X",
"Bacteria_X",
"Bacteria_X"
),
Divison = c(
"Proteobacteria",
"Firmicutes",
"Proteobacteria",
"Firmicutes",
"Firmicutes",
"Firmicutes"
),
Class = c(
"Gammaproteobacteria",
"Clostridia",
"Gammaproteobacteria",
"Bacilli",
"Clostridia",
"Clostridia"
),
Order = c(
"Enterobacteriales",
"Clostridiales",
"Enterobacteriales",
"Bacillales",
"Clostridiales",
"Clostridiales"
),
Family = c(
"Enterobacteriaceae",
"Clostridiaceae_1",
"Enterobacteriaceae",
"Planococcaceae",
"Clostridiaceae_1",
"Ruminococcaceae"
),
Genus = c(
"Brenneria",
"Clostridium_sensu_stricto_1",
"EscherichiaShigella",
"Lysinibacillus",
"Clostridium_sensu_stricto_1",
"Hydrogenoanaerobacterium"
),
Species = c(
"Brenneria_sp.",
"Clostridium_sensu_stricto_1_sp.",
"EscherichiaShigella_sp.",
"Lysinibacillus_sp.",
"Clostridium_sensu_stricto_1_sp.",
"Hydrogenoanaerobacterium_sp."
),
Kingdom_boot = c(100L, 100L, 100L, 100L, 100L, 100L),
Supergroups_boot = c(99L,
100L, 100L, 100L, 100L, 100L),
Divison_boot = c(98L, 100L, 100L,
100L, 100L, 100L),
Class_boot = c(98L, 100L, 100L, 100L, 100L,
100L),
Order_boot = c(87L, 100L, 100L, 100L, 100L, 100L),
Family_boot = c(87L,
99L, 100L, 97L, 100L, 92L),
Genus_boot = c(45L, 73L, 98L, 97L,
100L, 44L),
Species_boot = c(45L, 73L, 98L, 97L, 100L, 44L),
OTUNumber = c(
"otu0013",
"otu0014",
"otu0015",
"otu0017",
"otu0018",
"otu0019"
),
sequence = c(
"GGGCGTAAAGGGCACGCAGGTGGTACGTTAAGTCAGATGTGAAATCCCCGGGCTTAACCCGGGAACGGCATTTGAAACTGGGGTGCTGGAGTCCTGTAGAGGGGGGTGGAATTCCAGGTGTAGCGGTGAAATGCGTAGAGATCTGGAGGAATACCGGTGGCGAAGGCGGCCCCCTGGACAGAGACTGAC",
"GGGCGTAAAGGGAGCGTAGGCGGATGATTAAGTGGGATGTGAAATACTTGGGCTCAACCCGAGCACTGCATTCCAAACTGATCATCTAGAGTGCAGGAGAGGAGAGTGGAATTCCTAGTGTAGCGGTGAAATGCGTAGAGATTAGGAAGAACACCAGTGGCGAAGGCGACTCTCTGGACTGTAACTGAC",
"GGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAGATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAATTCCAGGTGTAGCGGTGAAATGCGTAGAGATCTGGAGGAATACCGGTGGCGAAGGCGGCCCCCTGGACGAAGACTGAC",
"GGGCGTAAAGCGCGCGCAGGTGGTTTCTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGGAAACTTGAGTGCAGAAGAGGATAGTGGAATTCCAAGTGTAGCGGTGAAATGCGTAGAGATTTGGAGGAACACCAGTGGCGAAGGCGACTATCTGGTCTGTAACTGAC",
"GGGCGTAAAGGGAGCGTAGGCGGATTTTTAAGTGGGATGTGAAATACCCGGGCTCAACCTGGGTGCTGCATTCCAAACTGGGAATCTAGAGTACAGGAGGGGAGAGTGGAATTCCTAGTGTAGCGGTGAAATGCGTAGAGATTAGGAAGAACACCAGTGGCGAAGGCGACTCTCTGGACTGTAACTGAC",
"GGGTGTAAAGGGAGCGTAGGCGGGACTATAAGTTGAATGTGAAATCTATCGGCTCAACCGGTAGGCTGCGTTCAAAACTGTAGTTCTTGAGTGAAGTAGAGGCAGGCGGAATTCCTAGTGTAGCGGTGAAATGCGTAGATATTAGGAGGAACACCAGTGGCGAAGGCGGTCTGCTGGGCTTTAACTGAC"
),
V1 = c(39142L, 34324L, 33303L, 21631L, 19944L, 18875L)
),
row.names = c(
"GGGCGTAAAGGGCACGCAGGTGGTACGTTAAGTCAGATGTGAAATCCCCGGGCTTAACCCGGGAACGGCATTTGAAACTGGGGTGCTGGAGTCCTGTAGAGGGGGGTGGAATTCCAGGTGTAGCGGTGAAATGCGTAGAGATCTGGAGGAATACCGGTGGCGAAGGCGGCCCCCTGGACAGAGACTGAC",
"GGGCGTAAAGGGAGCGTAGGCGGATGATTAAGTGGGATGTGAAATACTTGGGCTCAACCCGAGCACTGCATTCCAAACTGATCATCTAGAGTGCAGGAGAGGAGAGTGGAATTCCTAGTGTAGCGGTGAAATGCGTAGAGATTAGGAAGAACACCAGTGGCGAAGGCGACTCTCTGGACTGTAACTGAC",
"GGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAGATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAATTCCAGGTGTAGCGGTGAAATGCGTAGAGATCTGGAGGAATACCGGTGGCGAAGGCGGCCCCCTGGACGAAGACTGAC",
"GGGCGTAAAGCGCGCGCAGGTGGTTTCTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGGAAACTTGAGTGCAGAAGAGGATAGTGGAATTCCAAGTGTAGCGGTGAAATGCGTAGAGATTTGGAGGAACACCAGTGGCGAAGGCGACTATCTGGTCTGTAACTGAC",
"GGGCGTAAAGGGAGCGTAGGCGGATTTTTAAGTGGGATGTGAAATACCCGGGCTCAACCTGGGTGCTGCATTCCAAACTGGGAATCTAGAGTACAGGAGGGGAGAGTGGAATTCCTAGTGTAGCGGTGAAATGCGTAGAGATTAGGAAGAACACCAGTGGCGAAGGCGACTCTCTGGACTGTAACTGAC",
"GGGTGTAAAGGGAGCGTAGGCGGGACTATAAGTTGAATGTGAAATCTATCGGCTCAACCGGTAGGCTGCGTTCAAAACTGTAGTTCTTGAGTGAAGTAGAGGCAGGCGGAATTCCTAGTGTAGCGGTGAAATGCGTAGATATTAGGAGGAACACCAGTGGCGAAGGCGGTCTGCTGGGCTTTAACTGAC"
),
class = "data.frame"
)
Upvotes: 0
Views: 1181
Reputation: 345
The error occurs because column_to_rownames
expects a data.frame
(or tibble
) without row.names
. This means that you need to remove the row.names
from your data.frame
. You can do this in base R, by setting:
row.names(seqchim_18S_struct) <- NULL
If you prefer a tidy solution, you can convert either the data.frame
to a tibble
(which automatically removes row.names
) OR use the remove_rownames
function
seqchim_18S_struct %>%
as_tibble() %>%
...
seqchim_18S_struct %>%
remove_rownames() %>%
...
You can safely remove your row.names
without losing this information, because the information is redundant: the row.names
store the same information as seqchim_18S_struct$sequence
.
Upvotes: 1