mode = int(sys.argv[1])

    clusterUtil = MetabolicReconstructionPipeline_ClusterUtil.MetabolicReconstructionPipeline_ClusterUtil()
    clusterUtil.initialize(orgListFile, orgFastaDir,  orgBlastResDir, jointBlastDir, orgGTGBlastResDir, GTGBestHitsDir, GTGKNNDir, orgIPRScanDir, InterProScan_EC_RAW_results, moveToDir)

    if mode == 0:

        pathToSeqs = NGS_Util.createFilePath(moveToDir, "data/org_sequence_db/")        
        preProcess = MetabolicReconstructionPipeline_PreProcess.MetabolicReconstructionPipeline_PreProcess()
        preProcess.initialize(uniprot_fasta, uniprot_dust, uniprot_blast_db,  nrdb40_fasta, nrdb40_dust, nrdb40_blast_db, orgListFile, orgFastaDir, seq_org_list, orgBlastDBDir, orgBlastDustDir, ec_files, uniprot_sprot_dat, keggAtomMapsDataDir )
        preProcess.preProcess()

        successStat=True
        print("\nChecking input files that need to be downloaded ...............")
        successStat = successStat and NGS_Util.checkFile(uniprot_fasta)
        successStat = successStat and NGS_Util.checkFile(uniprot_sprot_dat)
        successStat = successStat and NGS_Util.checkFile(ec2go)

        print("\nChecking input files that need to be extracted for GTG ...............")
        successStat = successStat and NGS_Util.checkFile(nrdb40_fasta)
        successStat = successStat and NGS_Util.checkFile(nrdb40_dust)

        print("\n")
        if not successStat:
            raise Exception("Missing required input files")
      
        print("\nChecking Uniprot BLAST input...............")
        successStat = successStat and NGS_Util.checkFile(uniprot_blast_db + ".phd")
        successStat = successStat and NGS_Util.checkFile(uniprot_blast_db + ".psq")
        successStat = successStat and NGS_Util.checkFile(ec_files)