Skip to contents

Computes alpha-diversity indices (via vegan::diversity()) and/or Hill numbers / Rényi entropy (via vegan::renyi()) for each sample in a phyloseq object. When modality is supplied the computation is done separately for each level of that grouping variable and the level label is appended as an extra column. NA values in the modality column are kept as a distinct group so that samples with missing metadata are never silently dropped. When modality = NULL all samples are analysed together and no grouping column is added to the result.

Usage

div_pq(
  physeq,
  modality = NULL,
  indices = "shannon",
  scales = NULL,
  hill = TRUE,
  aggregate = FALSE,
  funs = list(mean = mean, sd = sd)
)

Arguments

physeq

(phyloseq, required) A phyloseq object.

modality

(character or NULL, default NULL) Name of a column in sample_data(physeq) used to split samples into groups. NA values are treated as a separate group. When NULL, indices are computed for the whole dataset without grouping.

indices

(character, default "shannon") One or more index names accepted by vegan::diversity() (e.g. "shannon", "simpson", "invsimpson"). Set to NULL to skip classical diversity indices.

scales

(numeric or NULL, default NULL) Scale values passed to vegan::renyi(). When NULL, Hill / Rényi computation is skipped.

hill

(logical, default TRUE) If TRUE, return Hill numbers; if FALSE, return Rényi entropy. Passed to vegan::renyi(). Only relevant when scales is not NULL.

aggregate

(logical, default FALSE) If TRUE and modality is not NULL, summarise per-group results using funs.

funs

(named list, default list(mean = mean, sd = sd)) Summary functions applied when aggregate = TRUE. Passed to dplyr::across().

Value

A data frame with one row per sample. Columns correspond to the requested indices and/or Hill / Rényi scales. When modality is supplied, an additional column named after modality identifies the group (possibly NA). When aggregate = TRUE rows are collapsed to one per group with summary statistics.

Details

lifecycle-experimental

Author

Adrien Taudière

Examples

div_pq(data_fungi_mini, indices = c("shannon", "simpson"))
#>          shannon      simpson
#> 1   1.3293751331 0.6988879117
#> 2   0.0117775615 0.0027420613
#> 3   1.4235388425 0.7271461854
#> 4   0.5056841131 0.1846099855
#> 5   0.6867609795 0.4936274051
#> 6   0.8037421073 0.4567474048
#> 7   0.8995904369 0.4829639919
#> 8   0.7726198358 0.4586784056
#> 9   0.0474342125 0.0144603807
#> 10  0.1840826879 0.0720164609
#> 11  0.4258484492 0.2037037037
#> 12  0.0587202018 0.0209664025
#> 13  1.0385673327 0.6275608202
#> 14  0.0350618434 0.0100951881
#> 15  0.6474978705 0.3759639173
#> 16  0.7078254119 0.4594495586
#> 17  0.8932599598 0.4630126953
#> 18  0.6625917916 0.4496318985
#> 19  0.8358825741 0.4296820949
#> 20  0.2340816385 0.0861397935
#> 21  0.4968117772 0.3168966089
#> 22  1.3734688186 0.7423843370
#> 23  0.9387392268 0.5594631548
#> 24  0.7255636051 0.5019388053
#> 25  0.8075164154 0.4680710317
#> 26  1.0414298289 0.5269373207
#> 27  0.0000000000 0.0000000000
#> 28  0.0000000000 0.0000000000
#> 29  0.8871458958 0.5524917009
#> 30  0.7373407049 0.4469669118
#> 31  0.0000000000 0.0000000000
#> 32  0.7948020305 0.5235440789
#> 33  0.3372396696 0.1342704829
#> 34  0.0000000000 0.0000000000
#> 35  0.1386614620 0.0585305955
#> 36  1.3439085459 0.7016444491
#> 37  0.3184468659 0.1713595680
#> 38  0.0000000000 0.0000000000
#> 39  1.8845226070 0.8380146920
#> 40  0.0000000000 0.0000000000
#> 41  0.0030915144 0.0006060606
#> 42  0.0022616077 0.0004479032
#> 43  0.4879569147 0.2903099174
#> 44  0.1228294281 0.0511083601
#> 45  0.0000000000 0.0000000000
#> 46  0.8429417591 0.5282108340
#> 47  0.1260232873 0.0535308476
#> 48  0.0000000000 0.0000000000
#> 49  0.9042114434 0.5493482066
#> 50  1.1008332370 0.6085217913
#> 51  0.5825842452 0.3024574669
#> 52  0.9288940175 0.4638264974
#> 53  1.0490396848 0.5870138743
#> 54  0.2601558945 0.1157049375
#> 55  0.8338038603 0.3931012860
#> 56  0.2612258902 0.1130524057
#> 57  0.0000000000 0.0000000000
#> 58  0.0000000000 0.0000000000
#> 59  0.0000000000 0.0000000000
#> 60  1.3176419921 0.6195272495
#> 61  1.3685087417 0.7097658713
#> 62  0.4153797972 0.1759590575
#> 63  0.3523451816 0.1374066043
#> 64  0.8440593193 0.4710207612
#> 65  0.3861256278 0.1999376578
#> 66  0.0050221739 0.0010583633
#> 67  0.0000000000 0.0000000000
#> 68  0.0000000000 0.0000000000
#> 69  1.0413632022 0.5838543327
#> 70  0.3867347412 0.1814686659
#> 71  0.0057975973 0.0014025239
#> 72  0.0000000000 0.0000000000
#> 73  0.6320818147 0.4256482899
#> 74  1.2763084743 0.6460440214
#> 75  0.4880695250 0.2607798388
#> 76  0.0049895382 0.0010825926
#> 77  0.6829081047 0.4897959184
#> 78  0.0000000000 0.0000000000
#> 79  0.0113693794 0.0025985255
#> 80  0.0177993412 0.0048962812
#> 81  0.0732077753 0.0257923577
#> 82  0.1138631038 0.0412770173
#> 83  0.0000000000 0.0000000000
#> 84  0.2033228917 0.0933136221
#> 85  0.0055889146 0.0012497556
#> 86  0.0000000000 0.0000000000
#> 87  0.3607758756 0.1757277883
#> 88  0.0000000000 0.0000000000
#> 89  0.0000000000 0.0000000000
#> 90  1.2280735036 0.6564625850
#> 91  0.7870789054 0.5043214438
#> 92  0.0000000000 0.0000000000
#> 93  1.1113437660 0.5778252551
#> 94  1.0779007904 0.5989096763
#> 95  0.6844825518 0.3165306751
#> 96  1.1205052176 0.6258225001
#> 97  0.5263331625 0.3233392122
#> 98  1.0974779792 0.6168142012
#> 99  1.0742286090 0.6105445187
#> 100 0.6365141683 0.4444444444
#> 101 0.0728365875 0.0224906289
#> 102 0.0049292549 0.0010261198
#> 103 0.0333397680 0.0097594954
#> 104 0.0348775115 0.0112355964
#> 105 0.4049634851 0.2408000000
#> 106 0.8662483544 0.5021626298
#> 107 0.0000000000 0.0000000000
#> 108 1.0339385145 0.5834400079
#> 109 1.0040588062 0.5623021845
#> 110 0.0000000000 0.0000000000
#> 111 0.3144922013 0.1723356009
#> 112 0.0000000000 0.0000000000
#> 113 0.7716977180 0.4397039429
#> 114 0.7667980847 0.5146198830
#> 115 0.7437545484 0.4987745152
#> 116 0.6931471806 0.5000000000
#> 117 0.0000000000 0.0000000000
#> 118 1.2848846975 0.6180707737
#> 119 0.3553435491 0.2006874057
#> 120 0.6057974994 0.4152249135
#> 121 1.1022297190 0.6005813823
#> 122 0.3953244118 0.1819505448
#> 123 0.0000000000 0.0000000000
#> 124 1.2746401338 0.6686895349
#> 125 0.6931471806 0.5000000000
#> 126 1.3837460904 0.7487273772
#> 127 1.5053412718 0.7643960254
#> 128 1.3363281925 0.7192560226
#> 129 0.0009560406 0.0001859254
#> 130 0.0000000000 0.0000000000
#> 131 1.5408651011 0.7723183391
#> 132 0.7119604425 0.4902000262
#> 133 0.9331492458 0.5307343529
#> 134 0.3488320958 0.1975308642
#> 135 0.7647602691 0.3615586586
#> 136 0.6365141683 0.4444444444
#> 137 0.2925991562 0.1162622128

div_pq(
  data_fungi_mini,
  modality = "Height",
  indices = c("shannon", "simpson"),
  scales = c(0, 1, 2),
  hill = TRUE
)
#>          shannon      simpson hill_0   hill_1   hill_2 Height
#> 1   1.3293751331 0.6988879117      6 3.778681 3.321022    Low
#> 2   0.6867609795 0.4936274051      2 1.987268 1.974830    Low
#> 3   0.4258484492 0.2037037037      3 1.530889 1.255814    Low
#> 4   0.7078254119 0.4594495586      7 2.029573 1.849966    Low
#> 5   0.4968117772 0.3168966089      2 1.643473 1.463907    Low
#> 6   0.9387392268 0.5594631548      7 2.556756 2.269958    Low
#> 7   0.1386614620 0.0585305955      4 1.148735 1.062169    Low
#> 8   0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 9   0.0030915144 0.0006060606      4 1.003096 1.000606    Low
#> 10  0.9042114434 0.5493482066      7 2.469983 2.219008    Low
#> 11  0.2601558945 0.1157049375      3 1.297132 1.130844    Low
#> 12  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 13  0.3523451816 0.1374066043      6 1.422399 1.159295    Low
#> 14  0.0050221739 0.0010583633      4 1.005035 1.001059    Low
#> 15  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 16  0.4880695250 0.2607798388      7 1.629168 1.352777    Low
#> 17  0.6829081047 0.4897959184      2 1.979626 1.960000    Low
#> 18  0.0732077753 0.0257923577      5 1.075954 1.026475    Low
#> 19  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 20  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 21  0.6844825518 0.3165306751      6 1.982746 1.463123    Low
#> 22  0.6365141683 0.4444444444      2 1.889882 1.800000    Low
#> 23  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 24  0.3144922013 0.1723356009      2 1.369564 1.208219    Low
#> 25  0.7716977180 0.4397039429      6 2.163436 1.784771    Low
#> 26  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 27  0.6057974994 0.4152249135      2 1.832713 1.710059    Low
#> 28  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 29  1.3837460904 0.7487273772      4 3.989820 3.979741    Low
#> 30  0.0000000000 0.0000000000      1 1.000000 1.000000    Low
#> 31  0.3488320958 0.1975308642      2 1.417411 1.246154    Low
#> 32  0.7647602691 0.3615586586      7 2.148479 1.566315    Low
#> 33  0.0117775615 0.0027420613      5 1.011847 1.002750   High
#> 34  0.7726198358 0.4586784056      6 2.165432 1.847331   High
#> 35  0.0587202018 0.0209664025      2 1.060478 1.021415   High
#> 36  0.8932599598 0.4630126953      8 2.443081 1.862241   High
#> 37  0.7255636051 0.5019388053      3 2.065895 2.007785   High
#> 38  0.0000000000 0.0000000000      1 1.000000 1.000000   High
#> 39  0.0000000000 0.0000000000      1 1.000000 1.000000   High
#> 40  1.3439085459 0.7016444491      7 3.834000 3.351706   High
#> 41  0.0022616077 0.0004479032      3 1.002264 1.000448   High
#> 42  1.1008332370 0.6085217913      6 3.006670 2.554421   High
#> 43  0.0000000000 0.0000000000      1 1.000000 1.000000   High
#> 44  0.0000000000 0.0000000000      1 1.000000 1.000000   High
#> 45  0.3867347412 0.1814686659      3 1.472166 1.221700   High
#> 46  0.6320818147 0.4256482899      5 1.881523 1.741093   High
#> 47  0.0000000000 0.0000000000      1 1.000000 1.000000   High
#> 48  0.2033228917 0.0933136221      4 1.225468 1.102917   High
#> 49  0.3607758756 0.1757277883      3 1.434442 1.213191   High
#> 50  1.2280735036 0.6564625850      5 3.414645 2.910891   High
#> 51  1.1113437660 0.5778252551      5 3.038439 2.368687   High
#> 52  1.1205052176 0.6258225001      7 3.066403 2.672528   High
#> 53  1.0974779792 0.6168142012      5 2.996599 2.609700   High
#> 54  0.0728365875 0.0224906289      4 1.075555 1.023008   High
#> 55  0.0348775115 0.0112355964      2 1.035493 1.011363   High
#> 56  1.0339385145 0.5834400079      7 2.812120 2.400615   High
#> 57  1.5053412718 0.7643960254      7 4.505691 4.244411   High
#> 58  1.5408651011 0.7723183391      7 4.668627 4.392097   High
#> 59  0.9331492458 0.5307343529      5 2.542504 2.130989   High
#> 60  0.6365141683 0.4444444444      2 1.889882 1.800000   High
#> 61  1.4235388425 0.7271461854      7 4.151787 3.664966 Middle
#> 62  1.0385673327 0.6275608202      5 2.825167 2.685002 Middle
#> 63  0.0350618434 0.0100951881      3 1.035684 1.010198 Middle
#> 64  0.6474978705 0.3759639173      5 1.910754 1.602471 Middle
#> 65  0.6625917916 0.4496318985      3 1.939813 1.816966 Middle
#> 66  0.8075164154 0.4680710317      5 2.242332 1.879950 Middle
#> 67  0.8871458958 0.5524917009      9 2.428189 2.234595 Middle
#> 68  0.3184468659 0.1713595680      5 1.374991 1.206796 Middle
#> 69  0.4879569147 0.2903099174      4 1.628985 1.409066 Middle
#> 70  0.1260232873 0.0535308476      2 1.134309 1.056558 Middle
#> 71  0.5825842452 0.3024574669      3 1.790660 1.433604 Middle
#> 72  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 73  0.8440593193 0.4710207612      5 2.325789 1.890433 Middle
#> 74  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 75  1.2763084743 0.6460440214      5 3.583387 2.825210 Middle
#> 76  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 77  0.0055889146 0.0012497556      3 1.005605 1.001251 Middle
#> 78  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 79  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 80  1.0779007904 0.5989096763      6 2.938505 2.493204 Middle
#> 81  0.5263331625 0.3233392122      3 1.692714 1.477845 Middle
#> 82  1.0742286090 0.6105445187      5 2.927734 2.567688 Middle
#> 83  0.0000000000 0.0000000000      1 1.000000 1.000000 Middle
#> 84  1.0040588062 0.5623021845      5 2.729337 2.284681 Middle
#> 85  0.7667980847 0.5146198830      3 2.152862 2.060241 Middle
#> 86  0.7437545484 0.4987745152      3 2.103820 1.995110 Middle
#> 87  0.6931471806 0.5000000000      2 2.000000 2.000000 Middle
#> 88  1.3363281925 0.7192560226      6 3.805046 3.561964 Middle
#> 89  0.7119604425 0.4902000262      5 2.037983 1.961554 Middle
#> 90  0.2925991562 0.1162622128      4 1.339906 1.131557 Middle
#> 91  0.5056841131 0.1846099855     10 1.658119 1.226407   <NA>
#> 92  0.8037421073 0.4567474048      3 2.233885 1.840764   <NA>
#> 93  0.8995904369 0.4829639919      6 2.458596 1.934101   <NA>
#> 94  0.0474342125 0.0144603807      5 1.048577 1.014673   <NA>
#> 95  0.1840826879 0.0720164609      3 1.202115 1.077605   <NA>
#> 96  0.8358825741 0.4296820949      5 2.306849 1.753408   <NA>
#> 97  0.2340816385 0.0861397935      7 1.263748 1.094259   <NA>
#> 98  1.3734688186 0.7423843370      6 3.949025 3.881752   <NA>
#> 99  1.0414298289 0.5269373207      7 2.833265 2.113885   <NA>
#> 100 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 101 0.7373407049 0.4469669118      4 2.090369 1.808210   <NA>
#> 102 0.7948020305 0.5235440789      6 2.214003 2.098830   <NA>
#> 103 0.3372396696 0.1342704829      6 1.401075 1.155095   <NA>
#> 104 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 105 1.8845226070 0.8380146920      8 6.583211 6.173399   <NA>
#> 106 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 107 0.1228294281 0.0511083601      3 1.130692 1.053861   <NA>
#> 108 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 109 0.8429417591 0.5282108340      7 2.323191 2.119591   <NA>
#> 110 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 111 0.9288940175 0.4638264974      7 2.531708 1.865068   <NA>
#> 112 1.0490396848 0.5870138743      7 2.854908 2.421389   <NA>
#> 113 0.8338038603 0.3931012860      7 2.302059 1.647721   <NA>
#> 114 0.2612258902 0.1130524057      4 1.298521 1.127462   <NA>
#> 115 1.3176419921 0.6195272495     10 3.734605 2.628309   <NA>
#> 116 1.3685087417 0.7097658713      6 3.929486 3.445494   <NA>
#> 117 0.4153797972 0.1759590575      7 1.514946 1.213532   <NA>
#> 118 0.3861256278 0.1999376578      5 1.471269 1.249903   <NA>
#> 119 1.0413632022 0.5838543327      7 2.833076 2.403005   <NA>
#> 120 0.0057975973 0.0014025239      2 1.005814 1.001404   <NA>
#> 121 0.0049895382 0.0010825926      3 1.005002 1.001084   <NA>
#> 122 0.0113693794 0.0025985255      4 1.011434 1.002605   <NA>
#> 123 0.0177993412 0.0048962812      3 1.017959 1.004920   <NA>
#> 124 0.1138631038 0.0412770173      4 1.120599 1.043054   <NA>
#> 125 0.7870789054 0.5043214438      7 2.196969 2.017436   <NA>
#> 126 0.0049292549 0.0010261198      4 1.004941 1.001027   <NA>
#> 127 0.0333397680 0.0097594954      4 1.033902 1.009856   <NA>
#> 128 0.4049634851 0.2408000000      2 1.499248 1.317176   <NA>
#> 129 0.8662483544 0.5021626298      3 2.377973 2.008688   <NA>
#> 130 0.0000000000 0.0000000000      1 1.000000 1.000000   <NA>
#> 131 0.6931471806 0.5000000000      2 2.000000 2.000000   <NA>
#> 132 1.2848846975 0.6180707737      7 3.614251 2.618286   <NA>
#> 133 0.3553435491 0.2006874057      4 1.426671 1.251075   <NA>
#> 134 1.1022297190 0.6005813823      7 3.010872 2.503639   <NA>
#> 135 0.3953244118 0.1819505448      4 1.484866 1.222420   <NA>
#> 136 1.2746401338 0.6686895349      9 3.577414 3.018317   <NA>
#> 137 0.0009560406 0.0001859254      2 1.000956 1.000186   <NA>

div_pq(
  data_fungi_mini,
  modality = "Height",
  indices = "shannon",
  aggregate = TRUE
)
#> # A tibble: 4 × 4
#>   Height n_samples `shannon_(mean)` `shannon_(sd)`
#>   <chr>      <int>            <dbl>          <dbl>
#> 1 High          28            0.600          0.536
#> 2 Low           32            0.406          0.404
#> 3 Middle        30            0.579          0.454
#> 4 NA            47            0.545          0.503