-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create workflow_overview.md #83
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,57 @@ | ||||||||||||||||||||||
|
||||||||||||||||||||||
# 📄 General Overview of Project Workflow | ||||||||||||||||||||||
|
||||||||||||||||||||||
Once your [onboarding](https://intranet.neuro.polymtl.ca/onboarding/README.html) is complete, you will be ready to tackle your project! | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I try to use relative links everywhere, because the domain this is on is not promised to last forever. So
Suggested change
or maybe that doesn't work, tbh I forget how sphinx handles folder links. Maybe better to be explicit:
Suggested change
Note that the build process -- You can double-check how your work will render in the end with our theme and all the links fixed up properly. It's a bit more work, but you can just check out this branch on your computer and follow these instructions: intranet.neuro.polymtl.ca/setup.py Lines 2 to 7 in 4f32201
(these are the same commands that are used by GitHub to publish the live copy of the site) |
||||||||||||||||||||||
|
||||||||||||||||||||||
## 🖥️ Setting up 🖥️ | ||||||||||||||||||||||
|
||||||||||||||||||||||
**Step 1.** | ||||||||||||||||||||||
* Make sure that your VPN connection is established or that you are connected to the Polytechnique wifi. | ||||||||||||||||||||||
|
||||||||||||||||||||||
**Step 2.** | ||||||||||||||||||||||
* Log in to one of the available [Neuropoly compute nodes](https://intranet.neuro.polymtl.ca/computing-resources/neuropoly/README.html): | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
ssh <POLYGRAMES_USERNAME>@<STATION>.neuro.polymtl.ca | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
Comment on lines
+8
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This duplicates the instructions at intranet.neuro.polymtl.ca/computing-resources/neuropoly/README.md Lines 152 to 158 in 58f03fe
I think those instructions could be clearer -- it would be nice if that page was broken up -- but in any case it's best not to duplicate the work. |
||||||||||||||||||||||
|
||||||||||||||||||||||
**Step 3.** | ||||||||||||||||||||||
* Create your project working directory: | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
cd data_nvme_<POLYGRAMES_USERNAME> | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Most systems don't have intranet.neuro.polymtl.ca/computing-resources/neuropoly/cpus.md Lines 15 to 17 in 58f03fe
I would say there's no need to specify this. Anywhere someone has access that has enough space is fine, and if you just don't mention it then most people will by default end up working in their home directories, which should work perfectly well on most systems, at least to start out. The big gotcha is that combining |
||||||||||||||||||||||
mkdir <PROJECT_NAME> | ||||||||||||||||||||||
cd <PROJECT_NAME> | ||||||||||||||||||||||
Comment on lines
+21
to
+22
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can help people out by being explicit here:
Suggested change
|
||||||||||||||||||||||
``` | ||||||||||||||||||||||
|
||||||||||||||||||||||
**Step 4. Developing version-controlled software** | ||||||||||||||||||||||
* Ideally, you are working on code in Github repository (either a branch of an existing repo, or a new one that you created). | ||||||||||||||||||||||
* After adding your NeuroPoly workstation [SSH key to your Github account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?platform=linux), you are ready to make a local fork of that remote repository: | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
cd data_nvme_<POLYGRAMES_USERNAME>/<PROJECT_NAME> | ||||||||||||||||||||||
git clone -b "<YOUR_WORKING_BRANCH>" [email protected]:<REPOSITORY>.git | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we want everything we do to be tracked by git by default. Things that should not be under git, like private data, or test files, can either go in Then, we can either We already have a page that's supposed to cover this:
and while it needs a lot of love at the moment, it'd be better to work these tips into it than repeat them here. Can we arrange it so this section is just a link to that page? Maybe that page needs to get some edits in this PR as well to bring it up to speed with our current practices and/or to slim out the advice we don't use. |
||||||||||||||||||||||
``` | ||||||||||||||||||||||
|
||||||||||||||||||||||
**Step 5. The data** | ||||||||||||||||||||||
* It is critical to make sure that you know what data you are working with. | ||||||||||||||||||||||
* Ideally, it should be in [BIDS](https://bids-specification.readthedocs.io/en/stable/) format on the [`data.neuro`](https://intranet.neuro.polymtl.ca/data/git-datasets.html) storage node: `data.neuro:datasets/<PROJECT_DATASET>`. | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto with the relative links. Also I'd shorten the BIDS link to be safer against link rot -- their domain will change less frequently than their subfolders, hopefully.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should also think about the workflow for combining datasets. In principle it's easy to include multiple datasets -- each of them is just a different folder, and we can do that with |
||||||||||||||||||||||
* Thanks to `git annex`, the following command will copy the directory structure and some small files of your dataset on `data.neuro`: | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This line doesn't use Of course, There is also the subtlety to consider that you can also request specific subsets of the images like So can this become a link to
and/or
? |
||||||||||||||||||||||
``` | ||||||||||||||||||||||
cd data_nvme_<POLYGRAMES_USERNAME>/<PROJECT_NAME> | ||||||||||||||||||||||
git clone [email protected]:datasets/<PROJECT_DATASET> | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is the most interesting part to me. This is the part where we might address neuropoly/data-management#136. One option here would be
Suggested change
This would be the Datalad YODA recommendation. They don't use the word "submodule" on that page but it is what they have in mind. We can also do
Suggested change
to pick out a specific older version (in this case Then when you The dataset folder is unclickable because it's tagged as a submodule reference, and moreover it's a submodule that is on the private, intentionally-inaccessible, storage node: but if I'm on one of our internal processing nodes with permission to the datasets, I can reproduce my entire project with
|
||||||||||||||||||||||
``` | ||||||||||||||||||||||
|
||||||||||||||||||||||
## 🌊 Workflow 🌊 | ||||||||||||||||||||||
|
||||||||||||||||||||||
### ⌨️ Code | ||||||||||||||||||||||
Any changes you make to the code should be added in small commits and pushed to your github branch. | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good advice! But again better kept in
|
||||||||||||||||||||||
|
||||||||||||||||||||||
### 💿 Data | ||||||||||||||||||||||
* If you need to access your data files directly, you can use `git annex` to download the larger files to the [Neuropoly computer](https://intranet.neuro.polymtl.ca/computing-resources/neuropoly/README.html) you are working from: | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
cd data_nvme_<POLYGRAMES_USERNAME>/<PROJECT_NAME>/<PROJECT_DATASET> | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto on |
||||||||||||||||||||||
git annex get . | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
* However, in order to save space, make sure to "undownload" those big files once you are done working with them with: | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
git annex drop . | ||||||||||||||||||||||
``` | ||||||||||||||||||||||
Comment on lines
+53
to
+56
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a good tip, but I think it would fit better as a new subsection over in https://intranet.neuro.polymtl.ca/data/git-datasets.html#drop. |
||||||||||||||||||||||
* Any data derivatives that you output should be added to `data.neuro:datasets/<PROJECT_DATASET>` according to the [BIDS](https://bids-specification.readthedocs.io/en/stable/) data standard! More documentation on how to version control your data on `data.neuro` can be found [here](https://intranet.neuro.polymtl.ca/data/git-datasets.html#update). | ||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto on the absolute link: better to make it relative. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I appreciate that you noticed and kept the emojis here! There's a small glitch about sphinx, all the top-level pages need to have their emojis wrapped like this to get them to align properly