General guidelines for conducting research in the Oncinfo Lab

  1. To join the Oncinfo Lab, you need to:
    a) Be organized and disciplined, otherwise your efforts will be fruitless and lost even if you make important discoveries. Other lab members will enjoy working with you if your code is clean and you can clearly talk about your project.
    b) Work hard, otherwise even a genius will not get to anywhere if they do not move.
    c) Be talented. Nobody knows everything that is needed to do multidisciplinary research.You should be able to learn many things that you were not thought in courses. You often need to find novel solutions for small and big challenges that you face because you are the first person who is working on your specific study.
    d) Be knowledgeable because we are not interested in reinventing the wheel.
    The above items are ordered based on importance. The most critical one is discipline.
  2. All Google docs that need to be edited by lab members should be put in Oncinfo 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.
  3. If you have a lab computer, add the tag number written on the back of the laptop, your name, and the date you start using it in the table of computers. Your drive must be always encrypted. E.g., on macOS, you can make sure FileValut is on like this. Take a similar screenshot that shows your name at the upper right corner, and post it on your lab notebook.
  4. Pass the online training courses required by the University e.g., conflict of interest, safety, etc.
  5. 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 tutorial for beginners or the introduction to Bio-Linux.
  6. R is primarily used for statistical analysis and other scripting purposes in Oncinfo Lab. This is a good online course on R which takes about 1 month to complete. A couple of days should be enough to read this good guide for starters to get the basis ideas, or cover the introduction section from R-Tutorial. DataCamp facilitates reading about R and running examples at the same time using a browser . Those who know R to some extend can use these books: Computational Genomics with R, Bioinformatics with R Cookbook, and Advanced R by Hadley Wickham to gradually learn more as they proceed in a project. The next step after learning R is to learn Bioconductor .
  7. Using Emacs as a powerful, general purpose, text editor is encouraged (tutorial). In terminal, you can start it by typing emacs even in an SSH session. On Ubuntu you can simply install Emacs using Software Center, or by Package Synaptics, or by the following command: sudo apt-get install emacs. On OS X, you can install Emacs For MAC OS X, which is better than Aquamacs. A less recommended option is Emacs Modified for macOS, which supports ESS and AUCTeX. You can customize your emacs by editing .emacs file. Feel free to copy some, but not all, commands from Habil's .emacs file for macOS. As of 2019, his favorite packages include: tabbar, tabbar-ruler, rainbow-delimiters, idle-highlight-in-visible-buffers-mode, auto-highlight-symbol, auto-complete-auctex, auto-complete, and ess. For guidelines on installing these packages and other emacs customizations, see the notes on How to page.
  8. Using proprietary file formats is not professional when you are sharing information (e.g., your CV) with others. The pdf and png formats are OK and portable. Use Google Docs instead of .docx, Google Presentation instead of .ppt, .zip or tar.gz instead of rar, etc.
  9. This video illustrates transcription (wikipedia, video 2), more videos on gene expression (wikipedia), translation (detailed), etc.
  10. All members should know about central dogma of biology which is almost enough biological knowledge to start the majority of projects. Familiarity with some basic concepts such as exon, intron, etc. is helpful. Watch animations from DNA Learning Center.
  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.
  12. For future reference, please add the link to your presentations and drafts on the drafts page. At a minimum, please include: the author, the date, the audience, and the subject.
  13. All members should read and follow 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.
  14. Your code and documents should be stored in a Bitbucket repository like Sign up for an 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, spend an hour on the tutorial. Taking Bitbucket 101 is NOT needed for beginners. You can 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 mess up with other's git folders on the cluster. You should only clone, pull, and push in your own home or work directory. Do NOT skip this step. Before changing anything in a repository, read and abide to the conventions described in the main readme file.
  15. 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> or scp to transfer files between the cluster and your computer, and document the exact paths in a readme file in the corresponding folder. Add the readme file to the repository.
  16. If you want to use TACC resources, you first create an account, and then ask Habil to add you to a project. We usually use Lonestar5 for computing, and we archive large data on Ranch based on this protocol. A simple test for running a job on the Lonestar cluster is the following. Look at their user guide and this table of commands for more details.
    $ ssh <username>
    $ cd ~zare
    login1.ls5(1099)$ cat ./

    login1.ls5(1099)$ sbatch ./
    You can monitor your jobs using squeue -u <usrname>. The output will be saved in the tests subfolder. If there are multiple files in this folder, look at the newest one.
    The above command will submit the job to the development queue. If you want to submit a job to the normal queue, you can do the following:
    login1.ls5(1099)$ sbatch -p normal -n 1 -t 2 ./
  17. 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. This is an optional LaTeX template. The permission of any lab notebook (lano) should be set to “hidden”and it is important that they be updated EVERY day. CiviHosting provides us with two edit modes: ckg and DW. Use the one that is more convenient for you. Write your posts in anti-chronological order so that the newest post comes at the top. For facilitating future reference, avoid sending data as attachments. Instead, upload files to your lano and link to them where needed.
  18. You can install Google Scholar 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. Also, use Paperpile for easy citation in Google doc, and Math Equations for writing and manipulating equations on Google presentations.
  19. Create a Nature account for yourself. To get a monthly list of published papers in Nature Methods, subscribe to the corresponding alert . This can help you get a sense of where the field is going. You can also create an alert on the Google Scholar to get regular updates on what is being published on the specific topic of your study.
  20. Code style in Oncinfo lab: We follow Hadley Wickhams’s R Style 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.
  21. Never copy code, instead generalize your code and write functions. If you are copying more than a line of code, most likely you are doing something wrong.
  22. In your code, avoid using one letter variables such as i or a because they are very hard to track in the editor. Instead use ind or i1. Also, your variable name must be different from built-in functions such as ls in R.
  23. When possible, give and use column and row names to the matrixes. Also, give and use names for vectors.
  24. Do’s and don’ts when submitting papers.
  25. Make sure that your home directory and also your work directory on the cluster are at least readable to the group. E.g., In your .bashrc, set umask 007 and do the following:
    chmod -R g+rwX ~ ; cdw; chmod -R g+rwX; cds; chmod -R g+rwX
    chmod 600 ~/.ssh/id_rsa

    There might be some exceptions like your private ssh key at ~/.ssh/id_rsa which must be readable only by you. You need to do this on ALL clusters including Lonestar and Ranch. On Ranch, adding umask in .bashrc. does not work. Instead, create or modify ~/.cshrc.
  26. If you are unfamiliar with prior, posterior, and likelihood, read about Bayesian inference.
  27. To use ref.bib bibliography in bibtex, do the following:
    a) cd proj
    b) git clone
    c) At the bottom of your LaTeX document, write:
    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.
  28. 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. When possible, reply to the previous email on a topic and avoid creating another thread unnecessarily, which will complicate future references. Emails should be receive some sort of reply within 24 hours even if it is short like “I'll work on it”. Otherwise, you will start your next email with “Sorry for the delay”.
  29. As employees of UT Health, we can get facilitated appointments with UT Health primary care physicians (call: 210-450-9090).
  30. If you are considering ultimately getting jobs in computational biology or bioinformatics, have a look at postings at the website within the first week after joining the lab. For academic positions, see the Nature Jobs and Science Careers websites. Read the articles on “How to rescue US biomedical research from its systemic flaws?” if you are, or want to be, a PhD student.
  31. If you want to use ROSMAP data, please create a Synapse account, add your information to this file, and upload it again to Oncinfo without changing the file name. Then, let Habil know so that he uploads it on the Synapse website.

Some references

  1. Two machine learning bibles, which summarize important topics in the field up to 2005: Bishop (1,2 ) and Hasite et al..
  2. Biostars is a good forum, similar to Stack Overflow in structure, but focused on bioinformatics and Computational Biology.
  3. List of free online bioinformatics courses and some interesting events in Bioconductor.
  4. This is a good online course on Probabilistic Graphical Models by Daphne Koller.
  5. Bayesian Reasoning and Machine Learning, a good introductory book by David Barber.
  6. List of bioinformatics workshops.
  7. A 5-minutes introduction to next-generation sequencing video.

Fun stuff

  1. Inner Life Of A Cell.
  2. The Dark Age of the Universe, a good visualization of the big bang
  3. Pigeons can learn to diagnose breast cancer with 99% accuracy.
  4. CRISPR is an evolutionary tool for editing DNA, which reduces the time and cost of genome modification by an order of magnitude.