Beispiel #1
0
    def setup(self, printargs=False):
        super(AaCgTrajectoryProcessor, self).setup(printargs)

        self.ff = elbalib.Elba()
        self.ff.load(self.args.xml)

        self.refuniverse = md.Universe(self.args.ref)

        # Check if we need to translate the atom names
        self.namtrans = None
        if self.args.naming is not None:
            namref = [
                line.strip()
                for line in open(self.args.naming[0], 'r').readlines()
            ]
            nammob = [
                line.strip()
                for line in open(self.args.naming[1], 'r').readlines()
            ]
            self.namtrans = {}
            for nr, nm in zip(namref, nammob):
                if nm != "*":
                    self.namtrans[nm] = nr

        # Setup of a list of residues defined in the force field that can be processed
        self.residues = []
        for r in self.refuniverse.selectAtoms("all").residues:
            if self.args.mol is not None and r.name.lower(
            ) != self.args.mol.lower():
                continue
            ffmol = self.ff.find_molecule(r.name)
            if ffmol is None or not ffmol.beadnames:
                continue
            self.residues.append(_Residue(r.id, ffmol, self.universe))
            if not self.iscgtraj:
                self.residues[-1].make_transmat(self.namtrans)

        for action in self.actions:
            action.setup_residues()
Beispiel #2
0
        bond.contype = elbalib.BondType()
        bond.contype.set(id=di+1,kf=2,k=data[di,0],r0=data[di,1])
        ff.bondtypes[di+1]=bond.contype
        di += 1

    ai = 0
    prev = len(ff.angletypes)
    ff.angletypes = {}
    for angle in ffmol.angles :
        angle.contype = elbalib.AngleType()
        angle.contype.set(id=ai+1,kf=2,k=data[di,0],theta0=data[di,1])
        ff.angletypes[ai+1]=angle.contype
        di += 1
        ai += 1


if __name__ == '__main__':

    print " ".join(sys.argv)

    argparser = argparse.ArgumentParser(description="Program the generate LAMMPS input files")
    argparser.add_argument('-x', '--xml', help="an XML file with force field definitions")
    argparser.add_argument('-b','--bonded',nargs=2,help="replace bonded parameters")
    args = argparser.parse_args()

    ff = elbalib.Elba()
    ff.load(args.xml)

    modify_bonded(ff,args.bonded[0],args.bonded[1])
    generate_gmxinput(ff.molecules[args.bonded[0]])