Skip to content

Commit

Permalink
c
Browse files Browse the repository at this point in the history
update pymol_preview_generator/pymol_preview_generator.py
  • Loading branch information
mmagnus committed Feb 21, 2025
1 parent b2620ba commit 69c3780
Showing 1 changed file with 31 additions and 19 deletions.
50 changes: 31 additions & 19 deletions rna_tools/tools/pymol_preview_generator/pymol_preview_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,33 @@ def get_parser():
is_mac = False
BIN = '/usr/bin'

def exe(cmd):
o = subprocess.Popen(
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out = o.stdout.read().strip().decode()
err = o.stderr.read().strip().decode()
return out, err

if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()

print(BIN)

for file in args.files:
tf = tempfile.NamedTemporaryFile(delete=False)
f = tf.name + '.png'
file = file.replace(" ", "\\ ")
for f in args.files:
if 0:
tf = tempfile.NamedTemporaryFile(delete=False)
fcover = tf.name + '.png'
f = f.replace(" ", "\\ ")
else:
fcover = f.replace('.pdb', '.png')
rainbow = ''
if args.rainbow:
rainbow = 'util.chainbow;'

# pdb mode
if file.endswith('.pdb'):
def exe(cmd):
o = subprocess.Popen(
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out = o.stdout.read().strip().decode()
err = o.stderr.read().strip().decode()
return out, err
cmd = BIN + '/pymol -c ' + file + " -d 'print(len([x for x in cmd.get_model().atom]))'"
if f.endswith('.pdb'):
cmd = BIN + '/pymol -c ' + f + " -d 'print(len([x for x in cmd.get_model().atom]))'"
out, err = exe(cmd)
# ugly way to get n of atoms
"""
Expand All @@ -69,19 +73,27 @@ def exe(cmd):
#if len(open(file).readlines()) < args.detailed:
sh = ''
if n < 300: # atoms
sh = ' show lines; '#sticks; ' # lines;
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;
#sh = ' show lines; '#sticks; ' # lines;
sh = ' show mesh; ' #set ray_opaque_background, off;
# bg_color black;
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'")
else: # pse mode for pse do nothing! # set ray_opaque_background, off;
os.system(BIN + '/pymol -c ' + file + " -d 'save " + f + "; quit'")
os.system(BIN + '/pymol -c ' + f + " -d 'save " + fcover + "; quit'")

if args.verbose:
print(f)

if is_mac:
fcrop = f.replace('.png', '32.png')
cmd = BIN + "/convert " + f + " -gravity center -crop 3:3 +repage " + fcrop
print('MAC')
fcrop = fcover.replace('.png', '32.png')
cmd = BIN + "/convert " + fcover + " -gravity center -crop 3:3 +repage " + fcrop
os.system(cmd)
print(cmd)
cmd = 'unset PYTHONPATH && ' + BIN + 'fileicon set ' + f + ' ' + fcrop
print(cmd)
os.system(cmd)
cmd = 'unset PYTHONPATH && ' + BIN + 'fileicon set ' + file + ' ' + fcrop
os.remove(fcover)
os.remove(fcrop)
else:
cmd = 'gvfs-set-attribute ' + file + ' metadata::custom-icon file://' + f # f so the file before convert
os.system(cmd)
os.system(cmd)

0 comments on commit 69c3780

Please sign in to comment.