Skip to content

Commit

Permalink
Added example data for the tutorial to visualize isoforms
Browse files Browse the repository at this point in the history
  • Loading branch information
Siddharth Annaldasula committed Mar 15, 2021
1 parent 7fe0172 commit 74acc71
Show file tree
Hide file tree
Showing 10 changed files with 214 additions and 49 deletions.
40 changes: 20 additions & 20 deletions Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import shutil
from matplotlib.backends.backend_pdf import PdfPages

##### Logistics
configfile: "config_goeke.yaml"
configfile: "config.yaml"
workdir: config["outdir"]

ReferenceFasta = config["genome_fasta"]
Expand Down Expand Up @@ -517,7 +517,7 @@ rule iupred2a_analysis:
threads: 1
group: "sequence_analysis"
shell:
"echo {input.protein} >> {output.seq}; {input.iupred2a} -a {output.seq} long >> {output.idr}"
"tail +2 {input.protein} >> {output.seq}; {input.iupred2a} -a {output.seq} long >> {output.idr}"

# Domain analysis
rule interpro_scan:
Expand Down Expand Up @@ -585,23 +585,23 @@ rule functional_site_analysis:
"perl {params.ps_scan} -d {params.prosite_dat} --pfscan {params.pf_scan} {input} > {output}"

# Prion analysis
rule prion_analysis:
input:
"Results/Genes_temp/{gene}/transcripts/{transcript}_protein.fa"
output:
"Results/Genes_temp/{gene}/transcripts/{transcript}_func_prion.txt"
params:
plaac = config["plaac_path"],
gene = "{gene}"
resources:
memory = 10,
time = 1,
tmpdir = 0
priority: 8
threads: 1
group: "sequence_analysis"
shell:
"java -jar {params.plaac} -i {input} -p all > {output}"
# rule prion_analysis:
# input:
# "Results/Genes_temp/{gene}/transcripts/{transcript}_protein.fa"
# output:
# "Results/Genes_temp/{gene}/transcripts/{transcript}_func_prion.txt"
# params:
# plaac = config["plaac_path"],
# gene = "{gene}"
# resources:
# memory = 10,
# time = 1,
# tmpdir = 0
# priority: 8
# threads: 1
# group: "sequence_analysis"
# shell:
# "java -jar {params.plaac} -i {input} -p all > {output}"

# Combine functional feature analysis on individual isoforms
def functional_files():
Expand All @@ -611,7 +611,7 @@ def functional_files():
if (config["pfam"]): files.append(rules.interpro_scan.output)
if (config["porter"]): files.append(rules.porter_analysis.output)
if (config["pfScan"]): files.append(rules.functional_site_analysis.output)
if (config["prion"]): files.append(rules.prion_analysis.output)
# if (config["prion"]): files.append(rules.prion_analysis.output)
return files
rule individual_transcript_analysis:
input:
Expand Down
24 changes: 4 additions & 20 deletions config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
##### IsoTV Config File

pipeline: "IsoTV"
repo: "https://github.molgen.mpg.de/MayerGroup/IsoTV"

Expand Down Expand Up @@ -28,24 +29,7 @@ genome_annot: "/path/to/gencode.v32.primary_assembly.annotation.gtf"
# samples with .bottom extension must be placed in the RawData folder
# condition_replicate
samples:
A549_1: "A549_r1_r3"
A549_2: "A549_r2_r1"
#A549_3: "A549_r3_r2"
A549_5: "A549_r5_r3"
HCT116_1: "HCT116_r1_r4"
HCT116_3: "HCT116_r3_r2"
HCT116_4: "HCT116_r4_r1"
HCT116_5: "HCT116_r5_r1"
HEPG2_1: "HEPG2_r1_r1"
HEPG2_4: "HEPG2_r4_r2"
HEPG2_5: "HEPG2_r5_r3"
K562_1: "K562_r1_r2"
K562_2: "K562_r2_r1"
K562_3: "K562_r3_r1"
K562_4: "K562_r4_r2"
MCF7_1: "MCF7_r1_r2"
MCF7_3: "MCF7_r3_r3"
MCF7_4: "MCF7_r4_r2"
condition1: "replicate1"

threads: 16

Expand Down Expand Up @@ -111,7 +95,7 @@ gene_file: "/path/to/genes.tab"

### Output file and folder

output_plots: "loveisgone.pdf"
output_plots: "test.pdf"

### Processed file paths - required if not using ONT long read processing workflow

Expand All @@ -122,7 +106,7 @@ counts_data: "/path/to/Results/Quantification_nonred/all_counts_deseq2norm_all.t
# Is data continuous
continuous: FALSE

### Tools paths and functional analysis
### External tool paths and functional analysis

aa: TRUE

Expand Down
155 changes: 155 additions & 0 deletions config_example_pdk2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
##### IsoTV Config File

pipeline: "IsoTV"
repo: "https://github.molgen.mpg.de/MayerGroup/IsoTV"

### Ouput directory

outdir: "example"

### General pipeline parameters:

basecalling: FALSE
preprocess: FALSE
annotation: TRUE
quantification: TRUE

###### ONT long read processing config
### Basecalling pipeline parameters

guppy: "/path/to/Guppy324/bin/guppy_basecaller"
flowcell: FLO-MIN106
kit: SQK-DCS109

### Reference Files
genome_fasta: "/path/to/GRCh38.p12.primary_assembly.genome.fa"
genome_annot: "/path/to/gencode.v32.primary_assembly.annotation.gtf"

### Samples
# samples with .bottom extension must be placed in the RawData folder
# condition_replicate
samples:
A549_1: "A549_r1_r3"
A549_2: "A549_r2_r1"
A549_5: "A549_r5_r3"
HCT116_1: "HCT116_r1_r4"
HCT116_3: "HCT116_r3_r2"
HCT116_4: "HCT116_r4_r1"
HCT116_5: "HCT116_r5_r1"
HEPG2_1: "HEPG2_r1_r1"
HEPG2_4: "HEPG2_r4_r2"
HEPG2_5: "HEPG2_r5_r3"
K562_1: "K562_r1_r2"
K562_2: "K562_r2_r1"
K562_3: "K562_r3_r1"
K562_4: "K562_r4_r2"
MCF7_1: "MCF7_r1_r2"
MCF7_3: "MCF7_r3_r3"
MCF7_4: "MCF7_r4_r2"

threads: 16

# Use pychopper results
pychopper: TRUE

# Use annotation to improve splice junction mapping (minimap2 --junc_bed parameter)
minimap2_opts_junction: TRUE

# Minimum read quality to keep:
min_mean_q: 5

# Stringency of porechop heuristic:
porechop_heu_stringency: 0.25

# Options passed to minimap2 during indexing:
minimap2_index_opts: "-k14"

# Extra options passed to minimap2:
minimap2_opts: "-uf" # required for stranded data e.g. when pychopper filtered

# Minmum mapping quality:
minimum_mapping_quality: 5

# Options passed to spliced_bam2gff:
spliced_bam2gff_opts: "-s" # required for stranded data e.g. when pychopper filtered

# -c parameter:
minimum_cluster_size: 3

# -p parameter:
minimum_isoform_percent: 1

# -d parameter:
exon_boundary_tolerance: 10

# -e parameter:
terminal_exon_boundary_tolerance: 50

# Extra options passed to minimap2 when mapping polished reads:
minimap2_opts_polished: "-uf" # required for stranded data e.g. when pychopper filtered

# Options passed to spliced_bam2gff when converting alignments of polished reads:
spliced_bam2gff_opts_pol: "-s" # required for stranded data e.g. when pychopper filtered

# Options passed to collapse_partials when collapsing fragmentation artifacts
# Internal exon boundary tolerance:
collapse_internal_tol: 5

# Five prime boundary tolerance:
collapse_five_tol: 500

# Three prime boundary tolerance:
collapse_three_tol: 50

maximum_secondary: 200
secondary_score_ratio: 1

##### Feature Analysis Config
### Input genestt

gene_file: "data/genes.tab"

### Output file and folder

output_plots: "test.pdf"

### Processed file paths - required if not using ONT long read processing workflow

nanopore_gtf: "data/PDK2.nanopore.gtf"
polished_reads: "data/PDK2.transcriptome.fas"
counts_data: "data/PDK2.counts.txt"

# Is data continuous
continuous: FALSE

### External tool paths and functional analysis

aa: TRUE

iupred2a_path: "/path/to/iupred2a/iupred2a.py"
iupred2a: TRUE

brewery_path: "/path/to/Brewery/Brewery.py"
porter: TRUE

interproScan_path: "/path/to/my_interproscan/interproscan-5.38-76.0/interproscan.sh"
pfam: TRUE

prositeScan_path: "/path/to/ps_scan/ps_scan.pl"
pfScan_path: "/path/to/ps_scan/pfscan"
prositeDat_path: "/path/to/prosite.dat"
pfScan: TRUE

#plaac_path: "/path/to/plaac.jar"
#prion: FALSE

minIsoTPM: 1
maxIsoNum: 8
minIsoPct: 10

### Misc paths

java : "/pkg/openjdk-11.0.3.2-0/profile"

lock1: "/.../lock.txt"
lock2: "/.../lock2.txt"
Binary file added example/PDK2_Tutorial.pdf
Binary file not shown.
3 changes: 3 additions & 0 deletions example/data/PDK2.counts.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class_code,A549_1,A549_2,A549_5,HCT116_1,HCT116_3,HCT116_4,HCT116_5,HEPG2_1,HEPG2_4,HEPG2_5,K562_1,K562_2,K562_3,K562_4,MCF7_1,MCF7_3,MCF7_4,transcript_id,gene_name,ref_transcript,gene_id,gene_type
=,10.7123842660785,15.0113335568354,16.2651214801261,0,11.5434688558883,10.49952673775,10.1420512602935,0,7.86124895592787,10.4796284084991,2.44646283064557,0,2.19493190223773,1.57696537194305,3.82454516596614,10.8899378184551,11.490643684754,TCONS_00023419,PDK2,ENST00000505897.5,ENSG00000005882.12,protein_coding
=,25.7097222385884,20.0151114091139,17.2816915726339,17.5114992178197,24.75990421263,27.2674276472911,23.6647862740183,8.05561597267535,19.6531223898197,16.1225052438448,1.46787769838734,0,2.19493190223773,0,15.2981806638645,27.8298410916074,33.2994163925523,TCONS_00023420,PDK2,ENST00000503176.6,ENSG00000005882.12,protein_coding
17 changes: 17 additions & 0 deletions example/data/PDK2.nanopore.gtf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
chr17 pinfish transcript 50095380 50106363 . + . transcript_id "TCONS_00023419"; gene_id "XLOC_007312"; gene_name "PDK2"; oId "f3fe429f-0296-4cc4-a2cf-aa295cd23fbe|60"; cmp_ref "ENST00000505897.5"; class_code "="; tss_id "TSS13403";
chr17 pinfish exon 50095380 50095553 . + . transcript_id "TCONS_00023419"; gene_id "XLOC_007312"; exon_number "1";
chr17 pinfish exon 50097423 50097564 . + . transcript_id "TCONS_00023419"; gene_id "XLOC_007312"; exon_number "2";
chr17 pinfish exon 50105371 50105442 . + . transcript_id "TCONS_00023419"; gene_id "XLOC_007312"; exon_number "3";
chr17 pinfish exon 50105885 50106363 . + . transcript_id "TCONS_00023419"; gene_id "XLOC_007312"; exon_number "4";
chr17 pinfish transcript 50095387 50111369 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; gene_name "PDK2"; oId "bf7faaeb-3870-4b4a-8d23-854e564f9462|14"; cmp_ref "ENST00000503176.6"; class_code "="; tss_id "TSS13403";
chr17 pinfish exon 50095387 50095553 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "1";
chr17 pinfish exon 50097423 50097564 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "2";
chr17 pinfish exon 50105371 50105442 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "3";
chr17 pinfish exon 50105885 50106069 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "4";
chr17 pinfish exon 50106794 50106883 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "5";
chr17 pinfish exon 50107076 50107153 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "6";
chr17 pinfish exon 50108156 50108232 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "7";
chr17 pinfish exon 50108319 50108417 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "8";
chr17 pinfish exon 50108612 50108719 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "9";
chr17 pinfish exon 50109287 50109400 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "10";
chr17 pinfish exon 50109957 50111369 . + . transcript_id "TCONS_00023420"; gene_id "XLOC_007312"; exon_number "11";
4 changes: 4 additions & 0 deletions example/data/PDK2.transcriptome.fas
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
>TCONS_00023419
GGTGCGCGAGCGCTGCCCGCGCGGGGACCACAACCAAAGTCGCGGCCGCCGCAGCCATGCGCTGGGTGTGGGCGCTGCTGAAGAATGCGTCCCTGGCAGGGGCGCCCAAGTACATAGAGCACTTCAGCAAGTTCTCCCCGTCCCCGCTGTCCATGAAGCAGTTTCTGGACTTCGGATCCAGCAATGCCTGTGAGAAAACCTCCTTCACCTTCCTCAGGCAGGAGCTGCCTGTGCGCCTGGCCAACATCATGAAAGAGATCAACCTGCTTCCCGACCGAGTGCTGAGCACACCCTCCGTGCAGCTGGTGCAGAGCTGGTATGTCCAGAGCCTCCTGGACATCATGGAGTTCCTGGACAAGGATCCCGAGGACCATCGCACCCTGAGCCAGTTCACTGACGCCCTGGTCACCATCCGGAACCGGCACAACGACGTGGTGCCCACCATGGCACAAGGCGTGCTTGAGTACAAGGACACCTACGGCGATGACCCCGTCTCCAACCAGAACATCCAGTACTTCCTGGACCGCTTCTACCTCAGCCGCATCTCCATCCGCATGCTCATCAACCAGCACAGTGGGTGCCGGCCACAGCGGCGGGGAGCGGGCGGTGGGGGGGGCGGTGCTGGGGCCCAGGGCCGGGCTGCTGAGGGGACCTAGACCACTCTTCAGAACCCCACAAAGGGAGTCTTTGAATAGTTACTCCAGTAACTATGGAGTTAATGGCTCCAACATGGAAAAATAAAATTTTTCTTTCTCATTGATTTTCCATTTCAAAACGTTTTGTTTTCAGTGTTTGCAAAATGTAAAATTATGTCACATCTTTAAAAGAATGTTTAATTTAGTATTTATAAAAACTCTCATTATGTTC
>TCONS_00023420
GAGCGCTGCCCGCGCGGGGACCACAACCAAAGTCGCGGCCGCCGCAGCCATGCGCTGGGTGTGGGCGCTGCTGAAGAATGCGTCCCTGGCAGGGGCGCCCAAGTACATAGAGCACTTCAGCAAGTTCTCCCCGTCCCCGCTGTCCATGAAGCAGTTTCTGGACTTCGGATCCAGCAATGCCTGTGAGAAAACCTCCTTCACCTTCCTCAGGCAGGAGCTGCCTGTGCGCCTGGCCAACATCATGAAAGAGATCAACCTGCTTCCCGACCGAGTGCTGAGCACACCCTCCGTGCAGCTGGTGCAGAGCTGGTATGTCCAGAGCCTCCTGGACATCATGGAGTTCCTGGACAAGGATCCCGAGGACCATCGCACCCTGAGCCAGTTCACTGACGCCCTGGTCACCATCCGGAACCGGCACAACGACGTGGTGCCCACCATGGCACAAGGCGTGCTTGAGTACAAGGACACCTACGGCGATGACCCCGTCTCCAACCAGAACATCCAGTACTTCCTGGACCGCTTCTACCTCAGCCGCATCTCCATCCGCATGCTCATCAACCAGCACACCCTCATCTTTGATGGCAGCACCAACCCAGCCCATCCCAAACACATCGGCAGCATCGACCCCAACTGCAACGTCTCTGAGGTGGTCAAAGATGCCTACGACATGGCTAAGCTCCTGTGTGACAAGTATTACATGGCCTCACCTGACCTGGAGATCCAGGAGATCAATGCAGCCAACTCCAAACAGCCGATTCACATGGTCTACGTCCCCTCCCACCTCTACCACATGCTCTTTGAGCTCTTCAAGAATGCCATGAGGGCGACTGTGGAAAGCCATGAGTCCAGCCTCATTCTCCCACCCATCAAGGTCATGGTGGCCTTGGGTGAGGAAGATCTGTCCATCAAGATGAGTGACCGAGGTGGGGGTGTTCCCTTGAGGAAGATTGAGCGACTCTTCAGCTACATGTACTCCACAGCACCCACCCCCCAGCCTGGCACCGGGGGAACGCCGCTGGCTGGCTTTGGTTATGGGCTCCCCATTTCCCGCCTCTACGCCAAGTACTTCCAGGGAGACCTGCAGCTCTTCTCCATGGAAGGCTTTGGGACCGATGCTGTCATCTATCTCAAGGCCCTGTCCACGGACTCGGTGGAGCGCCTGCCTGTCTACAACAAGTCAGCCTGGCGCCACTACCAGACCATCCAGGAGGCCGGCGACTGGTGTGTGCCCAGCACGGAGCCCAAGAACACGTCCACGTACCGCGTCAGCTAAGGGCCGCCGTGCATCTGCACCTGAGAGGACGGACTGCCGCCTCTGGGTCCCCCCACCGTGGTGCCCCTCACCATCCTCCTGGGGGAGCAGGGGGTGGGTTCTCCCTGATGACCAGGTTCTGTCTCTATGGAAGTCACTGCGGTGATAGGTCTGTGATGGTCCCTAAGTGCCAGTCCATCTCTGTGGAGACCCCTCGGTGGCCTCCCTATCTCTGTGGGCGATGCCTGAGGGTTAGGGATGTCTCCACCCTGATGGGGTGTCCCAGAGACATTTTCCCATGGCAGTCCTCCTCTCTGAGACCAGGGCTGTCACTTTTCTGCCAGGGGTACTGGGTCCCCCTCAGCACCCTCCACAGCACAGGCCTTCCAAGTGGATGTCCCGTTGCCTTATTCCCCCAGCCCACAAAGGCACCCTGGCCTTGGCCTGCTGAAGTGTTAGGAAGAGGGTGGGTGCCCTCCAGACCTGGGGACTGAGTGGGGAAAGGAGTTACACCCGTGAGTGGGGAATGAGGCTGGTCCTGCAGCCTCTCCCTCCGCTCAGGGCTTGAAGGTCGGTGGCGGAGGGGGTGGCTCTCACAGGGCCCAACTCTAAAGTGGAAGAACCTTGTTAGACCGAGAGCTTGCCATCCAGCCAAGCTGCTCGAGGCCCTGCAGTGGCCTTGGCAATGTCTGTGCCACCTCCTGAGCCCTCCCAGCATGTCCTCACATGCTCATGCCCACCCGCTCCTCCACAAGCCTAGTCCATCCTGCCTGAGCTCCAGCCCCCAGCCCCCACTGTGCCCAGACATGTGTGCTCAGGGTGGCTTTCTCCCTAGGACCTTCTGTGTATATAGTTAGTTTTATAACCCTGAATGCCCCCACCCTTCCCCTAAGCACACAGGGGTTAAAGCTGTGTGTCCCTCCCAGTGGCTGTGGCAGTGACAGTGACACCCACACCCACAGTAAAGAGGAGACTGAATGAGACTGGCCTGGCTGCATCCCTGGGGGAGGGGACCCACACGTGCGCACGTACACACGCACACTGCGGTGCCCTGTGACCACCACATGACGCACCGGGGACGTCCGGCCCAGCTCAGGACTGTGAGTAAAACACTGGGCAAAGCCATCTGTTCAGAACGCCGGATGGCCCAGCACCTGGTGACAGACCTGTTGTCCCACCATACTCAGGGCCCAGCAGAGTCCGGCCAACCCAACAACTGGAGCAGACAGAAATTCTGGTCACTGGCACATCATAAGGATTTATTGAAATAAATTGAGAACTGCCTCCCCTTCA
1 change: 1 addition & 0 deletions example/data/genes.tab
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PDK2
2 changes: 1 addition & 1 deletion scripts/individual_transcript_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

elif ("iupred2a" in filename):
output.append("#####IUPred2A Analysis")
lines = lines[7:]
lines = lines[6:]
for position in lines:
output.append(position.strip())

Expand Down
17 changes: 9 additions & 8 deletions scripts/visualization.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,10 +204,10 @@ def plotSequenceAnalysis(transcripts_plot, colors, longest_length_protein, fig,
buffer_phos = 0.075
buffer_den = 0.5

lg = fig.add_subplot(gs[curr_row_panel:curr_row_panel+5, 0])
lg = fig.add_subplot(gs[curr_row_panel:curr_row_panel+total_features, 0])
lg.set_xlim((-0.11,0.11))

ax = fig.add_subplot(gs[curr_row_panel:curr_row_panel+5, 1:])
ax = fig.add_subplot(gs[curr_row_panel:curr_row_panel+total_features, 1:])
ax.set_xlim((-0.5,longest_length_protein + 1))
ax.patch.set_facecolor(transcript_color)
ax.patch.set_alpha(0.15)
Expand Down Expand Up @@ -380,7 +380,7 @@ def plotSequenceAnalysis(transcripts_plot, colors, longest_length_protein, fig,
ax.spines['left'].set_visible(False)
#ax.spines['bottom'].set_visible(False)
ax.set_yticks([], [])
curr_row_panel += total_features
curr_row_panel += total_features + 1

def plotLegend(plt,fig,gs,total_gs):
ax = fig.add_subplot(gs[total_gs-2:total_gs, 0:5])
Expand All @@ -399,10 +399,10 @@ def plotLegend(plt,fig,gs,total_gs):
ss_abbvs = ["Alpha Helix","Beta Sheet","Other"]
for i in range(0,len(ss_abbvs)):
if (ss_abbvs[i] == "Other"):
plt.gca().add_patch(Rectangle((3,float(i*2)/5),3,1.0/5,edgecolor="black",facecolor=colors_ss3[i]))
plt.gca().add_patch(Rectangle((3,float(i*2 + 4)/5),3,1.0/5,edgecolor="black",facecolor=colors_ss3[i]))
else:
plt.gca().add_patch(Rectangle((3,float(i*2)/5),3,1.0/5,edgecolor=colors_ss3[i],facecolor=colors_ss3[i]))
ax.text(7,float(i*2)/5 + 0.25,ss_abbvs[i],horizontalalignment = "left",verticalalignment = "top")
plt.gca().add_patch(Rectangle((3,float(i*2 + 4)/5),3,1.0/5,edgecolor=colors_ss3[i],facecolor=colors_ss3[i]))
ax.text(7,float(i*2 + 4)/5 + 0.25,ss_abbvs[i],horizontalalignment = "left",verticalalignment = "top")
ax.annotate("Secondary Structure",(6.75,2), fontsize = 14, color = "black", ha = "center", va = "center", weight='bold')
ax.axis("off")

Expand Down Expand Up @@ -506,6 +506,7 @@ def plotLegend(plt,fig,gs,total_gs):

total_gs = 1
transcripts_plot = sorted(list(transcripts.keys()))

if (snakemake.config["quantification"]):
df_temp = data[data["gene_name"] == gene]
data_gene = df_temp[samples].sum().to_frame().transpose()
Expand All @@ -526,7 +527,7 @@ def plotLegend(plt,fig,gs,total_gs):
for transcript_id in transcripts_delete:
transcripts_plot.remove(transcript_id)
total_gs += len(transcripts_plot) + 1
total_gs += total_features * len(transcripts_plot) + 2
total_gs += (total_features + 1) * len(transcripts_plot) + 2
fig = plt.figure(figsize = (21,total_gs))
gs = fig.add_gridspec(total_gs, 15)

Expand Down Expand Up @@ -565,7 +566,7 @@ def plotLegend(plt,fig,gs,total_gs):
else:
plotSequenceAnalysis(transcripts_plot, colors, longest_length, fig, gs, total_gs)

total_gs += total_features * len(transcripts_plot) + 2
total_gs += (total_features + 1) * len(transcripts_plot) + 2
plotLegend(plt,fig,gs,total_gs)

plt.subplots_adjust(wspace=0.05, hspace=0.05)
Expand Down

0 comments on commit 74acc71

Please sign in to comment.