コード例 #1
0
def makeGraph(attributeType):
    reader = vtk.vtkPDBReader()
    reader.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/3GQP.pdb")
    reader.Update()

    molecule = reader.GetOutputDataObject(1)

    pd = molecule.GetAttributes(attributeType)

    num = 0
    if attributeType == vtk.vtkDataObject.VERTEX:
        num = molecule.GetNumberOfVertices()
    else:
        num = molecule.GetNumberOfEdges()

    a = [x for x in range(num)]
    aa = numpy.array(a)

    b = [x**2 for x in a]
    bb = numpy.array(b)

    array1 = np_s.numpy_to_vtk(aa, deep=True)
    array1.SetName("ID")

    array2 = np_s.numpy_to_vtk(bb, deep=True)
    array2.SetName("Square")

    pd.AddArray(array1)
    pd.AddArray(array2)

    return molecule
コード例 #2
0
ファイル: vtkPDBReader.py プロジェクト: fvpolpeta/devide
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkPDBReader(), 'Reading vtkPDB.',
         (), ('vtkPDB',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
コード例 #3
0
def convert_vtk_file(vtk_file, plt_file, strand=None, solution_time=None):
    reader = None
    if vtk_file.endswith(".vtu"):
        reader = vtk.vtkXMLUnstructuredGridReader()
    elif vtk_file.endswith(".vtp"):
        reader = vtk.vtkXMLPolyDataReader()
    elif vtk_file.endswith(".vts"):
        reader = vtk.vtkXMLStructuredGridReader()
    elif vtk_file.endswith(".vti"):
        reader = vtk.vtkXMLImageDataReader()
    elif vtk_file.endswith(".pdb"):
        reader = vtk.vtkPDBReader()

    reader.SetFileName(vtk_file)
    reader.Update()
    vtk_dataset = reader.GetOutput()
    tp.new_layout()
    tecplot_dataset = tp.active_frame().dataset
    add_vtk_dataset(vtk_dataset, tecplot_dataset)
    if tecplot_dataset.num_zones == 0:
        print("No zones created.")
        return
    for z in tecplot_dataset.zones():
        z.name = os.path.basename(vtk_file)
        if strand and solution_time:
            z.strand = strand
            z.solution_time = solution_time
    tp.data.save_tecplot_plt(plt_file, dataset=tecplot_dataset)
コード例 #4
0
ファイル: vtkPDBReader.py プロジェクト: nagyistoce/devide
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkPDBReader(),
                                       'Reading vtkPDB.', (), ('vtkPDB', ),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
コード例 #5
0
def loadPDB(filename, bondScale=1, hydrogenBondScale=1, coilWidth=0.3, helixWidth=1.3):
    """Reads a molecule Protein Data Bank file."""
    rr = vtk.vtkPDBReader()
    rr.SetFileName('1btn.pdb')
    rr.SetBScale(bondScale)
    rr.SetHBScale(hydrogenBondScale)
    rr.Update()
    prf = vtk.vtkProteinRibbonFilter()
    prf.SetCoilWidth(coilWidth)
    prf.SetHelixWidth(helixWidth)
    prf.SetInputData(rr.GetOutput())
    prf.Update()
    return Mesh(prf.GetOutput())
コード例 #6
0
ファイル: vtkviewer.py プロジェクト: akeshavan/mindboggle
    def ReadPDB(file_name):
        pdb = vtk.vtkPDBReader()
        pdb.SetFileName(file_name)
        pdb.SetHBScale(1.0)
        pdb.SetBScale(1.0)
        pdb.Update()

        sphere = vtk.vtkSphereSource()
        sphere.SetCenter(0, 0, 0)
        sphere.SetRadius(1)

        glyph = vtk.vtkGlyph3D()
        glyph.SetInputConnection(pdb.GetOutputPort())
        glyph.SetSourceConnection(sphere.GetOutputPort())
        glyph.SetOrient(1)
        glyph.SetColorMode(1)
        glyph.SetScaleMode(2)
        glyph.SetScaleFactor(.25)
        glyph.Update()

        tube = vtk.vtkTubeFilter()
        tube.SetInputConnection(pdb.GetOutputPort())
        tube.SetNumberOfSides(6)
        tube.CappingOff()
        tube.SetRadius(0.2)
        tube.SetVaryRadius(0)
        tube.SetRadiusFactor(10)
        tube.Update()

        tubeMesh = vtk.vtkPolyData()
        tubeMesh.ShallowCopy(tube.GetOutput())
        N = tubeMesh.GetNumberOfPoints()

        rgb_colors = tubeMesh.GetPointData().GetArray("rgb_colors")
        if rgb_colors is not None:
            if rgb_colors.GetNumberOfComponents() == 3:
                for i in range(N):
                    rgb_colors.SetTupleValue(i, (127, 127, 127))

        appendFilter = vtk.vtkAppendPolyData()
        appendFilter.AddInputConnection(glyph.GetOutputPort())
        try:
            appendFilter.AddInputData(tubeMesh)
        except:
            appendFilter.AddInput(tubeMesh)
        appendFilter.Update()

        polyData = vtk.vtkPolyData()
        polyData.ShallowCopy(appendFilter.GetOutput())
        return polyData
コード例 #7
0
	def ReadPDB(file_name):
		pdb = vtk.vtkPDBReader()
		pdb.SetFileName(file_name)
		pdb.SetHBScale(1.0)
		pdb.SetBScale(1.0)
		pdb.Update()

		sphere = vtk.vtkSphereSource()
		sphere.SetCenter(0, 0, 0)
		sphere.SetRadius(1)

		glyph = vtk.vtkGlyph3D()
		glyph.SetInputConnection(pdb.GetOutputPort())
		glyph.SetSourceConnection(sphere.GetOutputPort())
		glyph.SetOrient(1)
		glyph.SetColorMode(1)
		glyph.SetScaleMode(2)
		glyph.SetScaleFactor(.25)
		glyph.Update()

		tube = vtk.vtkTubeFilter()
		tube.SetInputConnection(pdb.GetOutputPort())
		tube.SetNumberOfSides(6)
		tube.CappingOff()
		tube.SetRadius(0.2)
		tube.SetVaryRadius(0)
		tube.SetRadiusFactor(10)
		tube.Update()

		tubeMesh = vtk.vtkPolyData()
		tubeMesh.ShallowCopy(tube.GetOutput())
		N = tubeMesh.GetNumberOfPoints()

		rgb_colors = tubeMesh.GetPointData().GetArray("rgb_colors")
		if rgb_colors is not None:
			if rgb_colors.GetNumberOfComponents() == 3:
				for i in xrange(N):
					rgb_colors.SetTupleValue(i, (127,127,127))

		appendFilter = vtk.vtkAppendPolyData()
		appendFilter.AddInputConnection(glyph.GetOutputPort())
		try:
			appendFilter.AddInputData(tubeMesh)
		except:
			appendFilter.AddInput(tubeMesh)
		appendFilter.Update()

		polyData = vtk.vtkPolyData()
		polyData.ShallowCopy(appendFilter.GetOutput())
		return polyData
コード例 #8
0
 def initVtkProtein(self, pdbFile) :
     reader = vtk.vtkPDBReader()
     reader.SetFileName(pdbFile)
     
     protein = vtk.vtkProteinRibbonFilter()
     protein.SetInputConnection(reader.GetOutputPort())
     protein.SetDrawSmallMoleculesAsSpheres(False)
     protein.Update()
     mProtein = vtk.vtkPolyDataMapper()
     mProtein.SetInputData(protein.GetOutput())
     mProtein.Update()
     aProtein = vtk.vtkActor()
     aProtein.SetMapper(mProtein)
     
     return aProtein
コード例 #9
0
# -*- coding: cp1252 -*-

import vtk

pdb0 = vtk.vtkPDBReader()
pdb0.SetFileName("caffeine.pdb")

sp = vtk.vtkSphereSource()

gly = vtk.vtkGlyph3D()
gly.SetInput(pdb0.GetOutput())
gly.SetColorMode(1)
gly.SetScaleMode(2)
gly.SetScaleFactor(0.5)
gly.SetSource(sp.GetOutput())

tb = vtk.vtkTubeFilter()
tb.SetInput(pdb0.GetOutput())
tb.SetNumberOfSides(20)
tb.SetRadius(0.2)

app = vtk.vtkAppendPolyData()
app.AddInput(gly.GetOutput())
app.AddInput(tb.GetOutput())

m = vtk.vtkPolyDataMapper()
m.SetInput(app.GetOutput())
m.Update()

a = vtk.vtkActor()
a.SetMapper(m)
コード例 #10
0
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""
		self.actorsInitialized = False
		VisualizationModule.__init__(self, parent, visualizer, **kws)   

		self.descs = {"FileName": "PDB file",
					  "SphereRadius": "Sphere radius",
					  "TubeRadius": "Tube radius"}

		self.enabled = 1
		self.mapper = vtk.vtkPolyDataMapper()
		self.mapper.UseLookupTableScalarRangeOff()
		self.mapper.SetScalarVisibility(1)
		self.mapper.SetScalarModeToDefault()
		
		#make the actor from the mapper
		self.actor = vtk.vtkLODActor()
		self.actor.GetProperty().SetRepresentationToSurface()
		self.actor.GetProperty().SetInterpolationToGouraud()
		self.actor.GetProperty().SetColor(1,1,1)
		self.actor.GetProperty().SetAmbient(0.15)
		self.actor.GetProperty().SetDiffuse(0.85)
		self.actor.GetProperty().SetSpecular(0.1)
		self.actor.GetProperty().SetSpecularPower(100)
		self.actor.GetProperty().SetSpecularColor(1,1,1)
		self.actor.GetProperty().SetColor(1,1,1)		
		self.actor.SetNumberOfCloudPoints(30000)
		
		self.actor.SetMapper(self.mapper)
		self.reader = vtk.vtkPDBReader()
		self.renderer = self.parent.getRenderer()
		
		self.tubeFilter = vtk.vtkTubeFilter()
		self.tubeFilter.SetNumberOfSides(8)
		self.tubeFilter.SetCapping(0)
		self.tubeFilter.SetRadius(0.2)
		self.tubeFilter.SetVaryRadius(0)
		self.tubeFilter.SetRadiusFactor(10)
		
		self.mapper2 = vtk.vtkPolyDataMapper()
		self.mapper2.UseLookupTableScalarRangeOff()
		self.mapper2.SetScalarVisibility(1)
		self.mapper2.SetScalarModeToDefault()
		
		self.tubeActor = vtk.vtkLODActor()
		self.tubeActor.SetMapper(self.mapper2)
		self.tubeActor.GetProperty().SetRepresentationToSurface()
		self.tubeActor.GetProperty().SetInterpolationToGouraud()
		self.tubeActor.GetProperty().SetColor(1,1,1)
		self.tubeActor.GetProperty().SetAmbient(0.15)
		self.tubeActor.GetProperty().SetDiffuse(0.85)
		self.tubeActor.GetProperty().SetSpecular(0.1)
		self.tubeActor.GetProperty().SetSpecularPower(100)
		self.tubeActor.GetProperty().SetSpecularColor(1,1,1)
		self.tubeActor.SetNumberOfCloudPoints(30000)
		
		self.sphereSource = vtk.vtkSphereSource()
		self.sphereSource.SetCenter(0,0,0)
		self.sphereSource.SetRadius(1)
		self.sphereSource.SetThetaResolution(8)
		self.sphereSource.SetStartTheta(0)
		self.sphereSource.SetEndTheta(360)
		self.sphereSource.SetPhiResolution(8)
		self.sphereSource.SetStartPhi(0)
		self.sphereSource.SetEndPhi(180)
		
		self.glyph3D = vtk.vtkGlyph3D()
		self.glyph3D.SetOrient(1)
		self.glyph3D.SetColorMode(1)
		self.glyph3D.SetScaleMode(2)
		self.glyph3D.SetScaleFactor(.25)
		self.glyph3D.SetSource(self.sphereSource.GetOutput())

		self.filterDesc = "Visualize Protein Data Bank file"
コード例 #11
0
#!/usr/bin/env python
import vtk
import molecules_io
pdb = vtk.vtkPDBReader()
pdb.SetFileName("TM2.pdb")

ball = vtk.vtkSphereSource()
ball.SetRadius(0.25)
ball.SetThetaResolution(8)
ball.SetPhiResolution(8)

ballGlyph = vtk.vtkGlyph3D()
ballGlyph.SetInput(pdb.GetOutput())
ballGlyph.SetColorMode(1)
ballGlyph.SetScaleMode(2)
ballGlyph.SetScaleFactor(0.25)
ballGlyph.SetSourceConnection(ball.GetOutputPort())

ballMapper = vtk.vtkPolyDataMapper()
ballMapper.SetInputConnection(ballGlyph.GetOutputPort())
ballMapper.ImmediateModeRenderingOn()

ballActor = vtk.vtkActor()
ballActor.SetMapper(ballMapper)

tubeFilter = vtk.vtkTubeFilter()
tubeFilter.SetInput(pdb.GetOutput())
tubeFilter.SetRadius(0.15)
tubeFilter.SetNumberOfSides(7)

tubeMapper = vtk.vtkPolyDataMapper()
コード例 #12
0
    def read(self):
        from vtk import vtkPDBReader, vtkSphereSource, vtkGlyph3D, \
                        vtkPolyDataMapper, vtkLODActor, vtkTubeFilter

        actor_list = self.actor_list
        polydata_list = self.polydata_list

        pdb = vtkPDBReader()
        pdb.SetFileName(self.filename)
        pdb.SetHBScale(1.0)
        pdb.SetBScale(1.0)

        if self.molecule_on:
            sphere = vtkSphereSource()
            sphere.SetCenter(0, 0, 0)
            sphere.SetRadius(1)
            sphere.SetThetaResolution(8)
            sphere.SetStartTheta(0)
            sphere.SetEndTheta(360)
            sphere.SetPhiResolution(8)
            sphere.SetStartPhi(0)
            sphere.SetEndPhi(180)

            glyph = vtkGlyph3D()
            glyph.SetInputConnection(pdb.GetOutputPort())
            #glyph.SetOrient(1)
            glyph.SetColorMode(1)
            glyph.ScalingOn()
            glyph.SetScaleMode(2)
            glyph.SetScaleFactor(0.25)
            glyph.SetSource(sphere.GetOutput())

            mapper = vtkPolyDataMapper()
            mapper.SetInputConnection(glyph.GetOutputPort())
            mapper.SetImmediateModeRendering(1)
            mapper.UseLookupTableScalarRangeOff()
            mapper.SetScalarVisibility(1)
            mapper.SetScalarModeToDefault()

            actor = vtkLODActor()
            actor.SetMapper(mapper)
            #actor.GetProperty().SetRepresentationToSurface()
            #actor.GetProperty().SetInterpolationToGouraud()
            #actor.GetProperty().SetAmbient(0.15)
            #actor.GetProperty().SetDiffuse(0.85)
            #actor.GetProperty().SetSpecular(0.1)
            #actor.GetProperty().SetSpecularPower(100)
            #actor.GetProperty().SetSpecularColor(1, 1, 1)
            #actor.GetProperty().SetColor(1, 1, 1)
            actor.SetNumberOfCloudPoints(30000)

            actor_list.append(actor)
            polydata_list.append(glyph.GetOutput())

        if self.tubes_on:
            tubes = vtkTubeFilter()
            tubes.SetInputConnection(pdb.GetOutputPort())
            tubes.SetNumberOfSides(8)
            tubes.SetCapping(0)
            tubes.SetRadius(0.2)
            tubes.SetVaryRadius(0)
            tubes.SetRadiusFactor(10)

            tube_mapper = vtkPolyDataMapper()
            tube_mapper.SetInputConnection(tubes.GetOutputPort())
            tube_mapper.SetImmediateModeRendering(1)
            tube_mapper.UseLookupTableScalarRangeOff()
            tube_mapper.SetScalarVisibility(1)
            tube_mapper.SetScalarModeToDefault()

            tube_actor = vtkLODActor()
            tube_actor.SetMapper(tube_mapper)
            #tub_actor.GetProperty().SetRepresentationToSurface()
            #tub_actor.GetProperty().SetInterpolationToGouraud()
            #tub_actor.GetProperty().SetAmbient(0.15)
            #tub_actor.GetProperty().SetDiffuse(0.85)
            #tub_actor.GetProperty().SetSpecular(0.1)
            #tub_actor.GetProperty().SetSpecularPower(100)
            #tub_actor.GetProperty().SetSpecularColor(1, 1, 1)
            #tub_actor.GetProperty().SetColor(1, 1, 1)
            tube_actor.SetNumberOfCloudPoints(30000)

            actor_list.append(tube_actor)
            polydata_list.append(tubes.GetOutput())

        return actor_list, polydata_list
コード例 #13
0
# -*- coding: cp1252 -*-

import vtk

b = vtk.vtkPDBReader()
b.SetFileName("caffeine.pdb")

m = vtk.vtkPolyDataMapper()
m.SetInput(b.GetOutput())
m.Update()

a = vtk.vtkActor()
a.SetMapper(m)

ren = vtk.vtkRenderer()
ren.SetBackground(1, 1, 1)
ren.AddActor(a)
ren.ResetCamera()

renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)

rwi = vtk.vtkRenderWindowInteractor()
rwi.SetRenderWindow(renWin)
rwi.Initialize()
rwi.Render()
rwi.Start()
コード例 #14
0
def main():
    filename = get_program_parameters()
    colors = vtk.vtkNamedColors()

    renderer = vtk.vtkRenderer()
    renderer.SetBackground(colors.GetColor3d("SlateGray"))
    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(640, 480)

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    pdb = vtk.vtkPDBReader()
    pdb.SetFileName(filename)
    pdb.SetHBScale(1.0)
    pdb.SetBScale(1.0)
    pdb.Update()
    print("# of atoms is:", pdb.GetNumberOfAtoms())

    resolution = math.sqrt(300000.0 / pdb.GetNumberOfAtoms())
    if resolution > 20:
        resolution = 20
    if resolution < 4:
        resolution = 4

    print("Resolution is:", resolution)
    sphere = vtk.vtkSphereSource()
    sphere.SetCenter(0, 0, 0)
    sphere.SetRadius(1)
    sphere.SetThetaResolution(int(resolution))
    sphere.SetPhiResolution(int(resolution))

    glyph = vtk.vtkGlyph3D()
    glyph.SetInputConnection(pdb.GetOutputPort())
    glyph.SetOrient(1)
    glyph.SetColorMode(1)
    # glyph.ScalingOn();
    glyph.SetScaleMode(2)
    glyph.SetScaleFactor(.25)
    glyph.SetSourceConnection(sphere.GetOutputPort())

    atom_mapper = vtk.vtkPolyDataMapper()
    atom_mapper.SetInputConnection(glyph.GetOutputPort())
    atom_mapper.UseLookupTableScalarRangeOff()
    atom_mapper.ScalarVisibilityOn()
    atom_mapper.SetScalarModeToDefault()

    atom = vtk.vtkLODActor()
    atom.SetMapper(atom_mapper)
    atom.GetProperty().SetRepresentationToSurface()
    atom.GetProperty().SetInterpolationToGouraud()
    atom.GetProperty().SetAmbient(0.1)
    atom.GetProperty().SetDiffuse(0.7)
    atom.GetProperty().SetSpecular(0.5)
    atom.GetProperty().SetSpecularPower(80)
    atom.GetProperty().SetSpecularColor(colors.GetColor3d("White"))
    atom.SetNumberOfCloudPoints(30000)

    renderer.AddActor(atom)

    tube = vtk.vtkTubeFilter()
    tube.SetInputConnection(pdb.GetOutputPort())
    tube.SetNumberOfSides(int(resolution))
    tube.CappingOff()
    tube.SetRadius(0.2)
    tube.SetVaryRadius(0)
    tube.SetRadiusFactor(10)

    bond_mapper = vtk.vtkPolyDataMapper()

    bond_mapper.SetInputConnection(tube.GetOutputPort())
    bond_mapper.UseLookupTableScalarRangeOff()
    bond_mapper.ScalarVisibilityOff()
    bond_mapper.SetScalarModeToDefault()

    bond = vtk.vtkLODActor()
    bond.SetMapper(bond_mapper)
    bond.GetProperty().SetRepresentationToSurface()
    bond.GetProperty().SetInterpolationToGouraud()
    bond.GetProperty().SetAmbient(0.1)
    bond.GetProperty().SetDiffuse(0.7)
    bond.GetProperty().SetSpecular(0.5)
    bond.GetProperty().SetSpecularPower(80)
    bond.GetProperty().SetSpecularColor(colors.GetColor3d("White"))

    renderer.AddActor(bond)
    renderer.SetBackground(colors.GetColor3d("Green"))

    render_window.Render()
    interactor.Initialize()
    interactor.Start()
コード例 #15
0
	def display_mod(self,mod):
		self.renderer.RemoveAllViewProps()
		if mod.type == 'mol':
			if mod.dspmodtype == 'CA':
				reader = vtk.vtkPDBReader()
				reader.SetFileName(mod.dfn)
				reader.SetHBScale(0)
				reader.SetBScale(4.0)
				mapper = vtk.vtkPolyDataMapper()
				mapper.SetInputConnection(reader.GetOutputPort())
				mapper.SetScalarModeToDefault()
				acteur = vtk.vtkActor()
				acteur.SetMapper(mapper)
			else: #all atoms or backbone case
				reader = vtk.vtkPDBReader()
				reader.SetFileName(mod.dfn)
				mapper = vtk.vtkPolyDataMapper()
				mapper.SetInputConnection(reader.GetOutputPort())
				mapper.SetScalarModeToDefault()
				acteur = vtk.vtkActor()
				acteur.SetMapper(mapper)
			self.camera.SetFocalPoint(0, 0, 0)
			self.camera.SetPosition(0, 0, 250)
		elif mod.type=='map':
			reader = vtk.vtkStructuredPointsReader()
			reader.SetFileName(mod.dfn)
			reader.Update() #by calling Update() we read the file
			iso = vtk.vtkMarchingContourFilter()
			iso.UseScalarTreeOn()
			iso.ComputeNormalsOn()
			iso.SetInputConnection(reader.GetOutputPort())
			iso.SetValue(0,mod.isov*mod.sigavg[0]+mod.sigavg[1])
			mapper = vtk.vtkOpenGLPolyDataMapper()
			mapper.SetInputConnection(iso.GetOutputPort()) ### <- connection here
			mapper.ScalarVisibilityOff()
			mapper.Update()
			acteur= vtk.vtkOpenGLActor()
			acteur.SetMapper(mapper)
			acteur.GetProperty().SetColor(0,0.35,1)
			if mod.rep=='Wireframe':
				acteur.GetProperty().SetRepresentationToWireframe()
			elif mod.rep=='Surface':
				acteur.GetProperty().SetRepresentationToSurface()
			else :
				acteur.GetProperty().SetRepresentationToWireframe()
			acteur.GetProperty().SetInterpolationToGouraud()
			acteur.GetProperty().SetSpecular(.4)
			acteur.GetProperty().SetSpecularPower(10)
			(xmin,xmax,ymin,ymax,zmin,zmax)=acteur.GetBounds()
			maxi=max(xmax-xmin,ymax-ymin,zmax-zmin)
			mini=min(xmax-xmin,ymax-ymin,zmax-zmin)
			fp=((xmax+xmin)/2.,(ymax+ymin)/2.,(zmax+zmin)/2.)
			self.camera.SetFocalPoint(fp[0],fp[1],fp[2])
			self.camera.SetPosition(fp[0],fp[1],fp[2]+(zmax-zmin)*4.)
		else :
			print 'strange Error in mod.type'
		(xl, xu, yl, yu, zl, zu)=acteur.GetBounds()
		mod.coldist = min(xu-xl,yu-yl,zu-zl)/2.
		mod.sphdist = max(xu-xl,yu-yl,zu-zl)/2.
		self.renderer.AddActor(acteur)
		self.renderer.ResetCameraClippingRange()
		self.renwin.Render()
コード例 #16
0
def load_mols(mol,rendmod,gfx,atomcol):
	mol.reader = vtk.vtkPDBReader()
	mol.reader.SetFileName(mol.mod.dfn)
	mol.reader.Update() #by calling Update() we read the file
	mol.reader.SetHBScale(mol.hbdsl)
	mol.reader.SetBScale(mol.bdsl)
	Localmol=[]
	beg=0
	if mol.acteur!=None:
		pos = mol.acteur.GetPosition()
		ori = mol.acteur.GetOrientation()
		gfx.renderer.RemoveActor(mol.acteur)
		beg=1
	if rendmod in [0,4] :
		mol.mapper = vtk.vtkPolyDataMapper()
		mol.mapper.SetInputConnection(mol.reader.GetOutputPort())
		if atomcol!=1:
			mol.mapper.UseLookupTableScalarRangeOff()
			mol.mapper.SetScalarVisibility(0)
		else:
			mol.mapper.SetScalarModeToDefault()
		lacteur = vtk.vtkActor()
		lacteur.GetProperty().SetColor(mol.col)
		if mol.mod.dspmodtype=='AA':
			lacteur.GetProperty().SetLineWidth(3)
		else :
			lacteur.GetProperty().SetLineWidth(4)
		lacteur.SetMapper(mol.mapper)
		Localmol+=[lacteur]
	if rendmod in [1,3,4]:
		sphere = vtk.vtkSphereSource()
		sphere.SetCenter(0, 0, 0)
		sphere.SetRadius(1)
		sphere.SetThetaResolution(8)
		sphere.SetStartTheta(0)
		sphere.SetEndTheta(360)
		sphere.SetPhiResolution(8)
		sphere.SetStartPhi(0)
		sphere.SetEndPhi(180)
		glyph = vtk.vtkGlyph3D()
		glyph.SetInputConnection(mol.reader.GetOutputPort())
		glyph.SetColorMode(1)
		glyph.ScalingOn()
		glyph.SetScaleMode(2)
		glyph.SetScaleFactor(0.25)
		glyph.SetSource(sphere.GetOutput())
		mol.mapper = vtk.vtkPolyDataMapper()
		mol.mapper.SetInputConnection(glyph.GetOutputPort())
		if atomcol!=1:
			mol.mapper.UseLookupTableScalarRangeOff()
			mol.mapper.SetScalarVisibility(0)
		else:
			mol.mapper.SetScalarModeToDefault()
		bacteur = vtk.vtkActor()
		bacteur.SetMapper(mol.mapper)
		bacteur.GetProperty().SetRepresentationToSurface()
		bacteur.GetProperty().SetInterpolationToGouraud()
		bacteur.GetProperty().SetAmbient(0.15)
		bacteur.GetProperty().SetDiffuse(0.85)
		bacteur.GetProperty().SetSpecular(0.1)
		bacteur.GetProperty().SetSpecularPower(100)
		bacteur.GetProperty().SetSpecularColor(1, 1, 1)
		bacteur.GetProperty().SetColor(mol.col)
		Localmol+=[bacteur]
	if rendmod in [2,3] :
		tubes = vtk.vtkTubeFilter()
		tubes.SetInputConnection(mol.reader.GetOutputPort())
		tubes.SetNumberOfSides(8)
		tubes.SetCapping(0)
		tubes.SetRadius(1)
		tubes.SetVaryRadius(0)
		tubes.SetRadiusFactor(10)
		mol.mapper = vtk.vtkPolyDataMapper()
		mol.mapper.SetInputConnection(tubes.GetOutputPort())
		if atomcol!=1:
			mol.mapper.UseLookupTableScalarRangeOff()
			mol.mapper.SetScalarVisibility(0)
		else:
			mol.mapper.SetScalarModeToDefault()
		tacteur = vtk.vtkActor()
		tacteur.SetMapper(mol.mapper)
		tacteur.GetProperty().SetRepresentationToSurface()
		tacteur.GetProperty().SetInterpolationToGouraud()
		tacteur.GetProperty().SetAmbient(0.15)
		tacteur.GetProperty().SetDiffuse(0.85)
		tacteur.GetProperty().SetSpecular(0.1)
		tacteur.GetProperty().SetSpecularPower(100)
		tacteur.GetProperty().SetSpecularColor(1, 1, 1)
		tacteur.GetProperty().SetColor(mol.col)
		Localmol+=[tacteur]
	assembly = vtk.vtkAssembly()
	for act in Localmol:
		assembly.AddPart(act)
		del act
	mol.acteur=assembly
	if beg:
		mol.acteur.SetPosition(pos)
		mol.acteur.SetOrientation(ori)
	else :
		remember_rottra(mol)
	gfx.renderer.AddActor(mol.acteur)
	gfx.renwin.Render()