Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ dev: all
pip install -e .

clean: distclean
rm -rf q2_composition/_ancombc2_visualizer/node_modules
rm -rf q2_composition/_da_barplot/node_modules

distclean:
rm -rf q2_composition/_ancombc2_visualizer/dist/
rm -rf q2_composition/_da_barplot/dist/

q2_composition/_ancombc2_visualizer/dist:
cd q2_composition/_ancombc2_visualizer/ && \
q2_composition/_da_barplot/dist:
cd q2_composition/_da_barplot/ && \
npm install && \
npm run build

ancombc2-visualizer: q2_composition/_ancombc2_visualizer/dist
ancombc2-visualizer: q2_composition/_da_barplot/dist
6 changes: 2 additions & 4 deletions q2_composition/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
from ._impute import add_pseudocount
from ._ancom import ancom
from ._ancombc import ancombc
from ._ancombc2 import ancombc2, ancombc2_visualizer
from ._ancombc2 import ancombc2, da_barplot
from ._dataloaf_tabulate import tabulate
from ._diff_abundance_plots import da_barplot

try:
from ._version import __version__
Expand All @@ -27,6 +26,5 @@
__all__ = [
'FrictionlessCSVFileFormat', 'DataPackageSchemaFileFormat',
'DataLoafPackageDirFmt', 'DifferentialAbundance', 'add_pseudocount',
'ancom', 'ancombc', 'ancombc2', 'ancombc2_visualizer', 'tabulate',
'da_barplot'
'ancom', 'ancombc', 'ancombc2', 'tabulate', 'da_barplot'
]
23 changes: 13 additions & 10 deletions q2_composition/_ancombc2.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def ancombc2(
alpha: float = 0.05,
diff_robust: bool = False,
num_processes: int = 1,
) -> ANCOMBC2OutputDirFmt:
) -> ANCOMBC2SliceMapping:
'''
Wraps the `ancombc2` R function from the ANCOMBC package.

Expand All @@ -61,10 +61,8 @@ def ancombc2(

Returns
-------
ANCOMBC2OutputDirFmt
A directory format containing the ANCOMBC2 model's per-feature
statistics and per-feature structural zero designations if
`structural_zeros` is set.
ANCOMBC2SliceMapping
A dictionary mapping the name of the slice to the slice's columns.
'''
if structural_zeros and group is None:
msg = (
Expand Down Expand Up @@ -111,6 +109,8 @@ def ancombc2(
model_statistics_df = ro.conversion.get_conversion().rpy2py(
model_statistics
)
model_statistics_df['taxon'] = \
model_statistics_df['taxon'].astype('string')

slices = _split_into_slices(model_statistics_df, diff_robust)

Expand All @@ -130,7 +130,7 @@ def ancombc2(
# split categorical variables from levels and annotate references
slices = _process_categorical_variables(slices, metadata, table)

return transform(data=slices, to_type=ANCOMBC2OutputDirFmt)
return slices


def _process_formula(formula: str, metadata: qiime2.Metadata) -> str:
Expand Down Expand Up @@ -851,7 +851,7 @@ def _rename(column: str) -> str:
return structural_zeros_df.rename(lambda c: _rename(c), axis='columns')


def ancombc2_visualizer(
def da_barplot(
output_dir: str,
data: ANCOMBC2OutputDirFmt,
taxonomy: pd.DataFrame = None
Expand All @@ -865,7 +865,7 @@ def ancombc2_visualizer(
----------
output_dir : str
The path to the data/ directory in the to-be-created visualization.
data : ANCOMBC2SliceMapping
data : ANCOMBC2OutputDirFmt
The ancombc2 slice data to visualize
taxonomy : pd.DataFrame | None
The taxonomy associated with the features present in `slices`.
Expand All @@ -877,14 +877,17 @@ def ancombc2_visualizer(

dist_dir = (
importlib.resources.files('q2_composition') /
'_ancombc2_visualizer' / 'dist'
'_da_barplot' / 'dist'
)
shutil.copytree(Path(str(dist_dir)), output_dir, dirs_exist_ok=True)

if taxonomy is not None:
# subset taxonomy to only features present in the ancombc2 slices
slice_map = transform(data=data, to_type=ANCOMBC2SliceMapping)
slice_feature_ids = slice_map['lfc']['taxon'].unique()
try:
slice_feature_ids = slice_map['lfc']['taxon'].unique()
except KeyError:
slice_feature_ids = slice_map['lfc']['id'].unique()
taxonomy = taxonomy[taxonomy.index.isin(slice_feature_ids)]

if len(taxonomy) == 0:
Expand Down
242 changes: 0 additions & 242 deletions q2_composition/_diff_abundance_plots.py

This file was deleted.

Loading
Loading