Skip to main content

A comprehensive Python library for microbiome data analysis

Project description

Microbiome Analysis

ENGLISH한국어

This library was created out of the personal curiosity of Jaemin Kim of Chungnam National University.

A comprehensive Python library for microbiome data analysis, providing functionalities for data processing, quality control, normalization, diversity analysis, visualization, network analysis, and statistical comparisons.

Features

  • Data Input & Transformation: Support for various file formats (CSV, Excel, FASTQ, FASTA) and integration of metadata with sequence data.
  • Quality Control: Sequence quality assessment, filtering, and consistency checks across samples.
  • Normalization & Filtering: Sample size normalization, rare sequence removal, and background noise filtering.
  • Diversity Analysis: Calculation of various alpha and beta diversity indices.
  • Taxonomic Classification: Sequence classification using pre-trained classifiers.
  • Visualization: Plotting diversity indices, PCA/PCoA/NMDS results, and network visualizations.
  • Network Analysis: Co-occurrence network creation and centrality analysis.
  • Statistical Analysis: ANOVA, PERMANOVA, differential abundance analysis, and correlation analysis.
  • Interactive Dashboard: Streamlit-based dashboard for data visualization and exploration.

Installation

To install the library, use the following command:

pip install microbiome_analysis

Usage

Below are examples of how to use various features of the library.

Data Input & Transformation

from microbiome_analysis import preprocessing

# Read sequences from a FASTQ file
sequences = preprocessing.read_fastq("example.fastq")

# Read metadata from a CSV file
metadata_df = preprocessing.read_csv("metadata.csv")

# Merge metadata with sequence data
merged_data = preprocessing.merge_metadata_sequence(metadata_df, sequences)

Quality Control

from microbiome_analysis import qc

# Perform quality control on sequences
qualities = qc.quality_control(sequences)

# Plot quality score distribution
qc.plot_quality_distribution(sequences)

# Check consistency across samples
samples = [sequences, sequences]  # Example list of sample sequences
consistency = qc.check_consistency(samples)
print(f"Consistency across samples: {consistency}")

Normalization & Filtering

from microbiome_analysis import normalization

# Normalize sample sizes
normalized_data = normalization.normalize_sample_size(data)

# Remove rare sequences
filtered_data = normalization.remove_rare_sequences(data, threshold=10)

# Filter background noise
cleaned_data = normalization.filter_background_noise(data, noise_threshold=0.01)

Diversity Analysis

from microbiome_analysis import diversity

# Calculate alpha diversity indices
alpha_diversity = diversity.calculate_alpha_diversity(data)
print(alpha_diversity)

Beta Diversity Analysis

from microbiome_analysis import beta_diversity

# Perform PCA analysis
pca_coords = beta_diversity.pca_analysis(data)

# Perform PCoA analysis
pcoa_coords = beta_diversity.pcoa_analysis(data)

# Perform NMDS analysis
nmds_coords = beta_diversity.nmds_analysis(data)

Taxonomic Classification

from microbiome_analysis import classification

# Train the classifier
sequences = [
    'ATCGGCTAAG',
    'GCTTAGCTAG',
    'TTCGCTGATC',
    'GCTAGCTAGT'
]
labels = [
    'species_1',
    'species_2',
    'species_1',
    'species_2'
]
trained_classifier = classification.train_classifier(sequences, labels)

# Classify new samples
new_samples = [
    'ATCGGCTAAG',
    'GCTAGCTAGT'
]
predicted_labels = classification.classify_new_samples(new_samples, trained_classifier)
print(predicted_labels)

Visualization

from microbiome_analysis import visualization

# Plot alpha diversity indices
visualization.plot_alpha_diversity(alpha_diversity)

# Plot PCA results
visualization.plot_pca(pca_coords, labels)

# Plot beta diversity results
visualization.plot_beta_diversity(pcoa_coords, method='PCoA')

Network Analysis

from microbiome_analysis import network

# Create co-occurrence network
cooccurrence_network = network.create_cooccurrence_network(data)

# Plot network
network.plot_network(cooccurrence_network)

# Analyze network centrality
centrality = network.analyze_network_centrality(cooccurrence_network)
print(centrality)

Statistical Analysis

from microbiome_analysis import statistics

# Perform ANOVA analysis
anova_result = statistics.anova_analysis(groups)
print(anova_result)

# Perform PERMANOVA analysis
permanova_result = statistics.perm_anova(data, groups)
print(permanova_result)

# Perform correlation analysis
correlation_result = statistics.correlation_analysis(data1, data2, method='spearman')
print(correlation_result)

Interactive Dashboard

from microbiome_analysis import dashboard

# Create an interactive dashboard
data = pd.DataFrame({
    'feature1': [10, 20, 30],
    'feature2': [20, 30, 40]
})
diversity_df = pd.DataFrame({
    'shannon': [1.0, 2.0, 3.0],
    'simpson': [0.5, 0.3, 0.2]
})
pca_coords = pd.DataFrame({
    'PC1': [1.0, 2.0, 3.0],
    'PC2': [0.5, 0.3, 0.2]
})
labels = ['label1', 'label2', 'label3']
dashboard.create_dashboard(data, diversity_df, pca_coords, labels)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue for any bugs or feature requests.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microbiome_analysis-0.1.2.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

microbiome_analysis-0.1.2-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file microbiome_analysis-0.1.2.tar.gz.

File metadata

  • Download URL: microbiome_analysis-0.1.2.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.8

File hashes

Hashes for microbiome_analysis-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5a2e4f6387502b60b28dc563ccbd61b9a5fe5bfb317edde626176cc4062f4225
MD5 006e2cb317c144b3bd98eabc61d0a87f
BLAKE2b-256 32972ad79addc8d6cdd1fcc229b70681c03a6ac29be276822fdf2da5c90d24fa

See more details on using hashes here.

File details

Details for the file microbiome_analysis-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for microbiome_analysis-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c77257ca4cdec559588127eac9333e30e430f7688a1b7140421a21a947be865
MD5 ca59b1c5c142640090f72bcbc4e6a9f3
BLAKE2b-256 ec793af778214218aa4fda873244ae67c012dc8e74410ff268493f74956a1133

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page