I am not good as you are and needed to use a parser for the pdb file
see https://mmcif.wwpdb.org/docs/software-resources.html:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 7 17:40:03 2020
@author: Pietro
"""
import matplotlib.pyplot as plt #matplotlib
from pdbx.reader.PdbxReader import PdbxReader #PDB file parser
import numpy as np #numpy
openz = open('./1msc.cif')
print('opened')
# Initialize a PdbxReader object with the input file handle
pRd = PdbxReader(openz)
# Initialize a list to be propagated with DataContainer (and/or DefinitionContainer) objects (of the DataContainer class, which inherits from ContainerBase) parsed from the CIF file, where data blocks map to DataContainer objects
data = []
print(data)
# Call the read(self, containerList) method with your list
pRd.read(data)
print ('data ###################################################################\n' , data)
print('data lenght' , len(data))
# Your list is now propagated with one or more DataContainer objects, which represent data blocks. To get the first data block, just use list notation:
block = data[0]
print(' block ##############################################################\n',block)
pippo=block.getObjNameList()
print(pippo)
# To retrieve a category object, use the getObj(self, name) method
atomsite = block.getObj("atom_site")
print('atom site : ', atomsite)
atom = atomsite.getValue("group_PDB",0)
# print('atom sites id :', atom)
atomlist=[]
i=0
while True:
atom = atomsite.getValue("group_PDB",i)
atomid = atomsite.getValue('label_atom_id',i)
if atom =='ATOM':
# print(atomsite.getValue("group_PDB",i))
if atomid == 'CA': #select only carbon alpha (CA) to work with
atomlist.append([float(atomsite.getValue('Cartn_x',i)),\
float(atomsite.getValue('Cartn_y',i)),float(atomsite.getValue('Cartn_z',i))])
i +=1
else:
print('loop ends')
False
break
atomlist=np.array(atomlist)
print('end')
print(atomlist)
print('lunghezza : ', len(atomlist))
fig = plt.figure()
ax = plt.axes(projection="3d")
for p in atomlist: #print CA as dots
ax.scatter3D(p[0], p[1], p[2])
print(p)
for i in range(0,len(atomlist)-1): #connect with a line CA n with n+1
x,y,z = [atomlist[i+1][0],atomlist[i][0]],[atomlist[i+1][1],atomlist[i][1]],[atomlist[i+1][2],atomlist[i][2]]
ax.plot(x,y,z, color='red')
plt.show()
my input is https://files.rcsb.org/download/1MSC.cif
Result is just the CAs (carbon alpha) shown as dots and connected to form the main chain:

Didn't manage how to show the dimer though