#!/usr/bin/env python3
# -*- coding:utf-8 -*-
################################################################################
# Created Date : Tuesday September 29th 2020                                   #
# Author: Jingxin Fu (jingxinfu.tj@dgmail.com)                                  #
# ----------                                                                   #
# Last Modified: Tuesday September 29th 2020 5:03:56 pm                        #
# Modified By: Jingxin Fu (jingxinfu.tj@gmail.com)                             #
# ----------                                                                   #
# Copyright (c) Jingxin Fu 2020                                                #
################################################################################


__doc__=""" 
""" 
import os 
import subprocess
import argparse
import scanpy as sc

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument(
        'rds', help="Use - for STDIN or path for seurat obj(*.rds file)")
    parser.add_argument('-o', '--output', required=True,
                        help='Specify path to write the results')

    parser.add_argument('--RNA', action='store_true',
                        help='Whether is store in the RNA slot')
    parser.add_argument('--assay',default='RNA',help='Which assay you want to save?')
    args = parser.parse_args()
    exec_path = os.path.abspath(os.path.dirname(__file__))
    print('==Convert RDS to Loom==')
    cmds = f"Rscript {exec_path}/seuratToloom.R {args.rds} --assay {args.assay} -o {args.output}.loom"
    if args.RNA:
        cmds = cmds+' --RNA'

    subprocess.run(cmds,shell=True)
    print('==Convert Loom to Adata==')
    adata = sc.read_loom(args.output+'.loom')
    adata.write(args.output+'.h5ad')
    print('==Remove Loom file==')
    subprocess.run(f"rm -f {args.output}.loom", shell=True)
    print('==Finish==')
    
