Yes, it can be done, and easily, using the Interface front end scripting language. Below I've included the entire script required to generate an energy versus torsion profile. This script restrains the torsion to different values, then minimizes the structure. The final energy at each point is logged to a specified file, so at the end you are left with a file containing the total energy versus torsion angle.
! Interface script to do torsional driving. ! assign run number assign vr = 1 ! assign parm and starting coord files assign param = "/disk1/amber/try/parm1.prm" assign coord = "/disk1/amber/try/parm1.crd" ! assign the file to contain the energy vs angle data: assign logname = "/disk1/amber/try/run/min.nrg" ! assign initial & final values of torsion, and number of intervals assign tori = 0.0 assign torf = 360.0 assign numinc = 36 assign torinc = (torf-tori)/float(numinc) do i = 0,numinc sander assign angle = mod(tori+i*torinc,360.0) ! set up the minimization info_off minimize /steep=100 /steps=9999 /rms_energy=0.05 dielectric = 1r read /formatted title = "torsion fixed at degrees" pairlist /update=99999 /cutoff=99.0 report /steps=99999 ! define restraint (system dependent) restraint \ /at1=1:N2 /at2=1:C12 /at3=1:C23 /at4=1:C22 \ /r1=angle-40.0 /r2=angle /r3=angle /r4=angle+40.0 \ /k2=50.0 /k3=50.0 generate /output = minxx_vac .inp ! do the minimization if (i.eq.0) then assign inpcrd = " " else assign inpcrd = "minxx_vac_old .rst" end if run / mdin = minxx_vac .inp \ / mdout = minxx_vac .out \ / prmtop = "" \ / inpcrd = " " \ / restrt = minxx_vac .rst \ / program = "/disk1/amber4.1/exe/sander" ! log the final energy in a separate file logenergy / infile = minxx_vac .out \ / logfile = " " \ / sequence = angle ! cleanup unneeded files: delete minxx_vac .out , minxx_vac .inp ! move the restart file so that it'll be available ! as input for next iteration external "\mv minxx_vac .rst minxx_vac_old .rst" clear end do ! final cleanup delete minxx_vac_old .rst