def SetupPlotTypesOutfiles(): """Setup output file names for plot types """ OptionsInfo["OutfilesList"] = [] OptionsInfo["OutfilesList"].append(OptionsInfo["Outfile"]) OptionsInfo["PlotTypesInfo"]["Outfiles"] = {} for PlotType in OptionsInfo["PlotTypesInfo"]["Types"]: OptionsInfo["PlotTypesInfo"]["Outfiles"][PlotType] = None if not OptionsInfo["MultipleOutFiles"]: return FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Outfile"]) OutfileRoot = FileName OutfileExt = FileExt for PlotType in OptionsInfo["PlotTypesInfo"]["Types"]: PlotOutfile = "%s_%s.%s" % (OutfileRoot, PlotType, OutfileExt) if os.path.exists(PlotOutfile): if not OptionsInfo["Overwrite"]: MiscUtil.PrintError( "The plot output file, %s, already exist. Use option \"--ov\" or \"--overwrite\" and try again.\n" % (PlotOutfile)) OptionsInfo["PlotTypesInfo"]["Outfiles"][PlotType] = PlotOutfile OptionsInfo["OutfilesList"].append(PlotOutfile)
def SetupCategoryOutfiles(): """Setup output file names for different categories of phi and psi angles. """ # Initialize... OptionsInfo["OutfilesList"] = [] OptionsInfo["OutfilesList"].append(OptionsInfo["Outfile"]) OptionsInfo["Categories"] = ["General", "Glycine", "Proline", "PreProline"] OptionsInfo["CategoriesOutfiles"] = {} for Category in OptionsInfo["Categories"]: OptionsInfo["CategoriesOutfiles"][Category] = None if not OptionsInfo["MultipleOutFiles"]: return FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Outfile"]) OutfileRoot = FileName OutfileExt = FileExt for Category in OptionsInfo["Categories"]: CategoryOutfile = "%s_%s.%s" % (OutfileRoot, Category, OutfileExt) if os.path.exists(CategoryOutfile): if not OptionsInfo["Overwrite"]: MiscUtil.PrintError("The category output file, %s, already exist. Use option \"--ov\" or \"--overwrite\" and try again.\n" % (CategoryOutfile)) OptionsInfo["CategoriesOutfiles"][Category] = CategoryOutfile OptionsInfo["OutfilesList"].append(CategoryOutfile)
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters("--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters("--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["CountMode"] = False if re.match("^count$", Options["--mode"], re.I): OptionsInfo["CountMode"] = True # Setup outfile for writing out duplicates... OptionsInfo["DuplicatesOutfile"] = "" if not OptionsInfo["CountMode"] : FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Outfile"]) OptionsInfo["DuplicatesOutfile"] = "%sDuplicates.%s" % (FileName, FileExt) OptionsInfo["UseChirality"] = False if re.match("^yes$", Options["--useChirality"], re.I): OptionsInfo["UseChirality"] = True
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters( "--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters( "--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["CountMode"] = True if re.match("^count$", Options["--mode"], re.I) else False # Setup outfile for writing out molecule number for invalid molecules... OptionsInfo["InvalidMolsOutfile"] = "" if not OptionsInfo["CountMode"]: FileDir, FileName, FileExt = MiscUtil.ParseFileName( OptionsInfo["Outfile"]) OptionsInfo["InvalidMolsOutfile"] = "%sInvalidMols.csv" % (FileName)
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters("--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters("--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) FileDir, FileName, FileExt = MiscUtil.ParseFileName(Options["--outfile"]) OutfileFiltered = "%s_Filtered.%s" % (FileName, FileExt) OptionsInfo["OutfileFiltered"] = OutfileFiltered OptionsInfo["OutfileFilteredMode"] = True if re.match("^yes$", Options["--outfileFiltered"], re.I) else False OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["CountMode"] = True if re.match("^count$", Options["--mode"], re.I) else False OptionsInfo["NegateMatch"] = True if re.match("^yes$", Options["--negate"], re.I) else False OptionsInfo["MPMode"] = True if re.match("^yes$", Options["--mp"], re.I) else False OptionsInfo["MPParams"] = MiscUtil.ProcessOptionMultiprocessingParameters("--mpParams", Options["--mpParams"]) OptionsInfo["AlertsMode"] = Options["--alertsMode"] ProcessChEMBLAlertsMode()
def RetrieveRefFileInfo(): """Retrieve information for ref file.""" RefFileInfo = {} RefFile = OptionsInfo["RefFileName"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(RefFile) RefFileRoot = FileName if re.match("^FirstInputFile$", OptionsInfo["AlignRefFile"], re.I): ChainIDs = OptionsInfo["InfilesInfo"]["ChainIDs"][0] else: MiscUtil.PrintInfo( "\nRetrieving chains information for alignment reference file %s..." % RefFile) ChainIDs = RetrieveChainIDs(RefFile, RefFileRoot) if not len(ChainIDs): if re.match("^FirstChain$", OptionsInfo["AlignMode"], re.I): MiscUtil.PrintError( "The align mode, %s, can't be used for aligning chains: No non-empty chain IDs found in input file." % (OptionsInfo["AlignMode"])) RefFileInfo["RefFileName"] = RefFile RefFileInfo["RefFileRoot"] = RefFileRoot RefFileInfo["PyMOLObjectName"] = "AlignRef_%s" % RefFileRoot RefFileInfo["ChainIDs"] = ChainIDs OptionsInfo["RefFileInfo"] = RefFileInfo
def ListFileInfo(Infile): """List information for macromolecules in a file.""" FileDir, FileName, FileExt = MiscUtil.ParseFileName(Infile) MolName = FileName # Load infile... pymol.cmd.load(Infile, MolName) ChainIDs = PyMOLUtil.GetChains(MolName) ListHeaderInfo(Infile) ListChainsInfo(MolName, ChainIDs) ListChainsResiduesInfo(MolName, ChainIDs) ListLigandsInfo(MolName, ChainIDs) ListSolventsInfo(MolName, ChainIDs) ListInorganicsInfo(MolName, ChainIDs) ListPocketsInfo(MolName, ChainIDs) ListInterfaceResiduesInfo(MolName, ChainIDs) ListSurfaceResiduesInfo(MolName, ChainIDs) ListPhiPsiAnglesInfo(MolName, ChainIDs) ListBoundingBoxInfo(MolName) # Delete infile object... pymol.cmd.delete(MolName) ListFileSizeAndModificationInfo(Infile)
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Infile"]) OptionsInfo["InfileRoot"] = FileName OptionsInfo["Outfile"] = Options["--outfile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Outfile"]) OptionsInfo["OutfileRoot"] = FileName OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["OutDelim"] = " " if MiscUtil.CheckFileExt(OptionsInfo["Outfile"], "csv"): OptionsInfo["OutDelim"] = "," elif MiscUtil.CheckFileExt(OptionsInfo["Outfile"], "tsv txt"): OptionsInfo["OutDelim"] = "\t" else: MiscUtil.PrintError( "The file name specified , %s, for option \"--outfile\" is not valid. Supported file formats: csv tsv txt\n" % (OptionsInfo["Outfile"])) OptionsInfo["OutMode"] = Options["--outMode"] OptionsInfo["MultipleOutFiles"] = True if re.match( "^MultipleFiles$", OptionsInfo["OutMode"], re.I) else False OptionsInfo["OutChainID"] = True if re.match( "^Yes$", Options["--outChainID"], re.I) else False OptionsInfo["OutCategory"] = True if re.match( "^Yes$", Options["--outCategory"], re.I) else False OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["Precision"] = int(Options["--precision"]) RetrieveInfileInfo() OptionsInfo["ChainIDs"] = Options["--chainIDs"] ProcessChainIDs() SetupCategoryOutfiles()
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["CombineMatches"] = Options["--combineMatches"] OptionsInfo["CombineMatchResults"] = True if re.match("^No$", Options["--combineMatches"], re.I): OptionsInfo["CombineMatchResults"] = False if Options["--outfile"]: FileDir, FileName, FileExt = MiscUtil.ParseFileName( Options["--outfile"]) OptionsInfo["OutfileBasename"] = FileName OptionsInfo["OutfileExt"] = FileExt OptionsInfo["CombineOperator"] = Options["--combineOperator"] OptionsInfo["AndCombineOperatorMode"] = True if re.match("^or$", Options["--combineOperator"], re.I): OptionsInfo["AndCombineOperatorMode"] = False OptionsInfo["GroupNamesFile"] = None if not re.match("^auto$", Options["--groupNamesFile"], re.I): OptionsInfo["GroupNamesFile"] = Options["--groupNamesFile"] OptionsInfo["FunctionalGroups"] = Options["--functionalGroups"] OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters( "--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters( "--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["CountMode"] = False if re.match("^count$", Options["--mode"], re.I): OptionsInfo["CountMode"] = True OptionsInfo["MPMode"] = True if re.match("^yes$", Options["--mp"], re.I) else False OptionsInfo["MPParams"] = MiscUtil.ProcessOptionMultiprocessingParameters( "--mpParams", Options["--mpParams"]) OptionsInfo["UseChirality"] = False if re.match("^yes$", Options["--useChirality"], re.I): OptionsInfo["UseChirality"] = True
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters( "--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters( "--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["Mode"] = Options["--mode"] OptionsInfo["UseGraphFrameworks"] = False if re.match("^GraphFrameworks$", OptionsInfo["Mode"], re.I): OptionsInfo["UseGraphFrameworks"] = True OptionsInfo["RemoveDuplicates"] = Options["--removeDuplicates"] OptionsInfo["RemoveDuplicateFrameworks"] = False if re.match("^Yes$", OptionsInfo["RemoveDuplicates"], re.I): OptionsInfo["RemoveDuplicateFrameworks"] = True # Setup outfile for writing out duplicates... OptionsInfo["DuplicatesOutfile"] = "" if OptionsInfo["RemoveDuplicateFrameworks"]: FileDir, FileName, FileExt = MiscUtil.ParseFileName( OptionsInfo["Outfile"]) OptionsInfo["DuplicatesOutfile"] = "%sDuplicates.%s" % (FileName, FileExt) OptionsInfo["Sort"] = Options["--sort"] OptionsInfo["SortFrameworks"] = False if re.match("^Yes$", OptionsInfo["Sort"], re.I): OptionsInfo["SortFrameworks"] = True OptionsInfo["SortOrder"] = Options["--sortOrder"] OptionsInfo["DescendingSortOrder"] = False if re.match("^Descending$", OptionsInfo["SortOrder"], re.I): OptionsInfo["DescendingSortOrder"] = True OptionsInfo["UseChirality"] = False if re.match("^yes$", Options["--useChirality"], re.I): OptionsInfo["UseChirality"] = True
def RetrieveInfilesInfo(InfilesMode): """Retrieve information for input files.""" if re.match("^ProbeFiles$", InfilesMode, re.I): MiscUtil.PrintInfo("Retrieving information for probe files...") InfilesNames = OptionsInfo["ProbeFilesNames"] NameSuffix = "_Probe" elif re.match("^RefFiles$", InfilesMode, re.I): MiscUtil.PrintInfo("Retrieving information for reference files...") InfilesNames = OptionsInfo["RefFilesNames"] NameSuffix = "_Ref" else: MiscUtil.PrintError("Internal Error: Unknown infiles mode: %s" % InfilesMode) InfilesInfo = {} InfilesInfo["FilesNames"] = [] InfilesInfo["FilesRoots"] = [] InfilesInfo["ChainIDs"] = [] InfilesInfo["PyMOLObjectNames"] = [] for Infile in InfilesNames: MiscUtil.PrintInfo( "\nRetrieving chains information for input file %s..." % Infile) FileDir, FileName, FileExt = MiscUtil.ParseFileName(Infile) InfileRoot = FileName ChainIDs = RetrieveChainIDs(Infile, InfileRoot) if not len(ChainIDs): if re.match("^FirstChain$", OptionsInfo["AlignMode"], re.I): MiscUtil.PrintError( "The align mode, %s, can't be used for calculating RMSD: No non-empty chain IDs found in input file." % (OptionsInfo["AlignMode"])) InfilesInfo["FilesNames"].append(Infile) InfilesInfo["FilesRoots"].append(InfileRoot) InfilesInfo["ChainIDs"].append(ChainIDs) Name = "%s%s" % (InfileRoot, NameSuffix) InfilesInfo["PyMOLObjectNames"].append(Name) if re.match("^ProbeFiles$", InfilesMode, re.I): OptionsInfo["ProbeFilesInfo"] = InfilesInfo elif re.match("^RefFiles$", InfilesMode, re.I): OptionsInfo["RefFilesInfo"] = InfilesInfo
def RetrieveInfilesInfo(): """Retrieve information for input files.""" InfilesInfo = {} InfilesInfo["InfilesNames"] = [] InfilesInfo["InfilesRoots"] = [] InfilesInfo["ChainIDs"] = [] InfilesInfo["PyMOLObjectNames"] = [] InfilesInfo["OutfilesNames"] = [] OutSuffix = OptionsInfo["OutSuffix"] for Infile in OptionsInfo["InfilesNames"]: MiscUtil.PrintInfo( "\nRetrieving chains information for input file %s..." % Infile) FileDir, FileName, FileExt = MiscUtil.ParseFileName(Infile) InfileRoot = FileName ChainIDs = RetrieveChainIDs(Infile, InfileRoot) if not len(ChainIDs): if re.match("^FirstChain$", OptionsInfo["AlignMode"], re.I): MiscUtil.PrintError( "The align mode, %s, can't be used for aligning chains: No non-empty chain IDs found in input file." % (OptionsInfo["AlignMode"])) InfilesInfo["InfilesNames"].append(Infile) InfilesInfo["InfilesRoots"].append(InfileRoot) InfilesInfo["ChainIDs"].append(ChainIDs) InfilesInfo["PyMOLObjectNames"].append(InfileRoot) # Setup outfile name... Outfile = "%s%s.pdb" % (InfileRoot, OutSuffix) InfilesInfo["OutfilesNames"].append(Outfile) if os.path.exists(Outfile): if not OptionsInfo["Overwrite"]: MiscUtil.PrintError( "\nThe output file, %s, already exist. Use option \"--ov\" or \"--overwrite\" and try again.\n" % (Outfile)) OptionsInfo["InfilesInfo"] = InfilesInfo
def RetrieveInfilesInfo(): """Retrieve information for input files.""" InfilesInfo = {} InfilesInfo["InfilesNames"] = [] InfilesInfo["InfilesRoots"] = [] InfilesInfo["ChainsAndLigandsInfo"] = [] for Infile in OptionsInfo["InfilesNames"]: FileDir, FileName, FileExt = MiscUtil.ParseFileName(Infile) InfileRoot = FileName ChainsAndLigandInfo = PyMOLUtil.GetChainsAndLigandsInfo(Infile, InfileRoot) InfilesInfo["InfilesNames"].append(Infile) InfilesInfo["InfilesRoots"].append(InfileRoot) InfilesInfo["ChainsAndLigandsInfo"].append(ChainsAndLigandInfo) OptionsInfo["InfilesInfo"] = InfilesInfo
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Mode"] = Options["--mode"] OptionsInfo["ChainsMode"] = False if re.match("^Chains$", OptionsInfo["Mode"], re.I): OptionsInfo["ChainsMode"] = True OptionsInfo["LigandFileFormat"] = Options["--ligandFileFormat"] LigandFileExt = "mol" if re.match("^PDB$", OptionsInfo["LigandFileFormat"], re.I): LigandFileExt = "pdb" elif re.match("^(SD|SDF)$", OptionsInfo["LigandFileFormat"], re.I): LigandFileExt = "sdf" elif re.match("^MOL$", OptionsInfo["LigandFileFormat"], re.I): LigandFileExt = "mol" OptionsInfo["LigandFileExt"] = LigandFileExt OptionsInfo["KeepInorganics"] = True if re.match( "^Yes$", Options["--keepInorganics"], re.I) else False OptionsInfo["KeepSolvents"] = True if re.match( "^Yes$", Options["--keepSolvents"], re.I) else False OptionsInfo["Infile"] = Options["--infile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Infile"]) OptionsInfo["InfileRoot"] = FileName OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["ChainIDs"] = Options["--chainIDs"] OptionsInfo["LigandIDs"] = Options["--ligandIDs"] ProcessChainAndLigandIDs() SetupChainAndLigandOutfiles()
def ListHeaderInfo(Infile): """List header information.""" if not (OptionsInfo["All"] or OptionsInfo["Header"]): return FileDir, FileName, FileExt = MiscUtil.ParseFileName(Infile) Classification, DepositionDate, IDCode, ExperimentalTechnique, Resolution = [ "Not Available" ] * 5 if re.match("^pdb$", FileExt, re.I): Classification, DepositionDate, IDCode, ExperimentalTechnique, Resolution = RetriveHeadAndExperimentalInfoFromPDBFile( Infile) elif re.match("^cif$", FileExt, re.I): Classification, DepositionDate, IDCode, ExperimentalTechnique, Resolution = RetriveHeadAndExperimentalInfoFromCIFFile( Infile) MiscUtil.PrintInfo("\nID: %s\nClassification: %s\nDeposition date: %s" % (IDCode, Classification, DepositionDate)) MiscUtil.PrintInfo("\nExperimental technique: %s\nResolution: %s" % (ExperimentalTechnique, Resolution))
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["Infile"] = Options["--infile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Infile"]) OptionsInfo["InfileRoot"] = FileName OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["Outfile"] = Options["--outfile"] RetrieveChainsIDs() Mutations = Options["--mutations"] if re.match("^None$", Mutations, re.I): MiscUtil.PrintError("No mutations specified using \"-m, --mutations\" option.") OptionsInfo["Mutations"] = Options["--mutations"] ProcessSpecifiedMutations()
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["ButinaSimilarityCutoff"] = float(Options["--butinaSimilarityCutoff"]) OptionsInfo["ButinaReordering"] = False if re.match("^Yes$", Options["--butinaReordering"], re.I): OptionsInfo["ButinaReordering"] = True OptionsInfo["Fingerprints"] = Options["--fingerprints"] OptionsInfo["FingerprintsType"] = Options["--fingerprintsType"] OptionsInfo["ClusteringMethod"] = Options["--clusteringMethod"] ProcessClusteringMethodParameter() OptionsInfo["NumClusters"] = int(Options["--numClusters"]) OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters("--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters("--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["OutFileMode"] = Options["--outfileMode"] SingleOutFileMode = True if not re.match("^SingleFile$", Options["--outfileMode"], re.I): SingleOutFileMode = False OptionsInfo["SingleOutFileMode"] = SingleOutFileMode FileDir, FileName, FileExt = MiscUtil.ParseFileName(Options["--outfile"]) OptionsInfo["OutfileBasename"] = FileName OptionsInfo["OutfileExt"] = FileExt TextOutFileMode = False TextOutFileDelim = "" TextOutFileTitleLine = True if MiscUtil.CheckFileExt(Options["--outfile"], "csv"): TextOutFileMode = True TextOutFileDelim = "," elif MiscUtil.CheckFileExt(Options["--outfile"], "tsv txt"): TextOutFileMode = True TextOutFileDelim = "\t" elif MiscUtil.CheckFileExt(Options["--outfile"], "smi"): TextOutFileMode = True TextOutFileDelim = OptionsInfo["OutfileParams"]["SMILESDelimiter"] TextOutFileTitleLine = OptionsInfo["OutfileParams"]["SMILESTitleLine"] OptionsInfo["TextOutFileMode"] = TextOutFileMode OptionsInfo["TextOutFileDelim"] = TextOutFileDelim OptionsInfo["TextOutFileTitleLine"] = TextOutFileTitleLine OptionsInfo["SimilarityMetric"] = Options["--similarityMetric"] ProcessSimilarityMetricParameter() OptionsInfo["ParamsFingerprints"] = Options["--paramsFingerprints"] ProcessFingerprintsParameters()
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["CoreScaffold"] = Options["--coreScaffold"] OptionsInfo["Infile"] = Options["--infile"] OptionsInfo["InfileParams"] = MiscUtil.ProcessOptionInfileParameters( "--infileParams", Options["--infileParams"], Options["--infile"]) OptionsInfo["Outfile"] = Options["--outfile"] OptionsInfo["OutfileParams"] = MiscUtil.ProcessOptionOutfileParameters( "--outfileParams", Options["--outfileParams"], Options["--infile"], Options["--outfile"]) TextOutFileMode = False TextOutFileDelim = "" if MiscUtil.CheckFileExt(Options["--outfile"], "csv"): TextOutFileMode = True TextOutFileDelim = "," elif MiscUtil.CheckFileExt(Options["--outfile"], "tsv txt"): TextOutFileMode = True TextOutFileDelim = "\t" OptionsInfo["TextOutFileMode"] = TextOutFileMode OptionsInfo["TextOutFileDelim"] = TextOutFileDelim TextOutQuote = False if re.match("^auto$", Options["--quote"], re.I): if MiscUtil.CheckFileExt(Options["--outfile"], "csv"): TextOutQuote = True else: if re.match("^yes$", Options["--quote"], re.I): TextOutQuote = True OptionsInfo["TextOutQuote"] = TextOutQuote OptionsInfo["Overwrite"] = Options["--overwrite"] RemoveUnmatchedMode = False UnmatchedOutfile = None if re.match("^yes$", Options["--removeUnmatched"], re.I): RemoveUnmatchedMode = True FileDir, FileName, FileExt = MiscUtil.ParseFileName( OptionsInfo["Outfile"]) UnmatchedOutfile = "%sUnmatched.%s" % (FileName, FileExt) OptionsInfo["RemoveUnmatchedMode"] = RemoveUnmatchedMode OptionsInfo["UnmatchedOutfile"] = UnmatchedOutfile OptionsInfo["SpecifiedDecompositionParams"] = Options[ "--decompositionParams"] ProcessDecompositionParameters() OptionsInfo["SpecifiedMCSParams"] = Options["--mcsParams"] ProcessMCSParameters() SMARTSOrSMILESCoreScaffold = "" SMARTSOrSMILESCoreScaffoldList = [] if not re.match("^none$", Options["--smartsOrSmilesCoreScaffold"], re.I) or len(Options["--smartsOrSmilesCoreScaffold"]): if re.match("^(BySMARTS|BySMILES)$", Options["--coreScaffold"], re.I): SMARTSOrSMILESCoreScaffold = re.sub( " ", "", Options["--smartsOrSmilesCoreScaffold"]) if not SMARTSOrSMILESCoreScaffold: MiscUtil.PrintError( "A non empty value must be specified for \"-s, --smartsOrSmilesCoreScaffold\" during %s value of \"-c, --coreScaffold\" option " % (Options["--coreScaffold"])) SMARTSOrSMILESCoreScaffoldList = SMARTSOrSMILESCoreScaffold.split( ",") OptionsInfo["SMARTSOrSMILESCoreScaffold"] = SMARTSOrSMILESCoreScaffold OptionsInfo[ "SMARTSOrSMILESCoreScaffoldList"] = SMARTSOrSMILESCoreScaffoldList
def ProcessOptions(): """Process and validate command line arguments and options""" MiscUtil.PrintInfo("Processing options...") # Validate options... ValidateOptions() OptionsInfo["OutMode"] = Options["--outMode"] OptionsInfo["MultipleOutFiles"] = True if re.match( "^MultipleFiles$", OptionsInfo["OutMode"], re.I) else False MultipleOutFiles = OptionsInfo["MultipleOutFiles"] OptionsInfo["FigDPI"] = int(Options["--figDPI"]) FigSize = Options["--figSize"] Width = 6.4 Height = 4.8 if MultipleOutFiles else 6.4 if not re.match("^auto$", FigSize, re.I): FigSizeWords = FigSize.split(",") Width = float(FigSizeWords[0]) Height = float(FigSizeWords[1]) OptionsInfo["FigSize"] = FigSize OptionsInfo["FigWidth"] = Width OptionsInfo["FigHeight"] = Height OptionsInfo["FontFamily"] = Options["--fontFamily"] OptionsInfo["FontAxesSize"] = Options["--fontAxesSize"] OptionsInfo["FontAxesWeight"] = Options["--fontAxesWeight"] OptionsInfo["FontTicksSize"] = Options["--fontTicksSize"] OptionsInfo["FontTicksWeight"] = Options["--fontTicksWeight"] OptionsInfo["FontTitleSize"] = Options["--fontTitleSize"] OptionsInfo["FontTitleWeight"] = Options["--fontTitleWeight"] OptionsInfo["Greek"] = True if re.match("^Yes$", Options["--greek"], re.I) else False OptionsInfo["Grid"] = True if re.match("^Yes$", Options["--grid"], re.I) else False OptionsInfo["GridLineColor"] = Options["--gridLineColor"] OptionsInfo["GridLineStyle"] = Options["--gridLineStyle"] OptionsInfo["GridLineWidth"] = float(Options["--gridLineWidth"]) OptionsInfo["Infile"] = Options["--infile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Infile"]) OptionsInfo["InfileRoot"] = FileName OptionsInfo["LevelsAndColorsScheme"] = Options["--levelsAndColorsScheme"] OptionsInfo["Outfile"] = Options["--outfile"] FileDir, FileName, FileExt = MiscUtil.ParseFileName(OptionsInfo["Outfile"]) OptionsInfo["OutfileRoot"] = FileName OptionsInfo["Overwrite"] = Options["--overwrite"] OptionsInfo["Precision"] = int(Options["--precision"]) OptionsInfo["ScatterMarkerColor"] = Options["--scatterMarkerColor"] OptionsInfo["ScatterMarkerSize"] = float(Options["--scatterMarkerSize"]) OptionsInfo["ScatterMarkerStyle"] = Options["--scatterMarkerStyle"] TicksMajorInterval = 90 if MultipleOutFiles else 180 if not re.match("^auto$", Options["--ticksMajorInterval"], re.I): TicksMajorInterval = int(Options["--ticksMajorInterval"]) OptionsInfo["TicksMajorInterval"] = TicksMajorInterval OptionsInfo["TicksMinor"] = True if re.match( "^Yes$", Options["--ticksMinor"], re.I) else False TicksMinorInterval = 10 if MultipleOutFiles else 45 if not re.match("^auto$", Options["--ticksMinorInterval"], re.I): TicksMinorInterval = int(Options["--ticksMinorInterval"]) OptionsInfo["TicksMinorInterval"] = TicksMinorInterval RetrieveInfileInfo() OptionsInfo["ChainIDs"] = Options["--chainIDs"] ProcessChainIDs() OptionsInfo["LevelsAndColors"] = Options["--levelsAndColors"] SetupPlotsInfo()