Author: Andreas Tille <tille@debian.org>
Last-Update: Tue, 12 Nov 2019 17:11:17 +0100
Description: Make sure Python3 interpreter is used in scripts

--- a/assembler/changer_of_K.py
+++ b/assembler/changer_of_K.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 import os
 import shutil
--- a/assembler/spades.py
+++ b/assembler/spades.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/spades_init.py
+++ b/assembler/spades_init.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/easy_align.py
+++ b/assembler/src/spades_pipeline/easy_align.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 import os
 import sys
 
--- a/assembler/src/spades_pipeline/process_cfg.py
+++ b/assembler/src/spades_pipeline/process_cfg.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/truspades/moleculo_filter_contigs.py
+++ b/assembler/src/spades_pipeline/truspades/moleculo_filter_contigs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/truspades.py
+++ b/assembler/truspades.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
@@ -52,9 +52,9 @@ def reads_line(libs):
 def command_line(barcode, output_dir, params, continue_launch):
 #    logfile = os.path.join(output_dir, "logs", barcode.id + ".out")
     if continue_launch and os.path.exists(os.path.join(output_dir, barcode.id,  "params.txt")):
-        result = ["python " + os.path.join(spades_home, "spades.py"), "--truseq", "-o", os.path.join(output_dir, barcode.id), "--continue", params]
+        result = ["python3 " + os.path.join(spades_home, "spades.py"), "--truseq", "-o", os.path.join(output_dir, barcode.id), "--continue", params]
     else:
-       result = ["python " + os.path.join(spades_home, "spades.py"), "--truseq", "-t", "1", "-o", os.path.join(output_dir, barcode.id), reads_line(barcode.libs), params]
+       result = ["python3 " + os.path.join(spades_home, "spades.py"), "--truseq", "-t", "1", "-o", os.path.join(output_dir, barcode.id), reads_line(barcode.libs), params]
 #    result = ["./truspades.py", "-o", os.path.join(output_dir, barcode.id), reads_line(barcode.libs), " ".join(params), "\n"]
     return " ".join(result)
 
--- a/assembler/src/projects/mts/scripts/bin_profiles.py
+++ b/assembler/src/projects/mts/scripts/bin_profiles.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 from __future__ import (print_function)
 
 import pandas
--- a/assembler/src/spades_pipeline/hammer_logic.py
+++ b/assembler/src/spades_pipeline/hammer_logic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/options_storage.py
+++ b/assembler/src/spades_pipeline/options_storage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/run_contig_breaker.py
+++ b/assembler/src/spades_pipeline/run_contig_breaker.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/truspades/break_by_coverage.py
+++ b/assembler/src/spades_pipeline/truspades/break_by_coverage.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/projects/mts/scripts/split_bins.py
+++ b/assembler/src/projects/mts/scripts/split_bins.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import print_function
+#!/usr/bin/python3
 
 from operator import itemgetter
 import os
--- a/assembler/src/spades_pipeline/spades_logic.py
+++ b/assembler/src/spades_pipeline/spades_logic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
@@ -214,7 +214,7 @@ def run_iteration(configs_dir, execution
             lines = []
             with open(cfg_file) as infile:
                 for line in infile:
-                    for src, target in replacements.iteritems():
+                    for src, target in replacements.items():
                         line = line.replace(src, target)
                     lines.append(line)
             with open(cfg_file, 'w') as outfile:
@@ -275,7 +275,7 @@ def run_scaffold_correction(configs_dir,
             lines = []
             with open(cfg_file) as infile:
                 for line in infile:
-                    for src, target in replacements.iteritems():
+                    for src, target in replacements.items():
                         line = line.replace(src, target)
                     lines.append(line)
             with open(cfg_file, 'w') as outfile:
--- a/assembler/src/spades_pipeline/truspades/reference_construction.py
+++ b/assembler/src/spades_pipeline/truspades/reference_construction.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/test/cap/tests/synthetic/test_generator.py
+++ b/assembler/src/test/cap/tests/synthetic/test_generator.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/projects/mts/scripts/choose_samples.py
+++ b/assembler/src/projects/mts/scripts/choose_samples.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 from operator import itemgetter
--- a/assembler/src/projects/mts/scripts/clusters2csv.py
+++ b/assembler/src/projects/mts/scripts/clusters2csv.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import print_function
+#!/usr/bin/python3
 import sys
 
 from Bio import SeqIO
--- a/assembler/src/projects/mts/scripts/combine_contigs.py
+++ b/assembler/src/projects/mts/scripts/combine_contigs.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import print_function
+#!/usr/bin/python3
 import sys
 import os
 import os.path
--- a/assembler/src/projects/mts/scripts/multi_stats.py
+++ b/assembler/src/projects/mts/scripts/multi_stats.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 import os
--- a/assembler/src/spades_pipeline/support.py
+++ b/assembler/src/spades_pipeline/support.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015-2016 Saint Petersburg State University
--- a/assembler/src/projects/mts/scripts/cut_fasta.py
+++ b/assembler/src/projects/mts/scripts/cut_fasta.py
@@ -1,7 +1,6 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 """Cut up fasta file in non-overlapping or overlapping parts of equal length.
 """
-from __future__ import print_function
 import argparse
 import sys
 from Bio import SeqIO
--- a/assembler/src/projects/mts/scripts/bhtsne.py
+++ b/assembler/src/projects/mts/scripts/bhtsne.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 '''
 A simple Python wrapper for the bh_tsne binary that makes it easier to use it
@@ -15,7 +15,7 @@ Example:
 
 The output will not be normalised, maybe the below one-liner is of interest?:
 
-    python -c 'import numpy;  from sys import stdin, stdout;
+    python3 -c 'import numpy;  from sys import stdin, stdout;
         d = numpy.loadtxt(stdin); d -= d.min(axis=0); d /= d.max(axis=0);
         numpy.savetxt(stdout, d, fmt="%.8f", delimiter="\t")'
 
@@ -207,7 +207,7 @@ def run_bh_tsne(data, no_dims=2, perplex
         try:
             os.waitpid(child_pid, 0)
         except KeyboardInterrupt:
-            print("Please run this program directly from python and not from ipython or jupyter.")
+            print("Please run this program directly from python3 and not from ipython3 or jupyter.")
             print("This is an issue due to asynchronous error handling.")
 
         res = []
--- a/assembler/src/projects/mts/scripts/choose_bins.py
+++ b/assembler/src/projects/mts/scripts/choose_bins.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import re
 import sys
--- a/assembler/src/projects/mts/scripts/subsample.py
+++ b/assembler/src/projects/mts/scripts/subsample.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 import gzip
--- a/assembler/src/projects/mts/multirun.py
+++ b/assembler/src/projects/mts/multirun.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 import os
--- a/assembler/src/projects/mts/scripts/contig_name_filter.py
+++ b/assembler/src/projects/mts/scripts/contig_name_filter.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import print_function
+#!/usr/bin/python3
 
 import sys
 from Bio import SeqIO
--- a/assembler/src/projects/mts/scripts/gather_stats.py
+++ b/assembler/src/projects/mts/scripts/gather_stats.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 from collections import OrderedDict
--- a/assembler/src/tools/misc/copyrighter.py
+++ b/assembler/src/tools/misc/copyrighter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/datasets_converter.py
+++ b/assembler/src/tools/misc/datasets_converter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/datasets_info2yaml_converter.py
+++ b/assembler/src/tools/misc/datasets_info2yaml_converter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/sv_simulator.py
+++ b/assembler/src/tools/misc/sv_simulator.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/crop/crop_bfaecium.py
+++ b/assembler/src/tools/reads_utils/crop/crop_bfaecium.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/projects/mts/mts.py
+++ b/assembler/src/projects/mts/mts.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-from __future__ import (print_function)
+#!/usr/bin/python3
 
 import argparse
 import subprocess
--- a/assembler/src/tools/misc/assembler_runner/runner.py
+++ b/assembler/src/tools/misc/assembler_runner/runner.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/txt2gff.py
+++ b/assembler/src/tools/misc/txt2gff.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/ideal_by_fasta.py
+++ b/assembler/src/tools/reads_utils/ideal_by_fasta.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/truseq/quast_all.py
+++ b/assembler/src/tools/truseq/quast_all.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/datasets_info_cleaner.py
+++ b/assembler/src/tools/misc/datasets_info_cleaner.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/spades_pipeline/spades_download_binary.py
+++ b/assembler/src/tools/spades_pipeline/spades_download_binary.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/spades_pipeline/corrector_logic.py
+++ b/assembler/src/spades_pipeline/corrector_logic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/break_scaffolds_into_contigs.py
+++ b/assembler/src/tools/contig_analysis/break_scaffolds_into_contigs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/compare_gaps_pos.py
+++ b/assembler/src/tools/contig_analysis/compare_gaps_pos.py
@@ -1,5 +1,4 @@
-
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/gap_finder.py
+++ b/assembler/src/tools/contig_analysis/gap_finder.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/mis_parser.py
+++ b/assembler/src/tools/contig_analysis/visualizer/mis_parser.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/misassemblies.py
+++ b/assembler/src/tools/contig_analysis/visualizer/misassemblies.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/misassemblies_old.py
+++ b/assembler/src/tools/contig_analysis/visualizer/misassemblies_old.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/miss_nocov.py
+++ b/assembler/src/tools/contig_analysis/visualizer/miss_nocov.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/run_viz.sh
+++ b/assembler/src/tools/contig_analysis/visualizer/run_viz.sh
@@ -13,9 +13,9 @@ touch list.txt
 
 for file in $(ls *.stdout)
 do
-	python parser.py $file >> list.txt
+	python3 parser.py $file >> list.txt
 done
 
-python misassemblies.py -o plot -a list.txt --arcs
+python3 misassemblies.py -o plot -a list.txt --arcs
 
 rm list.txt
--- a/assembler/src/tools/reads_utils/reads_quality.py
+++ b/assembler/src/tools/reads_utils/reads_quality.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/cleancontigs/sort_contigs.py
+++ b/assembler/src/tools/cleancontigs/sort_contigs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/analyze_sinks.py
+++ b/assembler/src/tools/contig_analysis/analyze_sinks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/compare_fasta.py
+++ b/assembler/src/tools/contig_analysis/compare_fasta.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/compare_gaps.py
+++ b/assembler/src/tools/contig_analysis/compare_gaps.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/compare_runs.sh
+++ b/assembler/src/tools/contig_analysis/compare_runs.sh
@@ -11,5 +11,5 @@
 for file in $(ls $1/saves/*.sqn)
 do
 	echo $(basename $file)
-	python compare_fasta.py $1/saves/$(basename $file)  $2/saves/$(basename $file)
+	python3 compare_fasta.py $1/saves/$(basename $file)  $2/saves/$(basename $file)
 done
--- a/assembler/src/tools/contig_analysis/compare_used_snps.py
+++ b/assembler/src/tools/contig_analysis/compare_used_snps.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/parser.py
+++ b/assembler/src/tools/contig_analysis/visualizer/parser.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/run_parser.sh
+++ b/assembler/src/tools/contig_analysis/visualizer/run_parser.sh
@@ -10,5 +10,5 @@
 
 for file in $(ls *.stdout)
 do
-	python parser.py $file >> list.txt
+	python3 parser.py $file >> list.txt
 done
--- a/assembler/src/tools/misc/sam_analyzer_2.py
+++ b/assembler/src/tools/misc/sam_analyzer_2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/clean_contaminations/16SrRNA/preprocessing.sh
+++ b/assembler/src/tools/clean_contaminations/16SrRNA/preprocessing.sh
@@ -23,8 +23,8 @@ echo Building taxonomy index for $1 ...
 echo Temporary file: $tempfile
 echo Index prefix: $indxfile
 
-python preprocessing.py < $1 > $tempfile
+python3 preprocessing.py < $1 > $tempfile
 
 bowtie-build $tempfile $indxfile
 
-rm $tempfile
\ No newline at end of file
+rm $tempfile
--- a/assembler/src/tools/clean_contaminations/16SrRNA/taxonomy.sh
+++ b/assembler/src/tools/clean_contaminations/16SrRNA/taxonomy.sh
@@ -24,4 +24,4 @@ fi
 
 echo Analyzing taxonomy for $1 ...
 
-bowtie --threads $threads -k 10 --best --chunkmbs 1024 SSURef_108_NR_tax_silva_v2.fasta $1 | python parse_tax_from_bowtie.py
+bowtie --threads $threads -k 10 --best --chunkmbs 1024 SSURef_108_NR_tax_silva_v2.fasta $1 | python3 parse_tax_from_bowtie.py
--- a/assembler/src/tools/clean_contaminations/clean_contam_by_index_id.sh
+++ b/assembler/src/tools/clean_contaminations/clean_contam_by_index_id.sh
@@ -111,7 +111,7 @@ function clean_paired ()
         bowtie -c -q -p 16 --suppress 6,7,8 $i $cleanedleft > "${output_folder}/paired_log1_${timestamp}.tmp" 2> /dev/null
         bowtie -c -q -p 16 --suppress 6,7,8 $i $cleanedright > "${output_folder}/paired_log2_${timestamp}.tmp" 2> /dev/null
         echo "running filter_reads.py"
-        python ${path_to_script}/../reads_utils/filter/filter_reads.py $cleanedleft $cleanedright "${output_folder}/paired_log1_${timestamp}.tmp" "${output_folder}/paired_log2_${timestamp}.tmp"
+        python3 ${path_to_script}/../reads_utils/filter/filter_reads.py $cleanedleft $cleanedright "${output_folder}/paired_log1_${timestamp}.tmp" "${output_folder}/paired_log2_${timestamp}.tmp"
         mv $filteredleft $cleanedleft
         mv $filteredright $cleanedright
     done
@@ -199,7 +199,7 @@ do
 	then
 		echo "building index for sequence $i"
 		mkdir -p "${path_to_db}/index/${i:0:2}"
-		python ${path_to_script}/read_fasta_using_index.py $i "${blast_database}.fasta" > "${i}.fasta.tmp"
+		python3 ${path_to_script}/read_fasta_using_index.py $i "${blast_database}.fasta" > "${i}.fasta.tmp"
 		bowtie-build "${i}.fasta.tmp" "${path_to_db}/index/${i:0:2}/${i}"
 		rm "${i}.fasta.tmp"
 	fi
@@ -220,7 +220,7 @@ then
     else
       ln -s $all_reads "${output_folder}/${filename}"
     fi
-    python ${path_to_script}/../reads_utils/conversion/split_any_fastq.py "${output_folder}/${filename}"
+    python3 ${path_to_script}/../reads_utils/conversion/split_any_fastq.py "${output_folder}/${filename}"
     filename=${filename%.*}
     left="${output_folder}/${filename}_left.${extension}"
     right="${output_folder}/${filename}_right.${extension}"
--- a/assembler/src/tools/cleancontigs/cleancontigs.py
+++ b/assembler/src/tools/cleancontigs/cleancontigs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/get_misassembled_contigs.py
+++ b/assembler/src/tools/contig_analysis/get_misassembled_contigs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/texify_results.py
+++ b/assembler/src/tools/contig_analysis/texify_results.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/contig_analysis/visualizer/main.py
+++ b/assembler/src/tools/contig_analysis/visualizer/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/dataset_tar
+++ b/assembler/src/tools/dataset_tar
@@ -3,4 +3,4 @@
 DIR="$( cd "$( dirname "$0" )" && pwd )"
 BASE="$( cd "$( dirname "$0" )" && cd ../.. && pwd )"
 pushd $BASE/data/input > /dev/null
-python $BASE/src/tools/dataset.py tar $BASE/configs/debruijn/datasets.info $1
+python3 $BASE/src/tools/dataset.py tar $BASE/configs/debruijn/datasets.info $1
--- a/assembler/src/tools/loc_pic.py
+++ b/assembler/src/tools/loc_pic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/gcc_version_check.py
+++ b/assembler/src/tools/misc/gcc_version_check.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/misc/sam_analysis_sorter.py
+++ b/assembler/src/tools/misc/sam_analysis_sorter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/crop/crop_genome.py
+++ b/assembler/src/tools/reads_utils/crop/crop_genome.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/crop/paired_crop.py
+++ b/assembler/src/tools/reads_utils/crop/paired_crop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/paired_reads_quality.py
+++ b/assembler/src/tools/reads_utils/paired_reads_quality.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/coverage.py
+++ b/assembler/src/tools/reads_utils/stat/coverage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/coverage_hist.py
+++ b/assembler/src/tools/reads_utils/stat/coverage_hist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/is.py
+++ b/assembler/src/tools/reads_utils/stat/is.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/raw.py
+++ b/assembler/src/tools/reads_utils/stat/raw.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/raws_w_orientation.py
+++ b/assembler/src/tools/reads_utils/stat/raws_w_orientation.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/shift.py
+++ b/assembler/src/tools/reads_utils/stat/shift.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/single_log_to_paired.py
+++ b/assembler/src/tools/reads_utils/stat/single_log_to_paired.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/reads_utils/stat/trim.py
+++ b/assembler/src/tools/reads_utils/stat/trim.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -O
+#!/usr/bin/python3 -O
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
--- a/assembler/src/tools/spades_download_stats/filter.py
+++ b/assembler/src/tools/spades_download_stats/filter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 #***************************************************************************
 ##* Copyright (c) 2011-2014 Saint-Petersburg Academic University
--- a/assembler/src/test/teamcity/deprecated/spades_mc_is220_1k.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_mc_is220_1k.sh
@@ -12,6 +12,6 @@ pushd ../../../
 rm -rf spades_output/ECOLI_IS220_QUAKE_1K
 ./spades.py --only-assembler --generate-sam-file -k 21,55 -1 ./data/input/E.coli/is220/cropped/s_6.first1000_1.fastq.gz -2 ./data/input/E.coli/is220/cropped/s_6.first1000_2.fastq.gz -o spades_output/ECOLI_IS220_QUAKE_1K
 rm -rf ~/quast-1.3/ECOLI_IS220_QUAKE_1K/
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE_1K/ spades_output/ECOLI_IS220_QUAKE_1K/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE_1K/transposed_report.tsv 1000 0
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE_1K/ spades_output/ECOLI_IS220_QUAKE_1K/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE_1K/transposed_report.tsv 1000 0
 popd
--- a/assembler/src/tools/estimation_deprecated/Nx_plot.py
+++ b/assembler/src/tools/estimation_deprecated/Nx_plot.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
 # Copyright (c) 2011-2014 Saint Petersburg Academic University
@@ -18,9 +19,9 @@ import fastaparser
 if len(sys.argv) < 2:
 	print "Draws Nx plot (from N00 through N50 to N100)"
 	print
-	print "Usage: python", sys.argv[0], "FASTA1 [FASTA2 [FASTA3 ..."
+	print "Usage: python3", sys.argv[0], "FASTA1 [FASTA2 [FASTA3 ..."
 	print
-	print "Example: python", sys.argv[0], "../../data/debruijn/we_contigs.fasta ../../data/debruijn/velvet_contigs.fa"
+	print "Example: python3", sys.argv[0], "../../data/debruijn/we_contigs.fasta ../../data/debruijn/velvet_contigs.fa"
 	exit(0)
 
 for filename in sys.argv[1:]:
--- a/assembler/src/tools/truseq/quast_all.sh
+++ b/assembler/src/tools/truseq/quast_all.sh
@@ -14,7 +14,7 @@ mkdir $3/tmp
 mkdir $3/all_reports
 ls $1 | xargs -P $4 -I {} -t quast --min-contig 1000 --contig-thresholds 5000,8000,12000 -e -R $2/{}.fasta $1/{}/scaffolds.fasta -o $3/tmp/{}
 ls $1 | xargs -P $4 -I {} -t cp $3/tmp/{}/report.tsv $3/all_reports/{}.tsv
-python quast_all.py $3/all_reports $3
+python3 quast_all.py $3/all_reports $3
 grep "( inversion )" $3/tmp/*/contigs_reports/contigs_report_*.stdout > $3/inversions.txt
 grep "( translocation )" $3/tmp/*/contigs_reports/contigs_report_*.stdout > $3/translocations.txt
 grep "( relocation," $3/tmp/*/contigs_reports/contigs_report_*.stdout > $3/relocations.txt
--- a/assembler/src/test/teamcity/deprecated/spades_mc_is220_1k_ant.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_mc_is220_1k_ant.sh
@@ -12,6 +12,6 @@ pushd ../../../
 rm -rf spades_output/ECOLI_IS220_QUAKE_1K
 ./spades.py -k 21,55 --only-assembler -1 /tmp/data/input/E.coli/is220/cropped/s_6.first1000_1.fastq.gz -2 /tmp/data/input/E.coli/is220/cropped/s_6.first1000_2.fastq.gz -o spades_output/ECOLI_IS220_QUAKE_1K
 rm -rf ~/quast-1.3/ECOLI_IS220_QUAKE_1K/
-python ~/quast-1.3/quast.py -R /tmp/data/input/E.coli/MG1655-K12.fasta.gz -G /tmp/data/input/E.coli/genes/genes.gff -O /tmp/data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE_1K/ spades_output/ECOLI_IS220_QUAKE_1K/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE_1K/transposed_report.tsv 1000 0
+python3 ~/quast-1.3/quast.py -R /tmp/data/input/E.coli/MG1655-K12.fasta.gz -G /tmp/data/input/E.coli/genes/genes.gff -O /tmp/data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE_1K/ spades_output/ECOLI_IS220_QUAKE_1K/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE_1K/transposed_report.tsv 1000 0
 popd
--- a/assembler/src/test/teamcity/deprecated/spades_sc_mruber_pre.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_mruber_pre.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/MR
 
 rm -rf ~/quast-1.3/MRUBER_PRENORM/
 
-python ~/quast-1.3/quast.py -R data/input/M.ruber/ref.fasta -G data/input/M.ruber/MRU_genes.txt -o ~/quast-1.3/MRUBER_PRENORM/ /tmp/data/output/spades_output/MRUBER_PRENORM/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/M.ruber/ref.fasta -G data/input/M.ruber/MRU_genes.txt -o ~/quast-1.3/MRUBER_PRENORM/ /tmp/data/output/spades_output/MRUBER_PRENORM/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/MRUBER_PRENORM/transposed_report.tsv 49100 16 2152 75.6 65 21
+python3 src/test/teamcity/assess.py ~/quast-1.3/MRUBER_PRENORM/transposed_report.tsv 49100 16 2152 75.6 65 21
 exitlvl=$?
 popd
 
--- a/assembler/src/projects/mts/binners/gattaca.snake
+++ b/assembler/src/projects/mts/binners/gattaca.snake
@@ -32,8 +32,8 @@ rule gattaca:
     threads: THREADS
     log:     "binning/gattaca.log"
     message: "Running GATTACA clustering"
-    shell:   "set +u; source activate py27; set -u\n"
-             "python {SOFT}/gattaca/src/python/gattaca.py cluster --contigs {input.contigs}"
+    shell:   "set +u; source activate py37; set -u\n"
+             "python3 {SOFT}/gattaca/src/python/gattaca.py cluster --contigs {input.contigs}"
              " --coverage {input.profiles} --algorithm dirichlet --clusters {output} >{log} 2>&1\n"
              "rm -f assembly/splits/all_filtered.fasta.fai"
 
--- a/assembler/src/test/teamcity/deprecated/spades_sc_lane1_full.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_lane1_full.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/EC
 
 rm -rf ~/quast-1.3/ECOLI_SC_LANE_1/
 
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_LANE_1/ /tmp/data/output/spades_output/ECOLI_SC_LANE_1/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_LANE_1/ /tmp/data/output/spades_output/ECOLI_SC_LANE_1/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_LANE_1/transposed_report.tsv 108000 2 4080 96.4 4 0.7
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_LANE_1/transposed_report.tsv 108000 2 4080 96.4 4 0.7
 exitlvl=$?
 popd
 
--- a/assembler/src/tools/estimation_deprecated/README
+++ b/assembler/src/tools/estimation_deprecated/README
@@ -1,3 +1,3 @@
 Prerequisites:
 
-  sudo apt-get install python python-matplotlib python-numpy
+  sudo apt-get install python3 python3-matplotlib python3-numpy
--- a/assembler/src/test/teamcity/deprecated/bh_ecoli_1k.sh
+++ b/assembler/src/test/teamcity/deprecated/bh_ecoli_1k.sh
@@ -11,6 +11,6 @@ set -e
 pushd ../../../
 rm -rf spades_output/ECOLI_1K_TEAMCITY_BH
 ./spades.py --only-error-correction -1 ./data/input/E.coli/is220/cropped/s_6.first1000_1.fastq.gz -2 ./data/input/E.coli/is220/cropped/s_6.first1000_2.fastq.gz -o spades_output/ECOLI_1K_TEAMCITY_BH
-python src/tools/reads_utils/reads_quality.py -r test_dataset/reference_1K.fa.gz -o spades_output/ECOLI_1K_TEAMCITY_BH/reads_quality_results spades_output/ECOLI_1K_TEAMCITY_BH/corrected/dataset.info
-python src/test/teamcity/assess_reads.py spades_output/ECOLI_1K_TEAMCITY_BH/reads_quality_results/report.horizontal.tsv 100 100
+python3 src/tools/reads_utils/reads_quality.py -r test_dataset/reference_1K.fa.gz -o spades_output/ECOLI_1K_TEAMCITY_BH/reads_quality_results spades_output/ECOLI_1K_TEAMCITY_BH/corrected/dataset.info
+python3 src/test/teamcity/assess_reads.py spades_output/ECOLI_1K_TEAMCITY_BH/reads_quality_results/report.horizontal.tsv 100 100
 popd
--- a/assembler/src/test/teamcity/deprecated/spades_sc_lane1.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_lane1.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/EC
 
 rm -rf ~/quast-1.3/ECOLI_SC_LANE_1_BH_woHUMAN/
 
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_LANE_1_BH_woHUMAN/ /tmp/data/output/spades_output/ECOLI_SC_LANE_1_BH_woHUMAN/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_LANE_1_BH_woHUMAN/ /tmp/data/output/spades_output/ECOLI_SC_LANE_1_BH_woHUMAN/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_LANE_1_BH_woHUMAN/transposed_report.tsv 85000 7
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_LANE_1_BH_woHUMAN/transposed_report.tsv 85000 7
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/deprecated/spades_sc_mruber.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_mruber.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/MR
 
 rm -rf ~/quast-1.3/MRUBER/
 
-python ~/quast-1.3/quast.py -R data/input/M.ruber/ref.fasta -G data/input/M.ruber/MRU_genes.txt -o ~/quast-1.3/MRUBER/ /tmp/data/output/spades_output/MRUBER/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/M.ruber/ref.fasta -G data/input/M.ruber/MRU_genes.txt -o ~/quast-1.3/MRUBER/ /tmp/data/output/spades_output/MRUBER/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/MRUBER/transposed_report.tsv 20000 20 1500 50.0 30 10
+python3 src/test/teamcity/assess.py ~/quast-1.3/MRUBER/transposed_report.tsv 20000 20 1500 50.0 30 10
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/deprecated/spades_sc_pmarinus.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_pmarinus.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/PM
 
 rm -rf ~/quast-1.3/PMARINUS/
 
-python ~/quast-1.3/quast.py -R data/input/P.marinus/ref.fasta -o ~/quast-1.3/PMARINUS/ /tmp/data/output/spades_output/PMARINUS/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/P.marinus/ref.fasta -o ~/quast-1.3/PMARINUS/ /tmp/data/output/spades_output/PMARINUS/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/PMARINUS/transposed_report.tsv 292000 0 1612 95.3 3.4 1.5
+python3 src/test/teamcity/assess.py ~/quast-1.3/PMARINUS/transposed_report.tsv 292000 0 1612 95.3 3.4 1.5
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/deprecated/spades_sc_saureus_lane7.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_saureus_lane7.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/SA
 
 rm -rf ~/quast-1.3/SAUREUS_LANE_7/
 
-python ~/quast-1.3/quast.py -R data/input/S.aureus/USA300_FPR3757.fasta -G data/input/S.aureus/genes/bacteria_genes.txt -o ~/quast-1.3/SAUREUS_LANE_7/ /tmp/data/output/spades_output/SAUREUS_LANE_7/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/S.aureus/USA300_FPR3757.fasta -G data/input/S.aureus/genes/bacteria_genes.txt -o ~/quast-1.3/SAUREUS_LANE_7/ /tmp/data/output/spades_output/SAUREUS_LANE_7/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/SAUREUS_LANE_7/transposed_report.tsv 85000 7 2500 99.8 6 6
+python3 src/test/teamcity/assess.py ~/quast-1.3/SAUREUS_LANE_7/transposed_report.tsv 85000 7 2500 99.8 6 6
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/deprecated/spades_mc_is480.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_mc_is480.sh
@@ -1,4 +1,3 @@
-
 #!/bin/bash
 
 ############################################################################
@@ -13,6 +12,6 @@ pushd ../../../
 rm -rf /tmp/data/output/spades_output/ECOLI_IS480_QUAKE
 ./spades.py --only-assembler -k 21,33,55 -m 12 -1 data/input/E.coli/is480/ERR022075_1.cor.fastq.gz -2 data/input/E.coli/is480/ERR022075_2.cor.fastq.gz -s data/input/E.coli/is480/ERR022075_1.cor_single.fastq.gz -s data/input/E.coli/is480/ERR022075_2.cor_single.fastq.gz -o /tmp/data/output/spades_output/ECOLI_IS480_QUAKE
 rm -rf ~/quast-1.3/ECOLI_IS480_QUAKE/
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS480_QUAKE/  /tmp/data/output/spades_output/ECOLI_IS480_QUAKE/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS480_QUAKE/transposed_report.tsv 133000 4
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS480_QUAKE/  /tmp/data/output/spades_output/ECOLI_IS480_QUAKE/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS480_QUAKE/transposed_report.tsv 133000 4
 popd
--- a/assembler/src/test/teamcity/deprecated/spades_sc_jgi_lane7_pre.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_jgi_lane7_pre.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/EC
 
 rm -rf ~/quast-1.3/ECOLI_SC_JGI_LANE_7_PRENORM/
 
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_JGI_LANE_7_PRENORM/ /tmp/data/output/spades_output/ECOLI_SC_JGI_LANE_7_PRENORM/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_JGI_LANE_7_PRENORM/ /tmp/data/output/spades_output/ECOLI_SC_JGI_LANE_7_PRENORM/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_JGI_LANE_7_PRENORM/transposed_report.tsv 115000 4 4240 99.8 4 0.8
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_JGI_LANE_7_PRENORM/transposed_report.tsv 115000 4 4240 99.8 4 0.8
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/teamcity.py
+++ b/assembler/src/test/teamcity/teamcity.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015-2017 Saint Petersburg State University
@@ -30,7 +30,7 @@ from teamcity_support import *
 ### main ###
 try:
     if len(sys.argv) == 1:
-        command = 'python {} -h'.format(sys.argv[0])
+        command = 'python3 {} -h'.format(sys.argv[0])
         subprocess.call(command, shell=True)
         sys.exit(1)
 
--- a/assembler/src/test/teamcity/deprecated/spades_mc_is220.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_mc_is220.sh
@@ -1,4 +1,3 @@
-
 #!/bin/bash
 
 ############################################################################
@@ -13,6 +12,6 @@ pushd ../../../
 rm -rf /tmp/data/output/spades_output/ECOLI_IS220_QUAKE
 ./spades.py --generate-sam-file --only-assembler -m 12 -k 21,33,55 -1 data/input/E.coli/is220/s_6_1.cor.fastq.gz -2 data/input/E.coli/is220/s_6_2.cor.fastq.gz -s data/input/E.coli/is220/s_6_1.cor_single.fastq.gz -s data/input/E.coli/is220/s_6_2.cor_single.fastq.gz -o /tmp/data/output/spades_output/ECOLI_IS220_QUAKE
 rm -rf ~/quast-1.3/ECOLI_IS220_QUAKE/
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE/  /tmp/data/output/spades_output/ECOLI_IS220_QUAKE/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE/transposed_report.tsv 80000 3
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_IS220_QUAKE/  /tmp/data/output/spades_output/ECOLI_IS220_QUAKE/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_IS220_QUAKE/transposed_report.tsv 80000 3
 popd
--- a/assembler/src/test/teamcity/deprecated/spades_sc_jgi_lane7.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_jgi_lane7.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/EC
 
 rm -rf ~/quast-1.3/ECOLI_SC_JGI_LANE_7/
 
-python ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_JGI_LANE_7/ /tmp/data/output/spades_output/ECOLI_SC_JGI_LANE_7/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/E.coli/MG1655-K12.fasta.gz -G data/input/E.coli/genes/genes.gff -O data/input/E.coli/genes/operons.gff -o ~/quast-1.3/ECOLI_SC_JGI_LANE_7/ /tmp/data/output/spades_output/ECOLI_SC_JGI_LANE_7/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_JGI_LANE_7/transposed_report.tsv 115000 4 4260 99.8 3.2 0.7
+python3 src/test/teamcity/assess.py ~/quast-1.3/ECOLI_SC_JGI_LANE_7/transposed_report.tsv 115000 4 4260 99.8 3.2 0.7
 exitlvl=$?
 popd
 
--- a/assembler/src/test/teamcity/deprecated/spades_sc_phepa_pre.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_phepa_pre.sh
@@ -17,9 +17,9 @@ rm -rf /tmp/data/output/spades_output/PH
 
 rm -rf ~/quast-1.3/PHEPARINUS_PRENORM/
 
-python ~/quast-1.3/quast.py -R data/input/P.heparinus/ref.fasta -G data/input/P.heparinus/PHE_genes.txt -o ~/quast-1.3/PHEPARINUS_PRENORM/ /tmp/data/output/spades_output/PHEPARINUS_PRENORM/contigs.fasta
+python3 ~/quast-1.3/quast.py -R data/input/P.heparinus/ref.fasta -G data/input/P.heparinus/PHE_genes.txt -o ~/quast-1.3/PHEPARINUS_PRENORM/ /tmp/data/output/spades_output/PHEPARINUS_PRENORM/contigs.fasta
 
-python src/test/teamcity/assess.py ~/quast-1.3/PHEPARINUS_PRENORM/transposed_report.tsv 160000 9 3900 95.5 10.0 1.0
+python3 src/test/teamcity/assess.py ~/quast-1.3/PHEPARINUS_PRENORM/transposed_report.tsv 160000 9 3900 95.5 10.0 1.0
 exitlvl=$?
 popd
 
--- a/assembler/src/tools/estimation/run_real.sh
+++ b/assembler/src/tools/estimation/run_real.sh
@@ -1,3 +1,4 @@
+#!/bin/sh
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
 # Copyright (c) 2011-2014 Saint Petersburg Academic University
@@ -5,4 +6,4 @@
 # See file LICENSE for details.
 ############################################################################
 
-python real_cumulative.py ~/algorithmic-biology/assembler/data/debruijn/latest/contigs_before_enlarge.fasta 0.5 ~/algorithmic-biology/assembler/data/debruijn/latest/contigs_final.fasta 0.5 ../quality/velvet_paired55.fa 1 ../quality/velvet_unpaired55.fa 
+python3 real_cumulative.py ~/algorithmic-biology/assembler/data/debruijn/latest/contigs_before_enlarge.fasta 0.5 ~/algorithmic-biology/assembler/data/debruijn/latest/contigs_final.fasta 0.5 ../quality/velvet_paired55.fa 1 ../quality/velvet_unpaired55.fa 
--- a/assembler/src/tools/res_counter/run.pl
+++ b/assembler/src/tools/res_counter/run.pl
@@ -14,7 +14,7 @@ print "started...\n";
 
 my $stat_proc = fork;
 if ($stat_proc == 0) {
-  exec "python $script_dir/stats_counter.py $child 1>>rc_stats.txt 2>>rc_stats.txt";
+  exec "python3 $script_dir/stats_counter.py $child 1>>rc_stats.txt 2>>rc_stats.txt";
 }
 
 waitpid($child, 0);
--- a/assembler/src/test/teamcity/deprecated/bh_ecoli_mda_lane1.sh
+++ b/assembler/src/test/teamcity/deprecated/bh_ecoli_mda_lane1.sh
@@ -11,6 +11,6 @@ set -e
 pushd ../../../
 rm -rf /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH
 ./spades.py --sc --only-error-correction --12 ./data/input/E.coli/sc_lane_1/ecoli_mda_lane1.fastq.gz -m 160 -o /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH
-python src/tools/reads_utils/reads_quality.py -r data/input/E.coli/MG1655-K12.fasta.gz -o /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/reads_quality_results /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/corrected/dataset.info
-python src/test/teamcity/assess_reads.py /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/reads_quality_results/report.horizontal.tsv 90 97 # 97 97
+python3 src/tools/reads_utils/reads_quality.py -r data/input/E.coli/MG1655-K12.fasta.gz -o /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/reads_quality_results /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/corrected/dataset.info
+python3 src/test/teamcity/assess_reads.py /tmp/data/output/spades_output/ECOLI_MDA_LANE1_TEAMCITY_BH/reads_quality_results/report.horizontal.tsv 90 97 # 97 97
 popd
--- a/assembler/src/test/teamcity/update_threshold.py
+++ b/assembler/src/test/teamcity/update_threshold.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 ############################################################################
 # Copyright (c) 2015 Saint Petersburg State University
@@ -264,7 +264,7 @@ def check_args(args):
 ### main ###
 try:
     if len(sys.argv) == 1:
-        command = 'python {} -h'.format(sys.argv[0])
+        command = 'python3 {} -h'.format(sys.argv[0])
         subprocess.call(command, shell=True)
         sys.exit(1)
 
--- a/assembler/src/test/teamcity/deprecated/full_run.sh
+++ b/assembler/src/test/teamcity/deprecated/full_run.sh
@@ -1,10 +1,3 @@
-
-
-
-
-
-
-
 #!/bin/bash
 
 ############################################################################
@@ -26,7 +19,7 @@ mkdir $project_dir -p
 read line < $options_dir"spades.options"
 echo $line
 ./cpcfg
-python2.6 ./spades.py $line -o $project_dir --disable-gzip-output --mismatch-correction
+python3 ./spades.py $line -o $project_dir --disable-gzip-output --mismatch-correction
 
 read line < $options_dir"quast.options"
 echo $line
@@ -45,7 +38,7 @@ cp $work_contigs $dir$(date +%Y%m%d_%H%M
 cp $project_dir"/scaffolds.fasta" $dir$(date +%Y%m%d_%H%M%S)_scaf".fasta"
 
 
-python2.6 ~/quast-1.3/quast.py $work_contigs $line -o $project_dir"/quality_results/"
+python3 ~/quast-1.3/quast.py $work_contigs $line -o $project_dir"/quality_results/"
 rm $dir"/quast_all" -rf
 #echo $dir"*.fasta" $line -o $dir"/quast_all"
 dirtmp=$dir"tmp/"
@@ -60,7 +53,7 @@ for i in $dir*.fasta ; do
 #    echo $j
     if [ -f $j ] ;
     then
-      compare_res=$(python2.6 ~/algorithmic-biology/assembler/src/tools/contig_analysis/compare_fasta.py $i $j)
+      compare_res=$(python3 ~/algorithmic-biology/assembler/src/tools/contig_analysis/compare_fasta.py $i $j)
 #      echo $compare_res
       if [ $compare_res = "True" ]; 
       then
@@ -79,8 +72,8 @@ quast_line="$output_pref/quast-1.3/quast
 quast1_2_line="$output_pref/quast-1.2/quast.py -M 500 $dirtmp* $line -o $dir/quast1_2_all/"
 
 echo "$quast_line"
-python2.6 $quast_line >null
-python2.6 $quast1_2_line >null
+python3 $quast_line >null
+python3 $quast1_2_line >null
 
 ssh -n antipov@194.85.238.21 mkdir -p "/var/www/teamcity_runs/$1$2" &
 
@@ -98,7 +91,7 @@ do
   splitted_opts=$splitted_opts" "${opts[$i *  2 + 1]}
 done
 echo $splitted_opts
-python src/test/teamcity/assess.py $project_dir"quality_results/transposed_report.tsv" $splitted_opts
+python3 src/test/teamcity/assess.py $project_dir"quality_results/transposed_report.tsv" $splitted_opts
 rm $project_dir"/corrected/" -rf
 
 
--- a/assembler/src/test/teamcity/deprecated/spades_mc_bfaecium_ant.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_mc_bfaecium_ant.sh
@@ -12,6 +12,6 @@ pushd ../../../
 rm -rf /tmp/data/output/spades_output/BFAECIUM_QUAKE
 ./spades.py -k 21,33,55 -m 16 --only-assembler -1 data/input/B.faecium/std_left.cor.fastq.gz -2 data/input/B.faecium/std_right.cor.fastq.gz -s data/input/B.faecium/std_right.cor_single.fastq.gz -s data/input/B.faecium/std_left.cor_single.fastq.gz -o /tmp/data/output/spades_output/BFAECIUM_QUAKE
 rm -rf ~/quast-1.3/BFAECIUM_QUAKE/
-python ~/quast-1.3/quast.py -R /tmp/data/input/B.faecium/ref.fasta.gz -o ~/quast-1.3/BFAECIUM_QUAKE/ /tmp/data/output/spades_output/BFAECIUM_QUAKE/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/BFAECIUM_QUAKE/transposed_report.tsv 330000 0
+python3 ~/quast-1.3/quast.py -R /tmp/data/input/B.faecium/ref.fasta.gz -o ~/quast-1.3/BFAECIUM_QUAKE/ /tmp/data/output/spades_output/BFAECIUM_QUAKE/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/BFAECIUM_QUAKE/transposed_report.tsv 330000 0
 popd
--- a/assembler/src/test/teamcity/deprecated/spades_sc_phepa.sh
+++ b/assembler/src/test/teamcity/deprecated/spades_sc_phepa.sh
@@ -17,8 +17,8 @@ rm -rf /tmp/data/output/spades_output/PH
 
 rm -rf ~/quast-1.3/PHEPARINUS/
 
-python ~/quast-1.3/quast.py -R data/input/P.heparinus/ref.fasta -G data/input/P.heparinus/PHE_genes.txt -o ~/quast-1.3/PHEPARINUS/ /tmp/data/output/spades_output/PHEPARINUS/contigs.fasta
-python src/test/teamcity/assess.py ~/quast-1.3/PHEPARINUS/transposed_report.tsv 140000 6 4140 98.0 8.0 2.0
+python3 ~/quast-1.3/quast.py -R data/input/P.heparinus/ref.fasta -G data/input/P.heparinus/PHE_genes.txt -o ~/quast-1.3/PHEPARINUS/ /tmp/data/output/spades_output/PHEPARINUS/contigs.fasta
+python3 src/test/teamcity/assess.py ~/quast-1.3/PHEPARINUS/transposed_report.tsv 140000 6 4140 98.0 8.0 2.0
 exitlvl=$?
 popd
 
--- a/assembler/spades_dev.sh
+++ b/assembler/spades_dev.sh
@@ -8,5 +8,5 @@ mkdir -p bin;
 rm bin/*;
 cp build/release/debruijn/spades bin/spades;
 cp build/release/hammer/hammer bin/hammer;
-python spades.py "$@";
+python3 spades.py "$@";
 
--- a/assembler/src/tools/dataset_hammer
+++ b/assembler/src/tools/dataset_hammer
@@ -3,7 +3,7 @@
 DIR="$( cd "$( dirname "$0" )" && pwd )"
 BASE="$( cd "$( dirname "$0" )" && cd ../.. && pwd )"
 #pushd $BASE/data/input > /dev/null
-python $BASE/src/tools/dataset.py hammer $1
+python3 $BASE/src/tools/dataset.py hammer $1
 #src/tools/dataset_hammer /mnt/ace/acestorage/snikolenko/090408_ultrashort/09
 #src/tools/dataset_hammer /mnt/ace/acestorage/data/input/x5/makarich.fbb.msu.ru/run1_fca/Quaked/
 #src/tools/dataset_hammer ~/temp/02
--- a/assembler/src/spades_pipeline/truspades/generate_quality.py
+++ b/assembler/src/spades_pipeline/truspades/generate_quality.py
@@ -52,7 +52,7 @@ def CountContigQuality(contigs, qual):
         for pos in range(len(contigs[i])):
             q = qual[i][pos]
             if q[1] != 0:
-                qual_list[pos] = chr(q[0] / q[1])
+                qual_list[pos] = chr(q[0] // q[1])
             else:
                 cnt += 1
         contigs[i].qual = "".join(qual_list)
