0
|
1 import subprocess, os, sys, shutil, tempfile, os.path
|
|
2 from os.path import basename, splitext
|
|
3
|
|
4 ## inputs
|
|
5 kmer_value = sys.argv[7]
|
|
6 smallc_value = sys.argv[8]
|
|
7 bigc_value = sys.argv[9]
|
|
8 output_contex_value = sys.argv[10]
|
|
9 counts_value = sys.argv[11]
|
|
10 input_dat = sys.argv[12:len(sys.argv):2] # contains filename1... filenameq
|
|
11 input_ext = sys.argv[13:len(sys.argv):2] # contains extension1... extensionq
|
|
12
|
|
13 ## tmp directory
|
|
14 tmp_dir = tempfile.mkdtemp(prefix='kissplice-galaxy.')
|
|
15
|
|
16 ## command line (init)
|
|
17 command_line = []
|
|
18 command_line.append("kissplice")
|
|
19
|
|
20 ## symlink for .fasta/q (extension required)
|
|
21 ## command line built with -r option
|
|
22 identifier = ""
|
|
23 for i in range(0,len(input_dat)):
|
|
24 tmp_input_fasta = os.path.join(tmp_dir, 'input'+str(i)+'.'+input_ext[i])
|
|
25 identifier += 'input'+str(i)+'_'
|
|
26 os.symlink(input_dat[i], tmp_input_fasta)
|
|
27 command_line.append("-r")
|
|
28 command_line.append(tmp_input_fasta)
|
|
29
|
|
30 ## command line (end)
|
|
31 opath=tmp_dir+"/results"
|
|
32 nocontext = ""
|
|
33 nosnp = ""
|
|
34 if output_contex_value == "yes":
|
|
35 command_line.extend(["-k", kmer_value,
|
|
36 "-c", smallc_value, "-C", bigc_value,
|
|
37 "--counts", counts_value, "--output-context",
|
|
38 "-o", opath, "-s"])
|
|
39 else:
|
|
40 command_line.extend(["-k", kmer_value,
|
|
41 "-c", smallc_value, "-C", bigc_value,
|
|
42 "--counts", counts_value,
|
|
43 "-o", opath, "-s"])
|
|
44
|
|
45 ## running kissplice
|
|
46 p=subprocess.Popen(command_line,
|
|
47 stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
48 stdoutput = p.communicate()
|
|
49
|
|
50 ## outputs
|
|
51 output_f1=sys.argv[1]
|
|
52 out1=open(output_f1, 'w' )
|
|
53 out1.write(stdoutput[0])
|
|
54 out1.close()
|
|
55
|
|
56 output_type0=sys.argv[2]
|
|
57 output_type1=sys.argv[3]
|
|
58 output_type2=sys.argv[4]
|
|
59 output_type3=sys.argv[5]
|
|
60 output_type4=sys.argv[6]
|
|
61
|
|
62 result_type0 = opath+"/"+"results_"+identifier+"k"+kmer_value+"_coherents_type_0.fa"
|
|
63 result_type1 = opath+"/"+"results_"+identifier+"k"+kmer_value+"_coherents_type_1.fa"
|
|
64 result_type2 = opath+"/"+"results_"+identifier+"k"+kmer_value+"_coherents_type_2.fa"
|
|
65 result_type3 = opath+"/"+"results_"+identifier+"k"+kmer_value+"_coherents_type_3.fa"
|
|
66 result_type4 = opath+"/"+"results_"+identifier+"k"+kmer_value+"_coherents_type_4.fa"
|
|
67
|
|
68 shutil.move(result_type0, output_type0)
|
|
69 shutil.move(result_type1, output_type1)
|
|
70 shutil.move(result_type2, output_type2)
|
|
71 shutil.move(result_type3, output_type3)
|
|
72 shutil.move(result_type4, output_type4)
|
|
73
|
|
74 ## cleaning
|
|
75 shutil.rmtree(tmp_dir)
|