You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We should eventually migrate to muscle v5. We are pinned at v3 for now (more details in #477), but it will become imminent for the need to switch at some point. The main difference for us is that v5 does not provide builtin support for piping to stdout. The suggested workaround is this:
# must set -output in muscle5
cmd = ("echo -e '{}' | {} -quiet -align /dev/stdin -output /dev/stdout ; echo {}"
.format(lclust, ip.bins.muscle, "//\n"))
And i tried implementing this in step 3 (persistent_popen_align3), but the call fails with:
But when you run inside a subprocess.Popen call you get this permission error. I think the problem is that in muscle v3, it is testing for -out - and then using the C native stdout handle (which is somehow magically different from /dev/stdout). muscle v5 doesn't use the C native stdout internally, and when you pass -output /dev/stdout it tries to fopen() this "file" and fails (when run inside the python Popen context).
I could not yet figure out a way to work around this that is not ugly.
The text was updated successfully, but these errors were encountered:
We should eventually migrate to muscle v5. We are pinned at v3 for now (more details in #477), but it will become imminent for the need to switch at some point. The main difference for us is that v5 does not provide builtin support for piping to stdout. The suggested workaround is this:
And i tried implementing this in step 3 (
persistent_popen_align3
), but the call fails with:You can run this call by hand in a terminal and it works fine:
But when you run inside a
subprocess.Popen
call you get this permission error. I think the problem is that in muscle v3, it is testing for-out -
and then using the C nativestdout
handle (which is somehow magically different from /dev/stdout). muscle v5 doesn't use the C nativestdout
internally, and when you pass-output /dev/stdout
it tries tofopen()
this "file" and fails (when run inside the python Popen context).I could not yet figure out a way to work around this that is not ugly.
The text was updated successfully, but these errors were encountered: