tommytang.bsky.social
Director of computational biology. On my way to helping 1 million people learn bioinformatics. Educator, Biotech, single cell. Also talks about leadership.
tommytang.bio.link
1,494 posts
3,465 followers
1,335 following
Regular Contributor
Active Commenter
comment in response to
post
I hope you've found this post helpful.
Follow me for more.
Subscribe to my FREE newsletter divingintogeneticsandgenomics.ck.page/profile
comment in response to
post
Key takeaways:
• Expertise is specific, not universal
• Social media = valuable learning tool
• Save & study what you find
• "I don't know" = strength, not weakness
comment in response to
post
The best experts I know are also the most eager learners. They're the first to say "I don't know, but let's figure it out together" (7/8)
comment in response to
post
Pro tip: Create an "Insights" folder in your email. Forward interesting posts there. I review mine weekly - it's become my personal knowledge bank (6/8)
comment in response to
post
Real example: A post about batch effects in scRNA-seq changed how I approach QC. Being humble enough to learn from others unlocked better analysis (5/8)
comment in response to
post
Social media isn't just for memes. Critical single-cell insights like "UMAP distances aren't meaningful" - I learned these from Twitter threads (4/8)
comment in response to
post
Personal story: I was comfortable with bulk RNA-seq analysis, but when I first saw spatial transcriptomics, I felt like a beginner again. That's normal! (3/8)
comment in response to
post
Truth: Bioinformatics is like an ocean. RNA-seq, proteomics, single-cell, structural biology - each could be a lifetime of study. No one masters it all (2/8)
comment in response to
post
I hope you've found this post helpful.
Follow me for more.
Subscribe to my FREE newsletter divingintogeneticsandgenomics.ck.page/profile
comment in response to
post
7/ Have you ever struggled with hidden characters messing up your analysis? Share your experience below! ⬇️
comment in response to
post
6/ Key Takeaways:
✅ Always check for hidden characters in new datasets
✅ Use cat -A or sed -n l to reveal them
✅ On Mac, install GNU core utilities (brew install coreutils) and use gcat -A
comment in response to
post
5/ Why does this matter in bioinformatics?
• Hidden tabs can cause extra columns in CSV/TSV files
• Some programs expect spaces but get tabs (or vice versa)
• Data parsing in R/Python may fail due to inconsistent delimiters
comment in response to
post
4/ Another method: sed -n l
sed -n l data.tsv
Output:
ID\thead1\thead2\thead3\thead4$
1\t25.5\t1364.0\t22.5\t13.2$
Here, tabs appear as \t, making them easier to spot.
comment in response to
post
Example output:
ID^Ihead1^Ihead2^Ihead3^Ihead4$
1^I25.5^I1364.0^I22.5^I13.2$
2^I10.1^I215.56^I1.15^I22.2$
🔹 ^I represents tabs
🔹 $ marks end of line
comment in response to
post
3/ How to reveal hidden characters?
Use cat -A to make them visible:
cat -A data.tsv
comment in response to
post
2/ These hidden characters can cause issues when parsing files in bash, Python, R, or awk, leading to:
❌ Unexpected column misalignment
❌ Scripts failing silently
❌ Incorrect data extraction
comment in response to
post
1/ In UNIX, files often contain hidden characters like tabs (\t), spaces, carriage returns (\r), and invisible newlines.
comment in response to
post
I hope you've found this post helpful.
Follow me for more.
Subscribe to my FREE newsletter divingintogeneticsandgenomics.ck.page/profile
comment in response to
post
Key takeaways:
• Restart first, debug later
• Fresh sessions = reproducible science
• Trust the computer, question your code
• Document ALL dependencies
comment in response to
post
Try this: Before any important analysis:
• Restart R/Python
• Clear all variables
• Run entire script This catches hidden bugs early (8/9)
comment in response to
post
Pro tip for reproducibility: Can your analysis run from start to finish in a fresh session? If not, you might have hidden dependencies 🔍 (7/9)
comment in response to
post
Here's a truth bomb: When code fails, it's rarely the computer's fault. 99.9% of the time, it's human error. Restart helps you spot YOUR mistakes (6/9)
comment in response to
post
Another case: Memory-intensive genomic analysis crashing randomly. After restart + fresh session: smooth sailing. Always clear your workspace! (5/9)
comment in response to
post
Real example: One student had different versions of ggplot2 loaded in the same session. Plots kept failing. Restart = clean slate = problem solved (4/9)
comment in response to
post
Think of your R/Python session like a kitchen: The longer you cook, the messier it gets. Variables conflict, packages clash, memory fills up (3/9)
comment in response to
post
As a bioinformatics trainer, I've seen countless "mysterious" bugs vanish after a simple restart. Here's the science behind why this works (2/9)
comment in response to
post
Is it possible to still have password less log in if you set the passphrases?
comment in response to
post
Key takeaways:
1. Set up SSH keys NOW
2. Never share private keys
3. Use ssh-copy-id for servers
Action: Set up keys for all your frequently accessed systems
comment in response to
post
True story: Watched a researcher manually type passwords 50+ times/day for a year. SSH keys cut their login time from 30s to 2s each time
comment in response to
post
Test it:
```
ssh username@remote-server
```
If it works without password, you're set!
comment in response to
post
Common errors:
- Wrong permissions (too open)
- Missing .ssh directory
- Pasting private key instead of public
These break SSH security
comment in response to
post
Pro tip: If authorized_keys doesn't exist, create it:
```
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
comment in response to
post
Add your key to authorized_keys:
```
echo "your-copied-public-key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
comment in response to
post
On remote server, create/check .ssh directory:
```
mkdir -p ~/.ssh
chmod 700 ~/.ssh
```
This sets correct permissions
comment in response to
post
But what if ssh-copy-id isn't available? Here's the manual way:
1. First, copy your public key:
```
cat ~/.ssh/id_ed25519.pub
```
comment in response to
post
To set up passwordless login:
```
ssh-copy-id username@remote-server
```
Enter password ONE LAST TIME. Done!
That's it! Try logging in - no password needed
comment in response to
post
Your keys are now in ~/.ssh/:
- id_ed25519 (private key - keep secret!)
- id_ed25519.pub (public key - share this)
comment in response to
post
Quick setup guide:
1. Open terminal
2. Run: ssh-keygen -t ed25519
3. Press enter (empty passphrase for passwordless)
This creates your key pair
comment in response to
post
Real world uses:
- Logging into HPC clusters
- Managing GitHub repos
- Accessing cloud VMs
- Secure file transfers
Without typing passwords!
comment in response to
post
SSH keys are like digital fingerprints - unique pairs of files that let computers recognize you. Think of it as your computer's passport