Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
for_members [2019/01/09 20:48]
admin [General guidelines for conducting research in Oncinfo lab]
for_members [2019/02/15 15:45] (current)
admin [General guidelines for conducting research in Oncinfo lab]
Line 1: Line 1:
-==== General guidelines for conducting research in Oncinfo ​lab ====+==== General guidelines for conducting research in the Oncinfo ​Lab ====
  
-  - All google docs that need to be edited by lab members should be put in Oncinfo [[https://​drive.google.com/?​tab=mo&​authuser=0#​folders/​0B5Cpru0UXP0adTZTckg3aEd4SEE|folder]]. They should be kept confidential. Send your gmail address to Habil to get access to this folder. Then, create a subfolder with your name there, and create a google doc in your subfolder. Copy all items from this "For members"​ page to that google doc, and write "​**Done**",​ "​**Todo**",​ "​**Skip**"​ in front of each item.+  - All google docs that need to be edited by lab members should be put in Oncinfo [[https://​drive.google.com/?​tab=mo&​authuser=0#​folders/​0B5Cpru0UXP0adTZTckg3aEd4SEE|folder]]. They should be kept confidential. Send your gmail address to Habil to get access to this folder. Remind him to add you his Oncinfo Google group. Then, create a subfolder with your name there, and create a google doc in your subfolder. Copy all items from this "For members"​ page to that google doc, and write "​**Done**",​ "​**Todo**",​ "​**Skip**"​ in front of each item.
   - Pass the online training courses required by the University e.g., conflict of interest, safety, etc.   - Pass the online training courses required by the University e.g., conflict of interest, safety, etc.
   - All experiments and analysis are done on Unix. That is a __real__ ​ Unix system like Linux, OS X, etc., NOT a virtual machine. Start with a [[http://​www.ee.surrey.ac.uk/​Teaching/​Unix/​|tutorial]] for beginners or the [[http://​nebc.nerc.ac.uk/​downloads/​courses/​Bio-Linux/​bl8_latest.pdf|introduction]] to Bio-Linux.   - All experiments and analysis are done on Unix. That is a __real__ ​ Unix system like Linux, OS X, etc., NOT a virtual machine. Start with a [[http://​www.ee.surrey.ac.uk/​Teaching/​Unix/​|tutorial]] for beginners or the [[http://​nebc.nerc.ac.uk/​downloads/​courses/​Bio-Linux/​bl8_latest.pdf|introduction]] to Bio-Linux.
Line 11: Line 11:
   - Any file or data on this wiki that has restricted permissions,​ such as some paper pdfs or drafts, should not be shared with nonmembers unless authorized by the PI.   - Any file or data on this wiki that has restricted permissions,​ such as some paper pdfs or drafts, should not be shared with nonmembers unless authorized by the PI.
   - All members should read and follow [[http://​journals.plos.org/​ploscompbiol/​article?​id=10.1371/​journal.pcbi.1000424|Bill'​s]] guidelines, and organize their files and folders accordingly and to some extend. Start by making a "​~/​proj"​ directory in your home folder that will eventually contain a subfolder for each project you are working on. Major subfolders must have a readme file for example to describe where the data is coming from. Your code folder must include a runall.R script that sources other scripts. Avoid sourcing scripts in other scripts except for the runall because then following and debugging the pipeline would be difficult.   - All members should read and follow [[http://​journals.plos.org/​ploscompbiol/​article?​id=10.1371/​journal.pcbi.1000424|Bill'​s]] guidelines, and organize their files and folders accordingly and to some extend. Start by making a "​~/​proj"​ directory in your home folder that will eventually contain a subfolder for each project you are working on. Major subfolders must have a readme file for example to describe where the data is coming from. Your code folder must include a runall.R script that sources other scripts. Avoid sourcing scripts in other scripts except for the runall because then following and debugging the pipeline would be difficult.
-  - Your code and documents should be stored in a Bitbucket repository like [[https://​bitbucket.org/​habilzare/​genetwork|https://​bitbucket.org/​habilzare/​genetwork]]. Sign up for an [[https://​bitbucket.org/​account/​signup/​|account]] and add your photo. Only then, send your username to Habil. If you are new to Bitbucket, take [[https://​guides.co/​g/​bitbucket-101/​11146|Bitbucket 101]]. You can [[https://​confluence.atlassian.com/​bitbucket/​use-the-ssh-protocol-with-bitbucket-cloud-221449711.html|avoid]] having to manually type a password each time you pull using ssh. To add a key, click on your photo at the top right corner of Bitbucket page, Bitbucket settings, SSH keys, Add key. This trick is not appropriate for TACC clusters because we should not change our .ssh folder there. On the cluster, use https to clone instead of ssh. Do NOT skip this step. Before changing anything in a repository, read and abide to the conventions described in the main readme file.+  - Your code and documents should be stored in a Bitbucket repository like [[https://​bitbucket.org/​habilzare/​genetwork|https://​bitbucket.org/​habilzare/​genetwork]]. Sign up for an [[https://​bitbucket.org/​account/​signup/​|account]] and add your photo. Do NOT sign in using your Google account. Only then, send your username to Habil. If you are new to Bitbucket, take [[https://​guides.co/​g/​bitbucket-101/​11146|Bitbucket 101]]. You can [[https://​confluence.atlassian.com/​bitbucket/​use-the-ssh-protocol-with-bitbucket-cloud-221449711.html|avoid]] having to manually type a password each time you pull using ssh. To add a key, click on your photo at the top right corner of Bitbucket page, Bitbucket settings, SSH keys, Add key. This trick is not appropriate for TACC clusters because we should not change our .ssh folder there. On the cluster, use https to clone instead of ssh. Do NOT skip this step. Before changing anything in a repository, read and abide to the conventions described in the main readme file.
   - Do NOT use space in the file or folder names. Do NOT include binary files such as png, pdf, RData, etc. in a Bitbucket repository unless on an exceptional basis. Instead, use e.g., ''​rsync -avz -e ssh <​usrname>​@ls5.tacc.utexas.edu'' ​ or ''​scp ''​to transfer files, and document the exact paths in a readme file in the corresponding folder.   - Do NOT use space in the file or folder names. Do NOT include binary files such as png, pdf, RData, etc. in a Bitbucket repository unless on an exceptional basis. Instead, use e.g., ''​rsync -avz -e ssh <​usrname>​@ls5.tacc.utexas.edu'' ​ or ''​scp ''​to transfer files, and document the exact paths in a readme file in the corresponding folder.
   - If you want to use TACC resources, you first [[https://​portal.tacc.utexas.edu/​account-request|create]] an account, and then ask Habil to add you to a project. A simple test for running a job on Stampede cluster is the following. Look at their user [[https://​portal.tacc.utexas.edu/​user-guides/​stampede|guide]] or [[https://​srcc.stanford.edu/​sge-slurm-conversion|this]] table of commands for more details. \\  $ ssh <​username>​@stampede.tacc.utexas.edu \\  $ cd ~zare \\  login4.stampede(1)$ sbatch -p normal -n 1 -t 3 ./test.sh \\  We usually use Lonestar5 for computing and Ranch for storage of large data.   - If you want to use TACC resources, you first [[https://​portal.tacc.utexas.edu/​account-request|create]] an account, and then ask Habil to add you to a project. A simple test for running a job on Stampede cluster is the following. Look at their user [[https://​portal.tacc.utexas.edu/​user-guides/​stampede|guide]] or [[https://​srcc.stanford.edu/​sge-slurm-conversion|this]] table of commands for more details. \\  $ ssh <​username>​@stampede.tacc.utexas.edu \\  $ cd ~zare \\  login4.stampede(1)$ sbatch -p normal -n 1 -t 3 ./test.sh \\  We usually use Lonestar5 for computing and Ranch for storage of large data.
   - Every member should upload their photo to his profile in the wiki. Todo this, click on your username at the top right, then, Account. In addition, everyone should have a photo and their updated CV in pdf format on their personal page. [[:​file_view_cv_template.zip_543305154_cv_template.zip|This]] is an optional LaTeX template. The permission of the lab notebooks should be set to "​hidden"​and it is important that they be updated EVERY day. Write your posts in anti-chronological order so that the newest post comes at the top.   - Every member should upload their photo to his profile in the wiki. Todo this, click on your username at the top right, then, Account. In addition, everyone should have a photo and their updated CV in pdf format on their personal page. [[:​file_view_cv_template.zip_543305154_cv_template.zip|This]] is an optional LaTeX template. The permission of the lab notebooks should be set to "​hidden"​and it is important that they be updated EVERY day. Write your posts in anti-chronological order so that the newest post comes at the top.
-  - On your wiki account, got o Settings > Email Monitored Changes and set it to "Yes - one email per email per change"​. In this way, we can use the Discussion tab for each page and avoid sending too many emails for updates or asking question. A history of the discussions is saved too which is conveniently available. 
-  - On your lab notebook, click on "​…"​ (More options) > Notify, and check "Page discussions",​ so that when somebody wants to discuss something with you, you get notified by email. 
   - You can install Google Scholar [[https://​chrome.google.com/​webstore/​detail/​google-scholar-button/​ldipcbpaocekfooobnbcddclnhejkcpn?​hl=en|Button]] add-on for an easier way of searching Google Scholar. You select the paper title and then click on the little blue icon on the top right corner. For any paper which you want to cite on the lab wiki, find it on Google Scholar, click on "​More>​Cite"​ and copy the MLA format.   - You can install Google Scholar [[https://​chrome.google.com/​webstore/​detail/​google-scholar-button/​ldipcbpaocekfooobnbcddclnhejkcpn?​hl=en|Button]] add-on for an easier way of searching Google Scholar. You select the paper title and then click on the little blue icon on the top right corner. For any paper which you want to cite on the lab wiki, find it on Google Scholar, click on "​More>​Cite"​ and copy the MLA format.
   - Code style in Oncinfo lab: We follow Hadley Wickhams’s R Style [[http://​r-pkgs.had.co.nz/​style.html|Guide]] unless another convention is mentioned below. The goal is to include as much code as possible on 1 page so that it is easier to skim while keeping the overall structure such as proper indentation. \\  When writing R code, use "x <- 5" for assigning a value to a variable. Do NOT use "x = 5" or "​x<​-5"​. **Do NOT use underscore, '​_',​ in variable or function names**. Instead of "​inverse_of",​ use "​inverseOf"​ as a variable name so that you can select it by 1 click. Use "​inverse.of"​ as a function name to indicate it is a function not a variable. Almost all functions must return a list so that extending them will be easy. Use "##"​ for comments NOT a single "#"​. Write the name of the loaded object in a comment in front of load(). Avoid long lines of code. Most lines should be < 90 characters, and all lines must be <100 characters . Thus, do NOT include space when using = in function calls. Good example: ''​average <- mean(feet[ ,"​real"​]/​12+inches,​ na.rm=TRUE) ## Spaces only around "<​-"​ and after ","''​. The space in "''​[ ,''"​ is OK, which refers to all rows. It is OK not to place a space before the parenthesis after "''​if(''",​ "''​for(''",​ and alike. \\ When the line is long, it usually means you need to extract some of it and define a new variable right above that line.Data structures in R can be ordered from simple to complex as follows: number , vector, matrix, and list. Always use the simplest possible data structure, e.i., do not use a list when you can use a matrix.   - Code style in Oncinfo lab: We follow Hadley Wickhams’s R Style [[http://​r-pkgs.had.co.nz/​style.html|Guide]] unless another convention is mentioned below. The goal is to include as much code as possible on 1 page so that it is easier to skim while keeping the overall structure such as proper indentation. \\  When writing R code, use "x <- 5" for assigning a value to a variable. Do NOT use "x = 5" or "​x<​-5"​. **Do NOT use underscore, '​_',​ in variable or function names**. Instead of "​inverse_of",​ use "​inverseOf"​ as a variable name so that you can select it by 1 click. Use "​inverse.of"​ as a function name to indicate it is a function not a variable. Almost all functions must return a list so that extending them will be easy. Use "##"​ for comments NOT a single "#"​. Write the name of the loaded object in a comment in front of load(). Avoid long lines of code. Most lines should be < 90 characters, and all lines must be <100 characters . Thus, do NOT include space when using = in function calls. Good example: ''​average <- mean(feet[ ,"​real"​]/​12+inches,​ na.rm=TRUE) ## Spaces only around "<​-"​ and after ","''​. The space in "''​[ ,''"​ is OK, which refers to all rows. It is OK not to place a space before the parenthesis after "''​if(''",​ "''​for(''",​ and alike. \\ When the line is long, it usually means you need to extract some of it and define a new variable right above that line.Data structures in R can be ordered from simple to complex as follows: number , vector, matrix, and list. Always use the simplest possible data structure, e.i., do not use a list when you can use a matrix.
Line 26: Line 24:
   - If you are unfamiliar with prior, posterior, and likelihood, read about [[http://​%5Bhttp://​en.wikipedia.org/​wiki/​Bayesian_inference|Bayesian inference]].   - If you are unfamiliar with prior, posterior, and likelihood, read about [[http://​%5Bhttp://​en.wikipedia.org/​wiki/​Bayesian_inference|Bayesian inference]].
   - To use ref.bib bibliography in bibtex, do the following: \\ a) cd proj \\ b) git clone [[mailto:​git@bitbucket.org:​habilzare/​refs.git|git@bitbucket.org:​habilzare/​refs.git]] \\  c) At the bottom of your LaTeX document, write: \\  \bibliography{\detokenize{~/​proj/​refs/​refs}} \\  d) To add a new entry, find the appropriate format using "​Google Scholar Button"​ (see above, click on the quotation mark at the to right, and then BibTeX at the bottom) copy the entry and see if it is already in the refs.bib file. If not, add it in "**its right location"​** ​ (i.e., key are alphabetically ordered) and push. Use the key with the \cite command in your LaTeX file. To compile, use pdflatex, bibtex (without .tex), and pdflatex *2.   - To use ref.bib bibliography in bibtex, do the following: \\ a) cd proj \\ b) git clone [[mailto:​git@bitbucket.org:​habilzare/​refs.git|git@bitbucket.org:​habilzare/​refs.git]] \\  c) At the bottom of your LaTeX document, write: \\  \bibliography{\detokenize{~/​proj/​refs/​refs}} \\  d) To add a new entry, find the appropriate format using "​Google Scholar Button"​ (see above, click on the quotation mark at the to right, and then BibTeX at the bottom) copy the entry and see if it is already in the refs.bib file. If not, add it in "**its right location"​** ​ (i.e., key are alphabetically ordered) and push. Use the key with the \cite command in your LaTeX file. To compile, use pdflatex, bibtex (without .tex), and pdflatex *2.
-  ​- If you need to ssh into the lab machine you will need to have an account on the machine already. Then you will follow the following commands: ssh <user name>​@10.102.163.212 +  - Please cc Habil on any email that is related to scientific or logistic aspects of your research in the lab, your career development activities, and communications among lab members on issues related to the lab. When you send an email to multiple people, mention the primary addressee at the top. It helps drawing the attention of the addressee, and also shows your respect to others who do not need to read your whole message. Usually using "​reply-to-all"​ is preferred on emails with multiple recipients.
-  - Usually, the latest version of Ubuntu is missing some dependencies for the R packages Pigengene, WGCNA, and GEOquery. To easily install these dependencies,​ download [[:​file_view_ubuntuinstall.sh_614871151_ubuntuinstall.sh|this]] script, as well as [[:​file_view_pigengeneubuntuinstall.r_614318347_pigengeneubuntuinstall.r|pigengeneUbuntuInstall.R]] to a local directory. Navigate to that directory and then run: \\  $ chmod +x ubuntuInstall.sh \\  $ ./​ubuntuInstall.sh \\  $ Rscript pigengeneUbuntuInstall.R +
-  ​- Please cc Habil on any email that is related to scientific or logistic aspects of your research in the lab, your career development activities, and communications among lab members on issues related to the lab. When you send an email to multiple people, mention the primary addressee at the top. It helps drawing the attention of the addressee, and also shows your respect to others who do not need to read your whole message.+
   - As employees of UT Health, we can get facilitated appointments with UT Health primary care physicians (call: 210-450-9090).   - As employees of UT Health, we can get facilitated appointments with UT Health primary care physicians (call: 210-450-9090).
   - If you are considering ultimately getting jobs in computation biology or bioinformatics,​ have a look at postings at the [[http://​bioinformatics.org|bioinformatics.org]] website __within the first week__ ​ after joining the lab. For academic positions, see the Nature Jobs and Science Careers websites. Read the articles on "​[[http://​oncinfo.org/​how_to|How to]] rescue US biomedical research from its systemic flaws?"​ if you are, or want to be, a PhD student.   - If you are considering ultimately getting jobs in computation biology or bioinformatics,​ have a look at postings at the [[http://​bioinformatics.org|bioinformatics.org]] website __within the first week__ ​ after joining the lab. For academic positions, see the Nature Jobs and Science Careers websites. Read the articles on "​[[http://​oncinfo.org/​how_to|How to]] rescue US biomedical research from its systemic flaws?"​ if you are, or want to be, a PhD student.