Skip to main content

A Python package for processing, analyzing and visualizing MAF files.

Project description

mafViper

A Python package for processing, analyzing and visualizing Mutation Annotation Format (MAF) files in genomic research.

Installation

pip install mafviper

Modules and Functions

1. MAF File Reading (read_maf)

from mafviper import read_maf

maf_dataframe = read_maf(
    maf_file='path/to/your/file.maf', 
    skip_rows_until='Hugo_Symbol', 
    sep='\t', 
    use_all=True
)

Parameters:

  • maf_file (str): Path to the MAF file
  • skip_rows_until (str, optional): Column name to start reading from. Default is 'Hugo_Symbol'
  • sep (str, optional): Delimiter used in the MAF file. Default is tab ('\t')
  • use_all (bool, optional):
    • If True (default): Includes all mutation types
    • If False: Only keeps variants with 'Mutation_Status' as 'Somatic'

Returns:

  • Pandas DataFrame containing validated MAF data

2. MAF Processing (classify_variants, merge_mafs, get_titv)

from mafviper import classify_variants, merge_mafs, get_titv

# Classify variants
non_synonymous_maf = classify_variants(
    maf, 
    discard_synonymous=True
)

# Merge multiple MAF files
merged_maf = merge_mafs(
    maf_list=[maf1, maf2, maf3], 
    discard_synonymous=False
)

# Generate Ti/Tv classification
titv_summary = get_titv(maf_df)

classify_variants

  • maf: Input MAF DataFrame
  • discard_synonymous (bool, optional):
    • If True: Removes synonymous mutations
    • If False: Keeps all mutation types

merge_mafs

  • maf_list: List of MAF DataFrames to merge
  • discard_synonymous (bool, optional):
    • If True: Removes synonymous mutations after merging
    • If False: Keeps all mutation types

get_titv

  • maf_df: MAF DataFrame with SNP variants
  • Returns a summary DataFrame of Transition/Transversion (Ti/Tv) classifications

3. Visualization (get_maf_summary)

from mafviper import get_maf_summary

get_maf_summary(
    maf_df,
    output_pdf='MAF_Summary_Dashboard.pdf',
    add_stat=None,
    show_barcodes=False,
    top_genes=10,
    raw_count=True,
    nonsyn_titv=False,
    use_nonsyn=True
)

Parameters:

  • maf_df: Input MAF DataFrame
  • output_pdf (str, optional): Output PDF filename. Default is 'MAF_Summary_Dashboard.pdf'
  • add_stat (str, optional): Default is median
    • 'mean': Add mean mutation count line
    • 'median': Add median mutation count line
  • show_barcodes (bool, optional): Display sample barcodes
  • top_genes (int, optional): Number of top mutated genes to display. Default is 10
  • raw_count (bool, optional):
    • If True: Display raw mutation counts
    • If False: Display mutation proportions
  • nonsyn_titv (bool, optional):
    • If True: Calculate Ti/Tv using non-synonymous mutations
    • If False: Calculate Ti/Tv using all mutations
  • use_nonsyn (bool, optional):
    • If True: Use only non-synonymous mutations for summary
    • If False: Use all mutations for summary

Example Workflow

from mafviper import read_maf, merge_mafs, get_maf_summary

# Read MAF files
maf1 = read_maf('sample1.maf')
maf2 = read_maf('sample2.maf')

# Merge MAF files
merged_maf = merge_mafs([maf1, maf2])

# Generate visualization
get_maf_summary(
    merged_maf, 
    output_pdf='my_maf_summary.pdf', 
    top_genes=15, 
    add_stat='mean'
)

Requirements

  • pandas
  • seaborn
  • matplotlib

License

Apache 2.0

Author

Joseph Rosen

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

mafViper-0.2.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

mafViper-0.2-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file mafViper-0.2.tar.gz.

File metadata

  • Download URL: mafViper-0.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.6

File hashes

Hashes for mafViper-0.2.tar.gz
Algorithm Hash digest
SHA256 0729c763840c45e0383e21bdca96159e817e21ba5976127fdde9b0d7f85ade9c
MD5 34cbfb85f11d092e54cfbdf8a4084d40
BLAKE2b-256 55a64245eab11484598c9a224634f545b9d3230b168cccb96859453c797897c7

See more details on using hashes here.

File details

Details for the file mafViper-0.2-py3-none-any.whl.

File metadata

  • Download URL: mafViper-0.2-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.6

File hashes

Hashes for mafViper-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 02695efd5990aea03550c0cfdf474f93e268976d91d393b22a1ef4d7c37d11a8
MD5 42826eed934e75a88c85a6886b22df2b
BLAKE2b-256 0b88ca8cc960eb7c801523653fc1ee72d0c7ef3222aa2f75a6227249071c268c

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