View Full Version : dfGui and calcing buffered points
Ragnarog
06-20-2003, 09:37 AM
Hi,
Would it be possible to add an option to dfGUI that displays the number of buffers points? the generation scores are a simple formula so I guess it could be implemented fairly easily :)
Regards,
Rag
Digital Parasite
06-20-2003, 10:01 AM
The scoring is the easy part, the more difficult part is reading your buffered files to determine which generation they are from so the GUI can figure out what score to calculate (because each generation has a different score value).
If you want to figure out how the files are stored and how to tell which files show that specific generations were worked on and completed, sitting in the buffer, and waiting to be sent, that would make it a lot easier for me to implement. ;)
Jeff.
Keller
06-20-2003, 10:30 AM
The buffered files are "handle"_0_"handle"_protein_xx_0000009_min.val ... and xx is the generation number, isnīt it ? Is it such a problem to find out which generation the buffered files belong to, if the generation number is available in the filename ? ( I have no experience in programming, so please appreciate :) )
Digital Parasite
06-20-2003, 11:10 AM
Yes but just because there is a filename with the generation # in it, does that mean that the generation is complete? If someone starts and stops the client in the middle of the generation, does it continue using the same file or start a new one? How do you deal with multiple files containing the same generation #?
These are the types of questions that need to be answered.
Jeff.
Ragnarog
06-20-2003, 12:04 PM
Hmm...right...well...you already know how to look what gen is worked on since it displays the gen number. you also know that a started gen is not worth anything. You also know how many gens are buffered, so to _me_ (total non programmer lol) it looks like all there is to do is take (current_gen-1) and calc the scores of all gens that you know are finished since they're buffered... ?
Current gen 100, number of buffered gens : 8
Here we know that gens 99-92 are buffered, calc their respective scores, add up and display? :)
Rag
AMD_is_logical
06-20-2003, 12:14 PM
Originally posted by Digital Parasite
Yes but just because there is a filename with the generation # in it, does that mean that the generation is complete? If someone starts and stops the client in the middle of the generation, does it continue using the same file or start a new one? How do you deal with multiple files containing the same generation #? In filelist.txt there is a CurrentStruc line. The first few integers tell things like which set of generations is being worked on, which generation within that set, and which structure within that generation. (I forget which number is which, sorry.) That will tell you if the generation has been completed or not.
If you start/stop in the middle of a generation, it restarts at the same structure number that it was working on when you stopped it.
Digital Parasite
06-20-2003, 01:23 PM
Originally posted by AMD_is_logical
If you start/stop in the middle of a generation, it restarts at the same structure number that it was working on when you stopped it.
AMD_is_logical : Yes I know that, but my question above was does it create a new file if you restart in the middle of a generation or does it continue using the same data file. If we use Ragnarog's suggestion, we don't need to worry about that.
Ragnarog: That sounds like a possible solution. See, all you have to do is give me a little help. People don't have to be programmers to help with development, they just need to be problem solvers.
But what happens if the client finishes its 250 generations and starts over again? I guess I will have to put some sort of check in that counts down to 0 then starts at 250 again and goes down until all buffered structures are accounted for. Its possible if someone stays offline for a long time they could have multiple sets of 250 gens stored. I wonder if the client even supports that or if the files will get clobbered on the next round?
The other thing too is that the client always "buffers" 1 generation to use for the next gen but I think the data gets sent to the server and you get credit for it so I might have to subtract another off that # buffered value.
These are the little things that make it more complicated.
Jeff.
AMD_is_logical
06-20-2003, 03:34 PM
Originally posted by Digital Parasite
AMD_is_logical : Yes I know that, but my question above was does it create a new file if you restart in the middle of a generation or does it continue using the same data file. If we use Ragnarog's suggestion, we don't need to worry about that. In some cases, the filename can change even if you aren't stop/starting, since the best structure so far can be part of the filename (for the work files starting with handle), and a better one could be found before the end of the generation.
Ragnarog: That sounds like a possible solution. See, all you have to do is give me a little help. People don't have to be programmers to help with development, they just need to be problem solvers.
But what happens if the client finishes its 250 generations and starts over again? I guess I will have to put some sort of check in that counts down to 0 then starts at 250 again and goes down until all buffered structures are accounted for. Its possible if someone stays offline for a long time they could have multiple sets of 250 gens stored. I wonder if the client even supports that or if the files will get clobbered on the next round? If you look at the first integer in the work file names it is a zero for the first set of generations, a one for the next set, etc.
If you see two files that are from the same set of generations, and have the same generation number, then they represent at most one generation of buffered work.
The other thing too is that the client always "buffers" 1 generation to use for the next gen but I think the data gets sent to the server and you get credit for it so I might have to subtract another off that # buffered value. I pointed out a simple solution to this in my post above. The filelist.txt tells you which generation is currently being worked on, so don't count that as buffered work.
Note that there is the possibility of stray work files that are now junk. So I would look in the filelist.txt file for filenames of the form fold_*.bz2, as well as to make sure the file exists. (It looks like the fold_*.bz2 files are not kept around after upload, although the name of the last one uploaded can still be in filelist.txt) The first number in the name tells which set of generations it is from. The last number tells which generation. The CurrentStruc line gives which set it is working on as the first integer (I think), and which generation as the forth integer. So all fold_*.bz2 file which are in the list and which exist are buffered work unless it matches the CurrentStruc line. (Note: the zeroth generation uses a slightly different form for the fold_*.bz2 file, so that will have to be special-cased.)
Digital Parasite
06-20-2003, 04:53 PM
Thanks guys. I have talked with Howard and think I have a good way of figuring out how to calculate the amount of points that are sitting in a buffer.
I'm going to be adding a bunch of points related things to the next release and probably even a points calculator so people can use it to calculate how many points any given generation will yield.
Jeff.
Powered by vBulletin® Version 4.2.4 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.