From b9cc0b87916767bbeeee727ab47c9c63ca819103 Mon Sep 17 00:00:00 2001
From: Jonas Fuchs <78491186+jonas-fuchs@users.noreply.github.com>
Date: Sun, 8 Oct 2023 23:33:40 +0200
Subject: [PATCH] Version 0.1 (#1)
* added buttons to command.py
* moved font and size to config
* white and dark theme buttons
* switched to toggle button
* some visual tweaks
* better gif
* added checks if ref id was found in data
* small fixes
* added file dump and show additional stats
* visual fixes and vcf annotation
---
README.md | 21 ++-
bamdash/__init__.py | 2 +-
bamdash/__pycache__/__init__.cpython-39.pyc | Bin 266 -> 266 bytes
bamdash/command.py | 175 +++++++++++++++-----
bamdash/scripts/config.py | 10 +-
bamdash/scripts/data.py | 133 ++++++++++++++-
bamdash/scripts/plotting.py | 55 +++---
example.gif | Bin 0 -> 6564917 bytes
example.png | Bin 111076 -> 0 bytes
setup.py | 2 +-
10 files changed, 306 insertions(+), 92 deletions(-)
create mode 100644 example.gif
delete mode 100644 example.png
diff --git a/README.md b/README.md
index 913af12..290b684 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,10 @@
+
+[![language](https://img.shields.io/badge/python-%3E3.9-green)](https://www.python.org/)
+[![License: GPL v3](https://img.shields.io/github/license/jonas-fuchs/varvamp)](https://www.gnu.org/licenses/gpl-3.0)
+![Static Badge](https://img.shields.io/badge/platform-linux_osx-blue)
+
## Overview
**BAMdash lets you create interactive coverage plots from your bam file with [`plotly`](https://plotly.com/)**
@@ -8,15 +13,19 @@
- **create** a interactive `html` for data exploration
- **create** a static image (`jpg`, `png`, `pdf`, `svg`) ready for publication
- **add** additional tracks (supported: `.vcf`, `.gb`, `.bed`)
+- **annotate** tracks with coverage data and vcf with additional information if a `.gb` file is provided
+- **export** annoated track data as tabular files (`.bed`, `.vcf`) or json (`.gb`)
- **developed** for viral genomics
- **customize** all plotting parameters
+**Feel free to report any bugs or request new features as issues!**
+
## Example
-
+
## Installation
-### via pip (recommened, coming soon):
+### via pip (recommened):
```shell
pip install bamdash
```
@@ -52,7 +61,7 @@ full usage:
-h, --help show this help message and exit
-b , --bam bam file location
- -r , --reference reference id
+ -r , --reference seq reference id
-t [track_1 ...], --tracks [track_1 ...]
file location of tracks
-c 5, --coverage 5 minimum coverage
@@ -62,6 +71,7 @@ full usage:
export as png, jpg, pdf, svg
-d px px, --dimensions px px
width and height of the static image in px
+ --dump, --no-dump dump annotated track data (default: False)
-v, --version show program's version number and exit
```
@@ -96,7 +106,7 @@ average_line_width = 1
# track customize
track_color_scheme = "agsunset" # for mutiple annotations tracks (genebank)
-track_color_single = "rgb(145, 145, 145)" # for single tracks (any rgb value, but no name colors)
+track_color_single = "rgb(145, 145, 145)" # for single tracks (any rgb value, but no named colors)
strand_types = ["triangle-right", "triangle-left", "diamond-wide"] # +, -, undefined strand
strand_marker_size = 8
strand_marker_line_width = 1
@@ -121,6 +131,9 @@ To apply these new settings just repeat the installation procedure in the BAMdas
pip install .
```
+
+
+
---
**Important disclaimer:**
diff --git a/bamdash/__init__.py b/bamdash/__init__.py
index e3121ea..08276cd 100644
--- a/bamdash/__init__.py
+++ b/bamdash/__init__.py
@@ -1,3 +1,3 @@
"""interactively visualize coverage and tracks"""
_program = "bamdash"
-__version__ = "0.0"
+__version__ = "0.1"
diff --git a/bamdash/__pycache__/__init__.cpython-39.pyc b/bamdash/__pycache__/__init__.cpython-39.pyc
index 8a4c7ad292cd17871c4252d672e07dc9669c0313..31f17f67547cd29273bba21fdaa51bc219300d38 100644
GIT binary patch
delta 24
ecmeBT>SE$fSE$fmean coverage", mean)
stat_string = make_stat_substring(stat_string, "recovery", rec)
stat_string = make_stat_substring(stat_string, "gc content", f"{gc_content}%")
@@ -111,7 +112,7 @@ def vcf_to_df(vcf_file, ref):
# extract vcf info
vcf_info = list(vcf.header.info)
- variant_dict = {x: [] for x in ["position", "reference", "mutation", "type"] + vcf_info}
+ variant_dict = {x: [] for x in ["position", "reference", "mutation", "type", "point mutation type"] + vcf_info}
# create vcf dictionary
for rec in vcf.fetch():
if rec.chrom != ref:
@@ -119,6 +120,16 @@ def vcf_to_df(vcf_file, ref):
variant_dict["position"].append(rec.pos)
variant_dict["reference"].append(rec.ref)
variant_dict["mutation"].append(rec.alts[0])
+ # annotate the point mutation type
+ base_exchange = rec.ref + rec.alts[0]
+ if len(base_exchange) == 2:
+ if base_exchange in ["AG", "GA", "CT", "TC"]:
+ variant_dict["point mutation type"] = "transition"
+ else:
+ variant_dict["point mutation type"] = "transversion"
+ else:
+ variant_dict["point mutation type"] = "none"
+
# get mutation type
if len(rec.alts[0]) > len(rec.ref):
variant_dict["type"].append("INS")
@@ -136,7 +147,7 @@ def vcf_to_df(vcf_file, ref):
# clear all keys that have None appended
empty_keys = []
for key in variant_dict:
- if all([x != None for x in variant_dict[key]]):
+ if all([x is not None for x in variant_dict[key]]):
continue
empty_keys.append(key)
if empty_keys:
@@ -189,18 +200,22 @@ def genbank_to_dict(gb_file, coverage_df, ref, min_cov):
"""
feature_dict = {}
+ seq = ""
for gb_record in SeqIO.parse(open(gb_file, "r"), "genbank"):
if gb_record.id != ref and gb_record.name != ref:
- return feature_dict
+ break
+ seq = gb_record.seq
for feature in gb_record.features:
if feature.type not in feature_dict:
feature_dict[feature.type] = {}
start, stop = feature.location.start + 1, feature.location.end
feature_dict[feature.type][f"{start} {stop}"] = {}
mean_cov, rec = get_coverage_stats(coverage_df, start, stop, min_cov)
+ feature_dict[feature.type][f"{start} {stop}"]["start"] = start
+ feature_dict[feature.type][f"{start} {stop}"]["stop"] = stop
feature_dict[feature.type][f"{start} {stop}"]["mean coverage"] = mean_cov
- feature_dict[feature.type][f"{start} {stop}"]["recovery"] = rec
+ feature_dict[feature.type][f"{start} {stop}"]["% recovery"] = rec
# define strand info
if feature.strand == 1:
feature_dict[feature.type][f"{start} {stop}"]["strand"] = "+"
@@ -212,7 +227,10 @@ def genbank_to_dict(gb_file, coverage_df, ref, min_cov):
for qualifier in feature.qualifiers:
feature_dict[feature.type][f"{start} {stop}"][qualifier] = feature.qualifiers[qualifier][0]
- return define_track_position(feature_dict)
+ if feature_dict:
+ return define_track_position(feature_dict), seq
+ else:
+ return feature_dict, seq
def bed_to_dict(bed_file, coverage_df, ref, min_cov):
@@ -248,6 +266,8 @@ def bed_to_dict(bed_file, coverage_df, ref, min_cov):
for line in bed_line_list:
start, stop = int(line[1]), int(line[2])
bed_dict["bed annotations"][f"{start} {stop}"] = {}
+ bed_dict["bed annotations"][f"{start} {stop}"]["start"] = start
+ bed_dict["bed annotations"][f"{start} {stop}"]["stop"] = stop
# check for additional info
if len(line) > 3:
for element, classifier in zip(line[3:], possible_classifiers):
@@ -259,3 +279,100 @@ def bed_to_dict(bed_file, coverage_df, ref, min_cov):
return define_track_position(bed_dict)
+
+def annotate_vcf_df(vcf_df, cds_dict, seq):
+ """
+ annotate mutations for their as effect
+ :param vcf_df: dataframe with vcf data
+ :param cds_dict: dictionary with all coding sequences
+ :param seq: sequence of the reference
+ :return: annotated df
+ """
+
+ proteins, as_exchange, as_effect = [], [], []
+
+ for variant in vcf_df.iterrows():
+ proteins_temp, as_exchange_temp, as_effect_temp = [], [], []
+ pos, mut_type, mut = variant[1]["position"], variant[1]["type"], variant[1]["mutation"]
+ # check each cds for potential mutations
+ for cds in cds_dict:
+ # check if a protein identifier is present
+ if "protein_id" not in cds_dict[cds]:
+ continue
+ start, stop = cds_dict[cds]["start"], cds_dict[cds]["stop"]
+ # check if pos is in range
+ if pos not in range(start, stop):
+ continue
+ # now we know the protein
+ proteins_temp.append(cds_dict[cds]["protein_id"])
+ # at the moment only check SNPs
+ if mut_type != "SNP":
+ as_exchange_temp.append("AMBIG"), as_effect_temp.append(variant[1]["type"])
+ continue
+ # now we can analyse for a potential as exchange
+ strand, seq_mut, codon_start = cds_dict[cds]["strand"], str(seq), int(cds_dict[cds]["codon_start"])
+ # mutate the sequence and get the CDS nt seq
+ seq_mut = Seq.Seq(seq_mut[:pos] + mut + seq_mut[pos+1:])
+ seq_cds, seq_mut_cds = seq[start+codon_start-2:stop], seq_mut[start+codon_start-2:stop]
+ # translate strand depend
+ if strand == "+":
+ cds_trans, cds_mut_trans = seq_cds.translate(), seq_mut_cds.translate()
+ else:
+ cds_trans, cds_mut_trans = seq_cds.reverse_complement().translate(), seq_mut_cds.reverse_complement().translate()
+ # get the mutation by searching for a diff between string - prop a bit slow
+ mut_string = [f"{x}{i+1}{y}" for i, (x, y) in enumerate(zip(cds_trans, cds_mut_trans)) if x != y]
+ # now append to list
+ if not mut_string:
+ as_exchange_temp.append("NONE"), as_effect_temp.append("SYN")
+ else:
+ as_exchange_temp.append(mut_string[0]), as_effect_temp.append("NON-SYN")
+ # check if we did not find a protein
+ if not proteins_temp:
+ proteins.append("NONE"), as_exchange.append("NONE"), as_effect.append("NONE")
+ # else append all mutations found in all cds
+ elif len(proteins_temp) == 1:
+ proteins.append(proteins_temp[0]), as_exchange.append(as_exchange_temp[0]), as_effect.append(as_effect_temp[0])
+ else:
+ proteins.append(" | ".join(proteins_temp)), as_exchange.append(" | ".join(as_exchange_temp)), as_effect.append(" | ".join(as_effect_temp))
+
+ # annotate and return df
+ vcf_df["protein"], vcf_df["effect"], vcf_df["as mutation"] = proteins, as_effect, as_exchange
+ return vcf_df
+
+
+def annotate_vcfs_in_tracks(track_data):
+ """
+ annotates all vcf in the tracks
+ :param track_data
+ :return: track data with annotated vcfs
+ """
+ # annotate mutation effects in vcf df if gb is present
+ index_positions = [[], []] # index of gb and vcf
+ for index, track in enumerate(track_data):
+ if "gb" in track[1]:
+ index_positions[0].append(index)
+ elif "vcf" in track[1]:
+ index_positions[1].append(index)
+ # check if there is a gb file and a vcf file
+ if index_positions[0] and index_positions[1]:
+ # and only one gb file
+ gb_indices = index_positions[0]
+ if len(gb_indices) > 1:
+ print("WARNING: cannot annotate from multiple *.gb files!")
+ return track_data
+ # annotate each vcf df
+ for vcf_track in index_positions[1]:
+ # check if CDS is present
+ if "CDS" not in track_data[gb_indices[0]][0]:
+ continue
+ # check again that there is no empty data
+ if not track_data[vcf_track][0].empty:
+ # and then annotate the vcf dict
+ track_data[vcf_track][0] = annotate_vcf_df(
+ track_data[vcf_track][0], # vcf df
+ track_data[gb_indices[0]][0]["CDS"], # CDS dict
+ track_data[gb_indices[0]][2] # seq
+ )
+
+ return track_data
+
diff --git a/bamdash/scripts/plotting.py b/bamdash/scripts/plotting.py
index 31062be..07c85ee 100644
--- a/bamdash/scripts/plotting.py
+++ b/bamdash/scripts/plotting.py
@@ -36,7 +36,9 @@ def create_coverage_plot(fig, row, coverage_df):
fillcolor=config.coverage_fill_color,
line=dict(color=config.coverage_line_color),
hovertemplate=h_template,
- name="coverage",
+ legendgroup="coverage",
+ legendgrouptitle_text="coverage",
+ name="",
showlegend=True
),
row=row,
@@ -53,39 +55,16 @@ def create_coverage_plot(fig, row, coverage_df):
mode="lines+text",
line=dict(color=config.average_line_color, width=config.average_line_width, dash="dash"),
showlegend=True,
- name="average"
+ legendgroup="average",
+ name="",
+ legendgrouptitle_text="average",
),
row=row,
col=1
)
# y axis title
- fig.update_yaxes(title_text="genome coverage", range=[0, max(coverage_df["coverage"])], row=row, col=1)
- # Add dropdown
- fig.update_layout(
- updatemenus=[
- dict(
- type="buttons",
- direction="left",
- buttons=list([
- dict(
- args=[f"yaxis{row}.type" if row > 1 else "yaxis.type", "linear"],
- label="linear",
- method="relayout"
- ),
- dict(
- args=[f"yaxis{row}.type" if row > 1 else "yaxis.type", "log"],
- label="log",
- method="relayout"
- )
- ]),
- pad={"r": 10, "t": 10},
- showactive=True,
- xanchor="left",
- y=1.1,
- yanchor="top"
- )
- ],
- )
+ fig.update_yaxes(range=[0, max(coverage_df["coverage"])], row=row, col=1)
+
def split_vcf_df(df):
@@ -149,8 +128,9 @@ def create_vcf_plot(fig, row, vcf_df):
go.Scatter(
x=vcf_subset["position"],
y=y_data,
- name=mut,
+ name=f"plot {row}",
legendgroup=mut,
+ legendgrouptitle_text=mut,
mode="markers",
customdata=vcf_subset,
showlegend=show_legend,
@@ -173,8 +153,7 @@ def create_vcf_plot(fig, row, vcf_df):
else:
y_data = [1] * len(vcf_df["position"])
# add lines
- fig.update_layout(
- shapes=[dict(
+ shapes = [dict(
type="line",
xref=f"x{row}",
yref=f"y{row}",
@@ -187,7 +166,12 @@ def create_vcf_plot(fig, row, vcf_df):
width=config.stem_width
)
) for x, y in zip(vcf_df["position"], y_data)]
- )
+ # plot shape in each subplot
+ if fig["layout"]["shapes"]:
+ for shape in shapes:
+ fig.add_shape(shape)
+ else:
+ fig.update_layout(shapes=shapes)
# not need to show yaxis if af is not in vcf
if "AF" not in vcf_df:
fig.update_yaxes(visible=False, row=row, col=1)
@@ -202,6 +186,7 @@ def create_track_plot(fig, row, feature_dict, box_size, box_alpha):
:param feature_dict: all infos for tracks as dictionary
:param box_size: list of box sizes
:param box_alpha: list of box alpha values
+ :param subplot: subplot index of the plot
:return: updated figure
"""
# define colors
@@ -220,7 +205,7 @@ def create_track_plot(fig, row, feature_dict, box_size, box_alpha):
if cycle == 2:
cycle = 0
# get various plot info
- positions = [int(x) for x in annotation.split(" ")]
+ positions = [feature_dict[feature][annotation]["start"], feature_dict[feature][annotation]["stop"]]
track = feature_dict[feature][annotation]["track"]
# define strand marker
if feature_dict[feature][annotation]["strand"] == "+":
@@ -272,7 +257,7 @@ def create_track_plot(fig, row, feature_dict, box_size, box_alpha):
line=dict(color=color_thes[cycle]),
showlegend=legend_vis,
hoverinfo='skip',
- name="",
+ name=f"plot {row}",
legendgroup=feature,
legendgrouptitle_text=feature,
),
diff --git a/example.gif b/example.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed3a8ff229b50f73dcfc596f44e5ea5ff4252a91
GIT binary patch
literal 6564917
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