...
  View open merge request
Commits (6)
......@@ -868,6 +868,7 @@ def run_pre_process(pre_process_id, sequence_file_id, clean_before=True, clean_a
cmd = cmd.replace( "&file2&", defs.DIR_SEQUENCES + sequence_file.data_file2)
cmd = cmd.replace( "&result&", output_file)
cmd = cmd.replace("&pear&", defs.DIR_PEAR)
cmd = cmd.replace("&flash2&", defs.DIR_FLASH2)
# Example of template to add some preprocess shortcut
# cmd = cmd.replace("&preprocess_template&", defs.DIR_preprocess_template)
# Where &preprocess_template& is the shortcut to change and
......
......@@ -44,6 +44,7 @@ DIR_FUSE = '../../tools'
DIR_MIXCR = '../../'
DIR_IGREC = '../../'
DIR_PEAR = '../../'
DIR_FLASH2 = '../../'
DIR_CLONEDB = '../../../clonedb'
### Directory that store the germlines used by Vidjil
......
from os import listdir, path, makedirs
from os.path import isfile, join
import sys
import shutil
import gzip
import subprocess
import argparse
import shlex
import os
parser = argparse.ArgumentParser(description='Use FLASH2 read merger to make a new fastq file and keep unmerged reads')
parser.add_argument("flash2_dir", help="path to flash2 executable")
parser.add_argument("file_R1", help="forward read file")
parser.add_argument("file_R2", help="reverse read file")
parser.add_argument("output_file", help="output file")
parser.add_argument("-r1", "--keep_r1", help="keep unmerged forward reads", action="store_true")
parser.add_argument("-r2", "--keep_r2", help="keep unmerged reverse reads", action="store_true")
parser.add_argument("-f", "--flash2-options", help="additional options passed to FLASH2", default="")
parser.add_argument("-k", "--keep", help="keep temporary files (may take lots of disk space in the end)", action = 'store_true')
args = parser.parse_args()
f_r1 = args.file_R1
f_r2 = args.file_R2
f_out = args.output_file
paths = os.path.split(f_out)
path_head = paths[0]
path_file = paths[1]
print( "args: %s" % args)
print( "###" )
print( "f_r1: %s" % f_r1)
print( "f_r2: %s" % f_r2)
print( "f_out: %s" % f_out)
print( "path_head: %s" % path_head)
print( "path_file: %s" % path_file)
exit_code = subprocess.call(['%s/flash2' % args.flash2_dir,
f_r1, f_r2,
"-d", path_head,
"-o", path_file,
"-t", "1",
# + shlex.split(args.flash2_options)
])
if exit_code > 0:
raise EnvironmentError("Flash2 failed")
try :
with gzip.open(f_out, 'w') as outFile:
with open(f_out+'.extendedFrags.fastq', 'rb') as f1:
shutil.copyfileobj(f1, outFile)
if (args.keep_r1):
with open(f_out+'.notCombined_1.fastq', 'rb') as f2:
shutil.copyfileobj(f2, outFile)
if (args.keep_r2):
with open(f_out+'.notCombined_2.fastq', 'rb') as f3:
shutil.copyfileobj(f3, outFile)
if not args.keep:
os.remove(f_out+'.extendedFrags.fastq')
os.remove(f_out+'.notCombined_1.fastq')
os.remove(f_out+'.notCombined_2.fastq')
## Remove the histogram provide by Flash2
os.remove(f_out+'.hist')
os.remove(f_out+'.histogram')
except IOError :
os.remove(f_out)
raise