Skip to content

Commit 69c3780

Browse files
committed
c
update pymol_preview_generator/pymol_preview_generator.py
1 parent b2620ba commit 69c3780

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed

rna_tools/tools/pymol_preview_generator/pymol_preview_generator.py

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,33 @@ def get_parser():
3434
is_mac = False
3535
BIN = '/usr/bin'
3636

37+
def exe(cmd):
38+
o = subprocess.Popen(
39+
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
40+
out = o.stdout.read().strip().decode()
41+
err = o.stderr.read().strip().decode()
42+
return out, err
43+
3744
if __name__ == '__main__':
3845
parser = get_parser()
3946
args = parser.parse_args()
4047

4148
print(BIN)
4249

43-
for file in args.files:
44-
tf = tempfile.NamedTemporaryFile(delete=False)
45-
f = tf.name + '.png'
46-
file = file.replace(" ", "\\ ")
50+
for f in args.files:
51+
if 0:
52+
tf = tempfile.NamedTemporaryFile(delete=False)
53+
fcover = tf.name + '.png'
54+
f = f.replace(" ", "\\ ")
55+
else:
56+
fcover = f.replace('.pdb', '.png')
4757
rainbow = ''
4858
if args.rainbow:
4959
rainbow = 'util.chainbow;'
5060

5161
# pdb mode
52-
if file.endswith('.pdb'):
53-
def exe(cmd):
54-
o = subprocess.Popen(
55-
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
56-
out = o.stdout.read().strip().decode()
57-
err = o.stderr.read().strip().decode()
58-
return out, err
59-
cmd = BIN + '/pymol -c ' + file + " -d 'print(len([x for x in cmd.get_model().atom]))'"
62+
if f.endswith('.pdb'):
63+
cmd = BIN + '/pymol -c ' + f + " -d 'print(len([x for x in cmd.get_model().atom]))'"
6064
out, err = exe(cmd)
6165
# ugly way to get n of atoms
6266
"""
@@ -69,19 +73,27 @@ def exe(cmd):
6973
#if len(open(file).readlines()) < args.detailed:
7074
sh = ''
7175
if n < 300: # atoms
72-
sh = ' show lines; '#sticks; ' # lines;
73-
os.system(BIN + '/pymol -c ' + file + " -d 'set ray_opaque_background, off;" + rainbow + " show cartoon; " + sh + "; rr; save " + f + "; quit'") # ray 300,300,renderer=0 ray 800, 800;
76+
#sh = ' show lines; '#sticks; ' # lines;
77+
sh = ' show mesh; ' #set ray_opaque_background, off;
78+
# bg_color black;
79+
os.system(BIN + '/pymol -c ' + f + " -d 'set ray_opaque_background, on; hide cartoon;" + sh + "; save " + fcover + "; quit'") #ray 1000,1000; # ,renderer=0 #os.system(BIN + '/pymol -c ' + f + " -d 'set ray_opaque_background, off;" + rainbow + " show cartoon; " + sh + "; rr; save " + fcover + "; quit'")
7480
else: # pse mode for pse do nothing! # set ray_opaque_background, off;
75-
os.system(BIN + '/pymol -c ' + file + " -d 'save " + f + "; quit'")
81+
os.system(BIN + '/pymol -c ' + f + " -d 'save " + fcover + "; quit'")
7682

7783
if args.verbose:
7884
print(f)
7985

8086
if is_mac:
81-
fcrop = f.replace('.png', '32.png')
82-
cmd = BIN + "/convert " + f + " -gravity center -crop 3:3 +repage " + fcrop
87+
print('MAC')
88+
fcrop = fcover.replace('.png', '32.png')
89+
cmd = BIN + "/convert " + fcover + " -gravity center -crop 3:3 +repage " + fcrop
90+
os.system(cmd)
91+
print(cmd)
92+
cmd = 'unset PYTHONPATH && ' + BIN + 'fileicon set ' + f + ' ' + fcrop
93+
print(cmd)
8394
os.system(cmd)
84-
cmd = 'unset PYTHONPATH && ' + BIN + 'fileicon set ' + file + ' ' + fcrop
95+
os.remove(fcover)
96+
os.remove(fcrop)
8597
else:
8698
cmd = 'gvfs-set-attribute ' + file + ' metadata::custom-icon file://' + f # f so the file before convert
87-
os.system(cmd)
99+
os.system(cmd)

0 commit comments

Comments
 (0)