Anton Goloborodko avatar Anton Goloborodko committed 06e335e

mapping.py: fix a bug with subprocess throwing OSError exception

Comments (0)

Files changed (1)

src/hiclib/mapping.py

         else:
             bash_reader = 'cat'
     else:
-        bash_reader = os.path.abspath(os.path.expanduser(bash_reader))
-        if not os.path.isfile(bash_reader.split()[0]):
-            raise Exception(
-                'The bash reader is not found '
-                'at the specified location {0}.'.format(bash_reader))
+        if subprocess.call(['which', bash_reader]) != 0:
+            bash_reader = os.path.abspath(os.path.expanduser(bash_reader))
+            if not os.path.isfile(bash_reader.split()[0]):
+                raise Exception(
+                    'The bash reader is not found '
+                    'at the specified location {0}.'.format(bash_reader))
 
     reading_command = bash_reader.split() + [fastq_path, ]
 
         log.info('Bash reader is not trivial, read input with %s, store in %s',
                  ' '.join(reading_command), converted_fastq)
         converting_process = subprocess.Popen(
-            reading_command,
-            stdout=open(converted_fastq, 'w'))
+            ' '.join(reading_command),
+            stdout=open(converted_fastq, 'w'),
+            shell=True)
         converting_process.wait()
 
         kwargs['bash_reader'] = 'cat'
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.