Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Aug 22 19:29
    cbkerr synchronize #145
  • Aug 22 19:29

    cbkerr on deprecation-1.0

    Deleted update_stati, which was… Switched definitions of export_… (compare)

  • Aug 21 23:15
    mikemhenry labeled #146
  • Aug 21 23:14
    mikemhenry assigned #146
  • Aug 21 23:14
    mikemhenry opened #146
  • Aug 21 20:50
    cbkerr milestoned #145
  • Aug 21 18:22
    cbkerr unassigned #145
  • Aug 21 18:22
    cbkerr review_requested #145
  • Aug 21 18:22
    cbkerr assigned #145
  • Aug 21 18:22
    cbkerr review_requested #145
  • Aug 21 18:22
    cbkerr opened #145
  • Aug 21 18:14
    tommy-waltmann synchronize #220
  • Aug 21 18:14

    tommy-waltmann on deprecations-1-3

    added deprecation package to te… (compare)

  • Aug 21 17:43
    tommy-waltmann synchronize #220
  • Aug 21 17:43

    tommy-waltmann on deprecations-1-3

    fixed code formatting (compare)

  • Aug 21 17:34
    tommy-waltmann synchronize #220
  • Aug 21 17:34

    tommy-waltmann on deprecations-1-3

    Update codeowners. (#219) fixed code style formatting pro… Merge branch 'master' into misc… and 1 more (compare)

  • Aug 21 14:26
    cbkerr edited #144
  • Aug 21 03:03
    cbkerr edited #144
  • Aug 20 22:45
    cbkerr edited #144
Carl Simon Adorf
@csadorf

It means that signac is better integrated within the scientific Python ecosystem and that the NumFOCUS organization is going to help us improve the sustainability of the project. There are no immediate changes besides that we have another platform to promote the project to potential users and developers. Concretely, we hope to significantly increase the number of contributors across different institutions in the next couple of months.

To achieve this, we are going to try to increase the transparency of our development process. All future development meetings and sprints are open to anyone. We also hope to host more user meetings and tutorials at conferences.

Andrei Berceanu
@berceanu
All good news, congrats once more!
Carl Simon Adorf
@csadorf
Thx! :)
Nina
@ninamillik

Good morning! I am having some trouble with signac view. It returns: Error: <lambda>() takes 1 positional argument but 2 were given. The project was initialized with the script

# init.py
import signac

project = signac.init('fmria_project')

sp = {'monomer':'nfa'}
job = project.open_job(sp)
job.init()

I am using signac version 1.1.0 and python version 3.7.3 on CentOS version 6.10 (Final)

Any and all help would be appreciated! Thank you!

Carl Simon Adorf
@csadorf
@ninamillik Thank you for letting us know about this issue! I tested your script and can confirm that there appears to be a regression affecting the view function in the latest version. Would you mind creating an issue on GitHub? We can try to fix this as soon as possible.
https://github.com/glotzerlab/signac/issues/new/choose
Nina
@ninamillik
Thank you Carl! I just submitted issue #208.
Bradley Dice
@bdice
Dev meeting starting now! https://bluejeans.com/429240743
Feel free to drop in and say hello!
Bradley Dice
@bdice
signac-dashboard 0.2.5 is out! New features: automatic refresh when the signac data space is modified, and click to enlarge images. https://github.com/glotzerlab/signac-dashboard
Alyssa Travitz
@atravitz
I don't know if this is the right place to ask this, but I'm trying to write a packmol wrapper in python so I can pack initial configs as a part of my signac workflow. does anyone already do this or use something more python-friendly to create initial configs? directly calling packmol using subprocess is not as straightforward as i'd hoped
Justin Gilmer
@justinGilmer

Hey @atravitz , This is not exactly the same as what you are wanting to do, but one of our (MoSDeF) python libraries mBuild uses the PACKMOL binary for packing our systems, and we generate input files that are directly fed to packmol. So its not exactly a python wrapper, but if you just need to pack some smaller molecules in a box or region, mbuild.packing abstracts away a lot of the necessary inputs for PACKMOL into function arguments. If you already have a structure file for your molecules, you can have a packed system in no time!

If you need this very soon, it might take a bit of time to get up and running, but you can swing by our gitter channel for additional help!

A few of us in our group all use the signac workflow in combination with our tools at mosdef.org and have had great success!

vyasr
@vyasr
@atravitz IIRC the mbuild solution is pretty much what you're was describing, generating the input files to pass via subprocess, so that should definitely be helpful for you
i don't think there's a super easy way to do it otherwise; i'm aware of at least 2 or 3 other python packmol wrappers that all work using subprocess commands
Nina
@ninamillik
I ran into the same exact situation! I think that the way Packmol takes input with '<' made calling it with subprocess unexpectedly tricky. Thank you for asking this question, @atravitz !
Carl Simon Adorf
@csadorf
@ninamillik While mbuild is probably the best solution, I’m definetely curious whether you tried the @cmd decorator. If yes, did you run into issues with that as well?
Alyssa Travitz
@atravitz
@ninamillik that's exactly where I ran into trouble! @justinGilmer i'll try this and get back to you :)
Justin Gilmer
@justinGilmer
Awesome! If you have any issues, let us know! : )
Mike Henry
@mikemhenry
Does anyone have a snippet for putting job std output into the workspace folder for that job? I was thinking that could go into the slurm template
Bradley Dice
@bdice
@mikemhenry Do you mean like jobid.o, jobid.e types of log files?
@mikemhenry This miiiiight work, but hasn’t been tested in 2.5 years:
function move_logs() {
    # Put logs into subdirectories.
    verify_project_dir
    if [ -n "$(find . -maxdepth 1 -name "$RESUB_LOG_GLOB" -print -quit)" ]; then
        mkdir -p logs
        for resublog in $RESUB_LOG_GLOB; do
            mv -v $resublog logs/
        done
    else
        echo "No resubmit logs found."
    fi
    if [ -n "$(find . -maxdepth 1 -name "$JOB_LOG_GLOB" -print -quit)" ]; then
        for joblog in $JOB_LOG_GLOB; do
            signacid=$(echo $joblog | sed -rn "s/^([a-f0-9]+).*/\1/p")
            remainder=$(echo $joblog | sed -rn "s/^[a-f0-9]+-(.*)/\1/p")
            if [ -d workspace/${signacid} ]; then
                mv -v $joblog workspace/${signacid}/job-${remainder}
            else
                echo "workspace/${signacid} does not exist. Moving to logs."
                mv -v $joblog logs/
            fi
        done
    else
        echo "No job logs found."
    fi
}

function clear_logs() {
    # Remove logs.
    verify_project_dir
    find . -maxdepth 1 -name "$JOB_LOG_GLOB" -exec rm {} +
    find . -maxdepth 1 -name "$RESUB_LOG_GLOB" -exec rm {} +
    rm -r logs
    echo "Logs cleared.”
}
Carl Simon Adorf
@csadorf
@mikemhenry With SLURM you can redirect STDOUT with #BSUB -o jobout.%J. You propbably prepend that with the workspace path within the template, but that’s only well-defined if you on’t submit multiple bundled operations.
Mike Henry
@mikemhenry
Drats bundles would throw that off, @bdice those are the files I'm talking about. Yah its something I could do with bash, I was actually going to use signac so I could use job.fn and do the matching with a python script. If I end up making something nice, maybe it could be added to a cookbook or included in a demo project that could be forked.
Bradley Dice
@bdice
@mikemhenry Feel free to adapt this bash function into Python, I’m sure it’ll be much easier to read...
vtelezki
@vtelezki
Hello,
our cluster is running into parsing issues when I try to run status while a job is running. This issue does not happen, when no job is running. After the job is done the status is displayed correctly. The scheduling system is TORQUE. Any ideas what is going wrong there?
Bradley Dice
@bdice
@vtelezki Can you tell us what version of flow you're running? Is there an error traceback? It'd be great to capture this information in an issue: https://github.com/glotzerlab/signac-flow/issues/new/choose
vtelezki
@vtelezki
Sure, I'm running version 1.2.0 and the traceback looks like this:
Traceback (most recent call last):
  File "src/project.py", line 188, in <module>
    Project().main()
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 2721, in main
    _exit_or_raise()
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 2689, in main
    args.func(args)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 2362, in _main_status
    self.print_status(jobs=jobs, **args)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/legacy.py", line 230, in wrapper
    return func(self, jobs=jobs, *args, **kwargs)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 1105, in print_status
    tmp = self._fetch_status(jobs, err, ignore_errors, no_parallelize)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 994, in _fetch_status
    self._fetch_scheduler_status(jobs, err, ignore_errors)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 975, in _fetch_scheduler_status
    scheduler_info = {sjob.name(): sjob.status() for sjob in self.scheduler_jobs(scheduler)}
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 975, in <dictcomp>
    scheduler_info = {sjob.name(): sjob.status() for sjob in self.scheduler_jobs(scheduler)}
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 856, in scheduler_jobs
    for sjob in self._expand_bundled_jobs(scheduler.jobs()):
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/project.py", line 832, in _expand_bundled_jobs
    for job in scheduler_jobs:
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/scheduling/torque.py", line 99, in jobs
    nodes = _fetch(user=self.user)
  File "/home/telezki/Hoomd/venv/lib/python3.6/site-packages/flow/scheduling/torque.py", line 31, in _fetch
    tree = ET.parse(source=result)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/xml/etree/ElementTree.py", line 1196, in parse
    tree.parse(source, parser)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/xml/etree/ElementTree.py", line 597, in parse
    self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: syntax error: line 2, column 0
vtelezki
@vtelezki
sorry, flow version is 0.7.1
vtelezki
@vtelezki
@bdice, just opened issue #133(glotzerlab/signac-flow#133)
Bradley Dice
@bdice
@vtelezki Thanks! I commented on that issue — please follow up there when you have a chance. :)
I tried to document the steps throughout my installation process on an Ubuntu 18.04 droplet.
Perhaps it could be useful for the docs, once all the identifiable info is removed or course ;)
Anyway, you can see the result at http://ra5.ro
Bradley Dice
@bdice
@berceanu This is so cool! Thanks for sharing! :D
Andrei Berceanu
@berceanu
I will get back to you about the user story you metioned, under heavy load now.
Bradley Dice
@bdice
No worries, thanks again!
Bradley Dice
@bdice
@berceanu Are you asking for yourself? I've met a few folks from Oak Ridge. They're awesome and I think they like working there a lot. It would probably be a cool opportunity, especially with the top-level supercomputers at OLCF.
Andrei Berceanu
@berceanu
Yup.
Thanks!
Carl Simon Adorf
@csadorf

Hi! I'll be live-streaming the public part of my Ph.D. defense tomorrow (Wed) at 11am EDT. I'll be presenting my work on inverse design, software development in academic environments, and of course signac. ;) Tune in live or watch later if you’re interested to know what I’ve been working on in the past 5 years. :)

https://www.youtube.com/channel/UCt0wcLn8b5laNyZmv8T6_eQ/

salazardetroya
@salazardetroya
Hello! What would be the most appropriate way to use signac with a container? (either Docker or singularity) Creating a python function that issues an os.system() that calls the container exec function? and perhaps passing the job data as flag arguments to the container? I don't know of a better form. Thanks.
Carl Simon Adorf
@csadorf
@salazardetroya Hi! We actually wrote a short recipe for that: http://docs.signac.io/en/latest/recipes.html#how-to-run-in-containerized-environments
Carl Simon Adorf
@csadorf
Let us know if that helps or not!
Bradley Dice
@bdice
@salazardetroya Also, there is a container image here that includes the signac framework along with several other packages for molecular dynamics and simulation analysis used by our research group: https://github.com/glotzerlab/software
Andrei Berceanu
@berceanu
Best of luck today, Simon!
Carl Simon Adorf
@csadorf
Thank you! :)
balborian
@balborian
Hi this is @salazardetroya from a different account. Thanks! Actually, I think the flow.cm decorator is more of what I was looking for, as I want to run a python script within a container.
  • flow.cmd