Blog Writing Guide

A reference guide for maintaining consistent, high-quality technical blog posts on this bioinformatics portfolio site.


Category System

Use these standardized categories to organize blog posts. Posts can have multiple categories, but aim for 1-3 most relevant ones.

Primary Categories

  • Bioinformatics Tools & Workflows Posts about bioinformatics software, pipelines, command-line tools, and workflow management systems (Nextflow, Snakemake, etc.)

  • Python & Programming Python tutorials, scripting tips, data processing code, automation, package reviews

  • Genomics & Sequencing Analysis Sequencing technologies (especially nanopore), genomic data analysis, variant calling, assembly, RNA modifications, AMR genomics

  • Data Visualization Plotting libraries (matplotlib, seaborn, plotly), visualization best practices, figure design for publications

  • Research Methods Experimental design, reproducible research, statistical analysis, computational methods in biology

  • Career & Learning PhD life, skill development, learning resources, transitioning between research areas, professional development

Category Usage Examples

categories: [Bioinformatics Tools & Workflows, Python & Programming]
categories: [Genomics & Sequencing Analysis]
categories: [Career & Learning]

Post Template Guidelines

Minimal Required Post Structure

Every blog post should be a .qmd file in the posts/ directory with this YAML frontmatter:

---
title: "Clear, Descriptive Title of Your Post"
date: "2025-01-15"
description: "A compelling 1-2 sentence summary that appears in listings and search results"
categories: [Primary Category, Secondary Category]
author: "Bhargava Reddy Morampalli"
---

Post Structure Recommendations

  1. Opening paragraph: State the problem or learning objective clearly
  2. Prerequisites/Requirements: List required software, packages, or knowledge
  3. Main content: Step-by-step instructions with code examples
  4. Results/Output: Show what readers should expect
  5. Conclusion: Summarize key takeaways, link to related resources

Recommended Post Length

  • Tutorial posts: 1000-2000 words with substantial code examples
  • Tool reviews: 500-1000 words
  • Quick tips: 300-500 words
  • Deep dives: 2000+ words for complex topics

Prioritize clarity over length. Better to have a focused 600-word post than a rambling 2000-word one.


Code Block Best Practices

Python Code

Use proper syntax highlighting and include imports:

```python
import pandas as pd
import numpy as np
from pathlib import Path

# Load genomic data
df = pd.read_csv("variants.tsv", sep="\t")
print(df.head())
```

Bash/Shell Commands

Show the command prompt for clarity:

```bash
# Download reference genome
wget https://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/...

# Run basecalling with Dorado
dorado basecaller sup pod5/ > calls.bam
```

Nextflow

```groovy
process BASECALLING {
    conda 'bioconda::dorado'

    input:
    path pod5_dir

    output:
    path "calls.bam"

    script:
    """
    dorado basecaller sup ${pod5_dir} > calls.bam
    """
}
```

Include Output Examples

Show readers what to expect:

```bash
$ samtools flagstat calls.bam
```

```
1245678 + 0 in total (QC-passed reads + QC-failed reads)
1245678 + 0 primary
0 + 0 secondary
0 + 0 supplementary
```

Content Strategy

1. Learning in Public

Document new tools, concepts, or skills as you master them:

  • “Getting Started with Oxford Nanopore Direct RNA Sequencing”
  • “My First Nextflow Pipeline: Lessons Learned”
  • “Understanding CIGAR Strings in SAM/BAM Files”

Benefit: Reinforces learning, helps others on same journey, demonstrates growth mindset

2. Tutorial-Style Posts

Solve specific, practical problems:

  • “How to Extract Methylation Calls from Nanopore BAM Files”
  • “Automating Quality Control Reports with Python and Quarto”
  • “Building a Custom Variant Annotation Pipeline”

Benefit: High SEO value, directly useful to readers, showcases technical expertise

3. Research Insights (Without Scooping Yourself)

Share methodology and learnings without revealing unpublished results:

  • “Computational Challenges in Detecting RNA Modifications”
  • “Comparing Assembly Algorithms for Bacterial Genomes”
  • “Best Practices for Reproducible Genomics Analysis”

Warning: Never disclose unpublished data, novel findings, or results before publication. Focus on methods, not discoveries.

4. Tool Comparisons and Reviews

Evaluate bioinformatics tools objectively:

  • “Dorado vs. Guppy: Nanopore Basecalling Benchmarks”
  • “Python Libraries for Genomic Data: Pandas, Polars, or DuckDB?”
  • “Version Control for Bioinformatics: Git Workflows That Actually Work”

Benefit: Helps community make informed choices, demonstrates analytical thinking


Writing Tips

Titles

Good titles (specific, searchable): - “Installing Minimap2 on macOS with Conda” - “Parsing VCF Files with Python: A Practical Guide” - “Five Python Functions Every Bioinformatician Should Know”

Bad titles (vague, not searchable): - “Thoughts on Alignment” - “My Research Update” - “Interesting Tool I Found”

Code Examples

  • Always test code before publishing – broken code frustrates readers
  • Use realistic example data – toy examples are fine but show they’re simplified
  • Include error handling where appropriate
  • Comment complex logic – assume reader is competent but unfamiliar with your specific approach
  • Link to full scripts in GitHub repos when code is too long for post

Academic Audience Considerations

Your readers are likely: - Graduate students learning bioinformatics - Researchers transitioning to computational work - Bioinformaticians seeking specific solutions

Therefore: - Don’t dumb down – assume scientific literacy - Define bioinformatics jargon – but not basic biology terms - Show rigorous thinking – mention edge cases, limitations, alternatives - Emphasize reproducibility – include version numbers, random seeds, environment specs

Voice and Tone

  • Professional but conversational – write like you’re explaining to a colleague over coffee
  • Be honest about limitations – “This approach works for my use case but may not scale to…”
  • Show enthusiasm – it’s okay to be excited about tools and methods
  • Avoid hype – don’t oversell tools or approaches

Publishing Checklist

Before publishing a new post:


File Organization

posts/
├── 2025-01-15-nanopore-basecalling/
│   ├── index.qmd
│   ├── thumbnail.png
│   ├── figure1.png
│   └── example_data.tsv
└── 2024-12-20-python-pandas-genomics/
    ├── index.qmd
    └── plots/
        ├── fig1.png
        └── fig2.png
  • Each post in its own dated directory
  • Use index.qmd as the main file
  • Store images and data files alongside the post
  • Use descriptive directory names (date + slug)

Ideas for Future Posts

Keep a running list of post ideas:

Tutorial Ideas

  • Setting up a bioinformatics workstation (conda, mamba, pip)
  • Parsing BLAST output with Biopython
  • Building interactive plots with Plotly for genomic data
  • Automated QC reporting for sequencing runs

Learning in Public Ideas

  • Weekly learning logs during focused skill development
  • “Today I Learned” micro-posts on specific commands or tricks
  • Summarizing bioinformatics papers with implementation notes

Tool Review Ideas

  • Benchmarking alignment tools (minimap2, bwa, bowtie2)
  • Nextflow vs. Snakemake: which to learn first?
  • Best practices for managing conda environments

Remember: The goal is to document your learning journey, share useful knowledge with the community, and demonstrate your technical expertise to potential employers and collaborators. Every post is an opportunity to clarify your thinking and help others solve problems.

Back to top