Skip to content
Snippets Groups Projects
Commit cc0b8e05 authored by Venkat Malladi's avatar Venkat Malladi
Browse files

generatlized strip_extension and added tests.

parent 6b2c56dc
Branches
Tags
No related merge requests found
...@@ -59,15 +59,6 @@ def get_args(): ...@@ -59,15 +59,6 @@ def get_args():
## Functions ## Functions
def strip_extensions(filename, extensions):
'''Strips extensions to get basename of file.'''
basename = filename
for extension in extensions:
basename = basename.rpartition(extension)[0] or basename
return basename
def check_tools(): def check_tools():
'''Checks for required componenets on user system''' '''Checks for required componenets on user system'''
...@@ -92,7 +83,7 @@ def check_tools(): ...@@ -92,7 +83,7 @@ def check_tools():
def generate_sa(fastq, reference): def generate_sa(fastq, reference):
'''Use BWA to generate Suffix Arrays.''' '''Use BWA to generate Suffix Arrays.'''
fastq_basename = os.path.basename(strip_extensions(fastq, STRIP_EXTENSIONS)) fastq_basename = os.path.basename(utils.strip_extensions(fastq, STRIP_EXTENSIONS))
bwa_aln_params = '-q 5 -l 32 -k 2' bwa_aln_params = '-q 5 -l 32 -k 2'
...@@ -184,16 +175,16 @@ def main(): ...@@ -184,16 +175,16 @@ def main():
# Run alignment for either PE or SE # Run alignment for either PE or SE
if paired: # paired-end data if paired: # paired-end data
fastq_r1_basename = os.path.basename( fastq_r1_basename = os.path.basename(
strip_extensions(fastq[0], STRIP_EXTENSIONS)) utils.strip_extensions(fastq[0], STRIP_EXTENSIONS))
fastq_r2_basename = os.path.basename( fastq_r2_basename = os.path.basename(
strip_extensions(fastq[1], STRIP_EXTENSIONS)) utils.strip_extensions(fastq[1], STRIP_EXTENSIONS))
fastq_basename = fastq_r1_basename + fastq_r2_basename fastq_basename = fastq_r1_basename + fastq_r2_basename
bam_filename = align_pe(fastq, sai, reference, fastq_basename) bam_filename = align_pe(fastq, sai, reference, fastq_basename)
else: else:
fastq_basename = os.path.basename( fastq_basename = os.path.basename(
strip_extensions(fastq[0], STRIP_EXTENSIONS)) utils.strip_extensions(fastq[0], STRIP_EXTENSIONS))
bam_filename = align_se(fastq, sai, reference, fastq_basename) bam_filename = align_se(fastq, sai, reference, fastq_basename)
......
...@@ -46,3 +46,13 @@ def run_pipe(steps, outfile=None): ...@@ -46,3 +46,13 @@ def run_pipe(steps, outfile=None):
p = p_next p = p_next
out, err = p.communicate() out, err = p.communicate()
return out, err return out, err
def strip_extensions(filename, extensions):
'''Strips extensions to get basename of file.'''
basename = filename
for extension in extensions:
basename = basename.rpartition(extension)[0] or basename
return basename
...@@ -6,6 +6,8 @@ import shlex ...@@ -6,6 +6,8 @@ import shlex
import utils import utils
STRIP_EXTENSIONS = ['.gz', '.fq', '.fastq', '.fa', '.fasta']
@pytest.fixture @pytest.fixture
def steps(): def steps():
steps = [] steps = []
...@@ -51,3 +53,18 @@ def test_run_last_step_file(steps_2, capsys, tmpdir): ...@@ -51,3 +53,18 @@ def test_run_last_step_file(steps_2, capsys, tmpdir):
output, errors = capsys.readouterr() output, errors = capsys.readouterr()
assert "last step shlex" in output assert "last step shlex" in output
assert check_output in tmp_outfile.read() assert check_output in tmp_outfile.read()
def test_strip_extensions():
filename = utils.strip_extensions('ENCFF833BLU.fastq.gz',STRIP_EXTENSIONS)
assert filename == 'ENCFF833BLU'
def test_strip_extensions_not_valid():
filename = utils.strip_extensions('ENCFF833BLU.not.valid',STRIP_EXTENSIONS)
assert filename == 'ENCFF833BLU.not.valid'
def test_strip_extensions_missing_basename():
filename = utils.strip_extensions('.fastq.gz',STRIP_EXTENSIONS)
assert filename == '.fastq'
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment