Mercurial > repos > jdv > scrappie
diff scrappie_raw.py @ 0:30c2b84b4117 draft
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/scrappie commit bf5788ad5a3293446a50a3246b44ba09174c9b71
author | jdv |
---|---|
date | Wed, 30 Aug 2017 02:55:35 -0400 |
parents | |
children | 632c50fe83ba |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scrappie_raw.py Wed Aug 30 02:55:35 2017 -0400 @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 + +import sys, os +import glob +import tarfile +import subprocess +import shutil +import h5py +import numpy as np + +def main(): + tar_file = sys.argv[1] + out_file = sys.argv[2] + threads = sys.argv[3] + + extract_fast5(tar_file) + with open(out_file, "w") as outfile: + subprocess.call(["scrappie", + "raw", + "--threads", threads, + "--outformat", "fasta", + "in_dir" ], + stdout=outfile ) + +def extract_fast5(fn): + + try: + in_dir = "in_dir" + if not os.path.exists(in_dir): + os.makedirs(in_dir) + + tar = tarfile.open(fn, mode='r') + tar.extractall(path=in_dir) + + files = glob.glob( + os.path.join(in_dir, "**", "*.fast5"), + recursive=True + ) + if len(files) < 1: + raise ValueError('No FAST5 files found') + for f in files: + shutil.copy(f, in_dir) + + except OSError as e: + print("Unexpected error:", e.strerror) + raise + + except: + print("Unexpected error:", sys.exc_info()[0]) + raise + +if __name__ == "__main__" : + main()