Пример #1
0
def runDielec(arg):
    """
    Runs UHBD calculation with a set of dielectric constants in dielc_file.
    """

    # Parse the command line arguments
    dielec = ArgParser.modeClass("dielec",["pdb_file","dielec_file"],
        ["inpfile","inpfile"],["ionic_strength","pHtitr","out_dir"])
    dielec.parseArg(arg)

    filename = dielec.required["pdb_file"]
    dielec_file = dielec.required["dielec_file"]
    output_path = dielec.optional.out_dir
    pH_start = dielec.optional.pHtitr[0]
    pH_stop = dielec.optional.pHtitr[1]
    pH_interval = dielec.optional.pHtitr[2]
    salt = dielec.optional.ionic_strength

    f = open(dielec_file)
    dielectric_constants = [float(d) for d in f.readlines()]
    f.close()

    base_path = os.path.join(__init__.invocation_path,output_path)

    for dielectric in dielectric_constants:
        print "dielectric constant: %4.2F" % dielectric 
        
        dielec_path = os.path.join(base_path,"D%.1F" % dielectric)
        FileOps.makeDir(dielec_path)

        dielec_output = os.path.join(dielec_path,"%.1F" % salt)
        FileOps.makeDir(dielec_output)
        
        indivRun(filename,dielec_output,pH_start,pH_stop,pH_interval,salt,
                 dielectric)
Пример #2
0
def runSingle(arg):
    """
    Runs UHBD calculation on a single file.
    """
    
    single = ArgParser.modeClass("single",["pdb_file"],["inpfile"],
        ["dielectric", "ionic_strength","pHtitr","out_dir"])
    single.parseArg(arg)

    indivRun(single.required["pdb_file"],single.optional.out_dir,
        single.optional.pHtitr[0],single.optional.pHtitr[1],
        single.optional.pHtitr[2],single.optional.ionic_strength,
        single.optional.dielectric)
Пример #3
0
def runSalts(arg):
    """
    Runs UHBD calculation on set of salts in salts_file.
    """

    # Parse the command line arguments
    salts = ArgParser.modeClass("salts",["pdb_file","salt_file"],
        ["inpfile","inpfile"],["dielectric","pHtitr","out_dir"])
    salts.parseArg(arg)
    
    filename = salts.required["pdb_file"]
    salts_file = salts.required["salt_file"]
    output_path = salts.optional.out_dir
    pH_start = salts.optional.pHtitr[0]
    pH_stop = salts.optional.pHtitr[1]
    pH_interval = salts.optional.pHtitr[2]
    dielectric = salts.optional.dielectric 

    # Execute the indivRun function for every salt in salts_file
    f = open(salts_file)
    salts = [float(salt) for salt in f.readlines()]
    f.close()
    
    for salt in salts:
        print "Ionic strength: %4.2F" % salt
        salt_output = os.path.join(output_path,"%.1F" % salt)
        
        # Create output directory
        try:
            os.mkdir(os.path.join(__init__.invocation_path,salt_output))
        except OSError, value:
            # Don't stop if we are only overwriting existing directory
            if value[0] != 17: 
                print 'File error.'
                print value[0], os.path.join(__init__.invocation_path,
                                             salt_output), value[1]
                sys.exit()

        # Run UHBD at this specific salt concentration
        indivRun(filename,salt_output,pH_start,pH_stop,pH_interval,salt,
                 dielectric)
Пример #4
0
def runDielec(arg):
    """
    Runs UHBD calculation with a set of dielectric constants in dielc_file.
    """

    # Parse the command line arguments
    dielec = ArgParser.modeClass("dielec",["pdb_file","dielec_file"],
        ["inpfile","inpfile"],["ionic_strength","pHtitr","out_dir"])
    dielec.parseArg(arg)

    filename = dielec.required["pdb_file"]
    dielec_file = dielec.required["dielec_file"]
    output_path = dielec.optional.out_dir
    pH_start = dielec.optional.pHtitr[0]
    pH_stop = dielec.optional.pHtitr[1]
    pH_interval = dielec.optional.pHtitr[2]
    salt = dielec.optional.ionic_strength

    f = open(dielec_file)
    dielectric_constants = [float(d) for d in f.readlines()]
    f.close()
    
    for dielectric in dielectric_constants:
        print "dielectric constant: %4.2F" % dielectric 
        dielec_output = os.path.join(output_path,"%.1F" % dielectric)
        
        # Create output directory
        try:
            os.mkdir(os.path.join(__init__.invocation_path,dielec_output))
        except OSError, value:
            # Don't stop if we are only overwriting existing directory
            if value[0] != 17: 
                print 'File error.'
                print value[0], os.path.join(__init__.invocation_path,
                                             dielec_output), value[1]
                sys.exit()
    
        indivRun(filename,dielec_output,pH_start,pH_stop,pH_interval,salt,
                 dielectric)
Пример #5
0
def runSalts(arg):
    """
    Runs UHBD calculation on set of salts in salts_file.
    """

    # Parse the command line arguments
    salts = ArgParser.modeClass("salts",["pdb_file","salt_file"],
        ["inpfile","inpfile"],["dielectric","pHtitr","out_dir"])
    salts.parseArg(arg)
    
    filename = salts.required["pdb_file"]
    salts_file = salts.required["salt_file"]
    output_path = salts.optional.out_dir
    pH_start = salts.optional.pHtitr[0]
    pH_stop = salts.optional.pHtitr[1]
    pH_interval = salts.optional.pHtitr[2]
    dielectric = salts.optional.dielectric 

    # Execute the indivRun function for every salt in salts_file
    f = open(salts_file)
    salts = [float(salt) for salt in f.readlines()]
    f.close()

    base_path = os.path.join(__init__.invocation_path,output_path)    
    dielec_path = os.path.join(base_path,"D%.1F" % dielectric)
    FileOps.makeDir(dielec_path)
    
    for salt in salts:
        print "Ionic strength: %4.2F" % salt
        salt_output = os.path.join(dielec_path,"%.1F" % salt)
        
        # Create output directory
        FileOps.makeDir(salt_output)

        # Run UHBD at this specific salt concentration
        indivRun(filename,salt_output,pH_start,pH_stop,pH_interval,salt,
                 dielectric)