0

Hi friends I'm working with Phyloseq package to analyse 16S metagenomic data. I want to make a stacked barplot with abundance in y-axis and samples in x-axis. I have 10 samples with 4 early and 6 late. How can I arrange in the barplot. I mean first four bars of controls and next six are of obese. I have tried reorder function. But found that reorder only works with numeric value not non-numeric "ealy" and "late" values. Here's my code:

    ggplot(mdata_class, aes(x = Sample, y = Abundance, fill = Class)) + 
      #facet_grid(time~.) +
      geom_bar(stat = "identity") +
      scale_fill_manual(values = class_colors) +
      scale_x_discrete(
        breaks = map$sample,
        labels = map$time,
        drop = FALSE
      )  +
      # Remove x axis title, and rotate sample labels
      theme(axis.title.x = element_blank(),
            axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) + 
      
      # additional stuff
      guides(fill = guide_legend(reverse = TRUE, keywidth = 1, keyheight = 1)) +
      ylab("Relative Abundance (Class > 1%) \n") +
      ggtitle("Class Composition of Mothur MiSeq SOP data per individual") 

Here's the output when I print mdata_class

           OTU    Sample  Abundance    sample    type  time bodyweight     Kingdom            Phylum                  Class
    1  Otu00009 DRR046797 0.10213514 DRR046797 control early         20 k__Bacteria p__Actinobacteria      c__Actinobacteria
    2  Otu00009 DRR046803 0.08912090 DRR046803   obese  late         45 k__Bacteria p__Actinobacteria      c__Actinobacteria
    3  Otu00009 DRR046798 0.08548668 DRR046798 control early         40 k__Bacteria p__Actinobacteria      c__Actinobacteria
    4  Otu00009 DRR046801 0.05865369 DRR046801   obese  late         45 k__Bacteria p__Actinobacteria      c__Actinobacteria
    5  Otu00009 DRR046805 0.05629529 DRR046805   obese early         78 k__Bacteria p__Actinobacteria      c__Actinobacteria
    6  Otu00009 DRR046800 0.05349115 DRR046800 control  late         45 k__Bacteria p__Actinobacteria      c__Actinobacteria
    7  Otu00009 DRR046802 0.02630549 DRR046802   obese  late         45 k__Bacteria p__Actinobacteria      c__Actinobacteria
    8  Otu00020 DRR046804 0.14788058 DRR046804   obese  late         45 k__Bacteria     p__Firmicutes             c__Bacilli
    9  Otu00020 DRR046798 0.05880534 DRR046798 control early         40 k__Bacteria     p__Firmicutes             c__Bacilli
    10 Otu00020 DRR046802 0.02007156 DRR046802   obese  late         45 k__Bacteria     p__Firmicutes             c__Bacilli
    11 Otu00020 DRR046803 0.01713152 DRR046803   obese  late         45 k__Bacteria     p__Firmicutes             c__Bacilli
    12 Otu00020 DRR046797 0.01035021 DRR046797 control early         20 k__Bacteria     p__Firmicutes             c__Bacilli
    13 Otu00002 DRR046799 0.39862975 DRR046799 control  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    14 Otu00002 DRR046797 0.36894936 DRR046797 control early         20 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    15 Otu00002 DRR046800 0.35967465 DRR046800 control  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    16 Otu00002 DRR046804 0.34913663 DRR046804   obese  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    17 Otu00002 DRR046805 0.33464421 DRR046805   obese early         78 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    18 Otu00002 DRR046798 0.33061613 DRR046798 control early         40 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    19 Otu00002 DRR046803 0.26273936 DRR046803   obese  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    20 Otu00002 DRR046801 0.26121922 DRR046801   obese  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    21 Otu00002 DRR046806 0.18225234 DRR046806   obese early         32 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    22 Otu00002 DRR046802 0.17431231 DRR046802   obese  late         45 k__Bacteria  p__Bacteroidetes         c__Bacteroidia
    23 Otu00035 DRR046798 0.01992751 DRR046798 control early         40 k__Bacteria p__Proteobacteria  c__Betaproteobacteria
    24 Otu00035 DRR046799 0.01478939 DRR046799 control  late         45 k__Bacteria p__Proteobacteria  c__Betaproteobacteria
    25 Otu00035 DRR046803 0.01371867 DRR046803   obese  late         45 k__Bacteria p__Proteobacteria  c__Betaproteobacteria
    26 Otu00035 DRR046804 0.01245559 DRR046804   obese  late         45 k__Bacteria p__Proteobacteria  c__Betaproteobacteria
    27 Otu00035 DRR046801 0.01083689 DRR046801   obese  late         45 k__Bacteria p__Proteobacteria  c__Betaproteobacteria
    28 Otu00001 DRR046806 0.66847252 DRR046806   obese early         32 k__Bacteria     p__Firmicutes          c__Clostridia
    29 Otu00001 DRR046802 0.66746338 DRR046802   obese  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    30 Otu00001 DRR046801 0.63904709 DRR046801   obese  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    31 Otu00001 DRR046803 0.57818463 DRR046803   obese  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    32 Otu00001 DRR046800 0.56657288 DRR046800 control  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    33 Otu00001 DRR046799 0.56348693 DRR046799 control  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    34 Otu00001 DRR046805 0.54092091 DRR046805   obese early         78 k__Bacteria     p__Firmicutes          c__Clostridia
    35 Otu00001 DRR046797 0.47789350 DRR046797 control early         20 k__Bacteria     p__Firmicutes          c__Clostridia
    36 Otu00001 DRR046798 0.47385673 DRR046798 control early         40 k__Bacteria     p__Firmicutes          c__Clostridia
    37 Otu00001 DRR046804 0.44762754 DRR046804   obese  late         45 k__Bacteria     p__Firmicutes          c__Clostridia
    38 Otu00014 DRR046802 0.06449178 DRR046802   obese  late         45 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    39 Otu00014 DRR046805 0.03359757 DRR046805   obese early         78 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    40 Otu00014 DRR046797 0.03141518 DRR046797 control early         20 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    41 Otu00014 DRR046803 0.03140499 DRR046803   obese  late         45 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    42 Otu00014 DRR046804 0.01792293 DRR046804   obese  late         45 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    43 Otu00014 DRR046806 0.01570523 DRR046806   obese early         32 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    44 Otu00014 DRR046801 0.01404050 DRR046801   obese  late         45 k__Bacteria p__Actinobacteria      c__Coriobacteriia
    45 Otu00058 DRR046802 0.03083417 DRR046802   obese  late         45 k__Bacteria     p__Firmicutes     c__Erysipelotrichi
    46 Otu00058 DRR046805 0.01128693 DRR046805   obese early         78 k__Bacteria     p__Firmicutes     c__Erysipelotrichi
    47 Otu00031 DRR046806 0.09179629 DRR046806   obese early         32 k__Bacteria   p__Fusobacteria       c__Fusobacteriia
    48 Otu00066 DRR046798 0.02033571 DRR046798 control early         40 k__Bacteria p__Proteobacteria c__Gammaproteobacteria

And here's when I print map

Sample Data:        [10 samples by 4 sample variables]:
             sample    type  time bodyweight
DRR046797 DRR046797 control early         20
DRR046798 DRR046798 control early         40
DRR046799 DRR046799 control  late         45
DRR046800 DRR046800 control  late         45
DRR046801 DRR046801   obese  late         45
DRR046802 DRR046802   obese  late         45
DRR046803 DRR046803   obese  late         45
DRR046804 DRR046804   obese  late         45
DRR046805 DRR046805   obese early         78
DRR046806 DRR046806   obese early         32

Here's my image link

Thanks and regards, DC7

CHANDA7
  • 11
  • 3
  • Could you share sample data? Link for reproducible example: https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example My guess is if you can convert "early" and "late" value column to factor column, it might be possible to order them. – monte Jun 23 '20 at 11:37
  • Hi...How can I share the data? It's too long for this comment box. – CHANDA7 Jun 23 '20 at 11:53
  • you can edit your post, I think link might help on how to share a reproducible example: https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – monte Jun 23 '20 at 11:56
  • Hi monte!!! I have edited my post to show the data. Can you please see. I am seeing your link. But not sure how to correlate that with my data. Thanks... – CHANDA7 Jun 23 '20 at 12:03
  • Could you please use `dput(mdata_class)` or `dput(head(mdata_class, 20))` if a smaller subset of data is adequate to illustrate your question. This makes the data reproducible i.e. it can be copied directly from SO into a R session for answering. Have a look at [mre] and [ask] for more information – Peter Jun 23 '20 at 12:08
  • Finally, someone from someother site has helped me solving this by arranging the samples first by time/type and then by sample.Next, for definite ordering, the samples were converted from character to factor followed by plotting the data. – CHANDA7 Jul 03 '20 at 07:07

0 Answers0