Getting-started | Storage model | Daily workflow | Future plan | Need-help | Contributing
I believe a perfect lab would be a lab that 1.Share issues, knowledge, and files in an organized way; 2.Track every detail of the project; 3.Automate workflows
This Perfect-Lab-System project is dedicated to the above goals. This repository is designed as a project template for teamwork in any laboratory (e.g., a Bio-lab). If you want to manage a project with not just code, but also literature, figures, and big data. This repository would be a perfect starting point. Getting started from here.
Contributions are welcome! Please add issues and make pull requests. There are no stupid questions. All ideas are welcome. This is an experimental project. Be excellent to each other.
If possible, please read my ideas about this Perfect-Lab-System before you start contributing.
One project, one folder.
This storage model is for Project-repo and its corresponding local sync folder. (For a Code-repo, Git takes control of everything, no cloud sync involved.)
Since a Project-repo is designed as an online platform, we just use it online, not local usage for this type of repository.
There are two subfolders on GitHub: (.github means these folders are only used on GitHub)
We use sync folders to handle local files that will be shared within a team. The name of the local sync folder should be exactly the same as the corresponding GitHub Project-repo. (For a Code-repo, do not create its sync folder counterpart since Git should take care of everything.)
There are five subfolders inside the sync folder:
Code folder: You can git clone other Code-repos at here. Since there is no Git control over the sync folder, be sure to put code files in a Code-repo. (If there is no Code-repo, create one for your code. You can name it as xx-analysis
or xx-acquisition
.)
Data folder: Put all experiment data and intermediate data in the Data folder. You have the option to auto-sync the data with our storage server. Ask admin users for more info.
References folder: Put literature and files that are not composed by your team are in the References folder. All the files in this folder will be synced via Nutstore with your teammates.
Results folder: Put the final results for publications such as manuscripts and figures in the Results folder. Do not put large data files (>100MB) in this folder since all the files in this folder will be synced via Nutstore with your teammates.
Working folder: Files in the Working folder would not be uploaded or synced with any other devices/services. This is where you put anything unfinished, such as your programs to generate raw data. Please remember to put finished files into the above folders to keep track of them.
Finally, this sync folder will be linked to the corresponding GitHub Project-repo as a badge in README.
To make the best use of this perfect lab system, I designed this daily workflow.
As for myself, I must confess, I am absolutely incapable even of adding without mistakes... My memory is not bad, but it would be insufficient to make me a good chess-player. Why then does it not fail me in a difficult piece of matheatical reasoning where most chess-players would lose themselves? Evidently because it is guided by the general march of the reasoning. A mathematical demonstration is not a simple juxtaposition of syllogisms, it is syllogisms placed in a certain order, and the order in which these elements are placed is much more important than the elements themselves. If I have the feeling, the intuition, so to speak, of this order, so as to perceive at a glance the reasoning as a whole, I need no longer fear lest I forget one of the elements, for each of them will take its allotted place in the array, and that without any effort of memory on my part.
- Henri Poincaré on Mathematical Creation