Monday, May 18, 2026

Genomic Analysis - 1

Integrative Genomics Workflow

This interactive dashboard synthesizes key methodologies in modern genetics. The flow begins with raw biological profiling (Expression Data), moves to linking phenotypes with genotypic variations across populations (Association Mapping/GWAS), and culminates in using whole-genome profiles to forecast complex traits (Genome Prediction).

Analytical Pipeline

🩴

Transcriptomics

RNA-Seq & Microarrays. Identifying differentially expressed genes.

→
⚏

Genotyping

SNP arrays & sequencing. Cataloging genetic markers across populations.

→
📈

Statistical Modeling

GWAS & Genomic Selection. Mapping associations and training predictive models.

Key Concept: Genetic Markers

Measurable variations in DNA (like SNPs - Single Nucleotide Polymorphisms) used to identify individuals or species, and track inheritance of closely linked traits.

Key Concept: Breeding Value

The value of an individual as a genetic parent. Genomic prediction models aim to accurately estimate this value based solely on DNA marker profiles.

Design and Analysis of Expression Data

Expression analysis evaluates the transcriptomic activity of genes under specific conditions. The interactive Volcano Plot below visualizes the results of a differential expression analysis. It plots statistical significance (-log10 p-value) against effect size (log2 Fold Change).

Differential Gene Expression (Condition A vs B)

Hover over points to identify specific genes. Thresholds: |log2FC| > 1, p < 0.05.

Interaction Guide

Points in the upper left (green) are significantly downregulated. Points in the upper right (red) are significantly upregulated. Points low on the Y-axis represent non-significant changes regardless of fold magnitude.

Genome Wide Association Studies (GWAS)

GWAS scans markers across the complete sets of DNA of many individuals to find genetic variations associated with a particular phenotype. The Manhattan plot displays the significance of these associations across all chromosomes.

Manhattan Plot: Trait Z

Click on prominent peaks (high Y-axis values) to examine marker details.

Marker Details

🖱

Select a point on the chart to view locus statistics.

SNP ID
--
Chromosome
--
Position (bp)
--
Significance (p-value)
--

Markers passing the genome-wide significance threshold (red line) indicate a region of the genome statistically linked to the trait variance. Further functional validation is typically required.

Genome Selection & Prediction

Unlike GWAS which focuses on finding few significant markers, Genomic Selection uses all markers simultaneously to calculate Genomic Estimated Breeding Values (GEBVs). Different statistical models handle the genetic architecture of traits differently.

Model Predictive Accuracy

Comparing correlation between predicted and observed values (r) across traits.

RR-BLUP

Assumes all markers have small, equal variance. Excellent for highly polygenic traits.

BayesA

Allows each marker to have its own variance, drawn from a specific distribution.

BayesB

Assumes many markers have zero effect, identifying major QTLs better.

Random Forest

Machine learning approach capable of capturing non-linear interactions (epistasis).

Genomic Markers and QTL Mapping

G

Genomic Marker Analysis Suite

Interactive Companion Application

Molecular Marker-Based Classification

Understanding genetic diversity within populations is fundamental to breeding and conservation. This section explores how molecular markers (like SNPs or SSRs) are used to quantify genetic relationships, group similar individuals, and assess the statistical reliability of these groupings.

1. Similarity Measures

Before clustering, we calculate a pairwise distance or similarity matrix. Different coefficients handle shared band presence/absence differently.

Jaccard Coefficient: Ignores shared absences. Good for dominant markers.
J = a / (a + b + c)
Simple Matching (SM): Considers both shared presence and shared absence as similarities.
SM = (a + d) / (a + b + c + d)
2. Clustering & Bootstrapping

Methods like UPGMA or Ward's method use the similarity matrix to build hierarchical groups.

Bootstrapping (Validation)

How robust are these clusters? Resampling the marker data with replacement many times over (e.g., 1000x) tests grouping accuracy. A high bootstrap value indicates true, reproducible lineages.

Principal Coordinate Analysis (PCoA)

Visualization of clustering based on a similarity matrix.

Simulated Data

Thursday, November 6, 2014

Tuesday, July 22, 2014

You’re not allowed bioinformatics anymore

You’re not allowed bioinformatics anymore 
is interesting post by opiniomics blog.

An eye-opener reading for those who believe that science can be done only in traditional way.

Monday, March 31, 2014

Perl Program to find Open Reading Frames (ORFs) in DNA sequence and then converting into protein


Exported from Notepad++
#!/usr/bin/perl use strict; # # set to 1 for lots of debugging output # use constant DEBUG => 0; # # minimum size of ORF to output # use constant MINSIZE => 20; # # hash to make complement sequence # my %compnuc = ( 'A' => 'T', 'T' => 'A', 'C' => 'G', 'G' => 'C', '-' => '-', ' ' => ' ', '*' => '*', '.' => '.'); # # hash for translating DNA # my %DNAtoAA = ( 'GCT' => 'A', 'GCC' => 'A', 'GCA' => 'A', 'GCG' => 'A', 'TGT' => 'C', 'TGC' => 'C', 'GAT' => 'D', 'GAC' => 'D', 'GAA' => 'E', 'GAG' => 'E', 'TTT' => 'F', 'TTC' => 'F', 'GGT' => 'G', 'GGC' => 'G', 'GGA' => 'G', 'GGG' => 'G', 'CAT' => 'H', 'CAC' => 'H', 'ATT' => 'I', 'ATC' => 'I', 'ATA' => 'I', 'AAA' => 'K', 'AAG' => 'K', 'TTG' => 'L', 'TTA' => 'L', 'CTT' => 'L', 'CTC' => 'L', 'CTA' => 'L', 'CTG' => 'L', 'ATG' => 'M', 'AAT' => 'N', 'AAC' => 'N', 'CCT' => 'P', 'CCC' => 'P', 'CCA' => 'P', 'CCG' => 'P', 'CAA' => 'Q', 'CAG' => 'Q', 'CGT' => 'R', 'CGC' => 'R', 'CGA' => 'R', 'CGG' => 'R', 'AGA' => 'R', 'AGG' => 'R', 'TCT' => 'S', 'TCC' => 'S', 'TCA' => 'S', 'TCG' => 'S', 'AGT' => 'S', 'AGC' => 'S', 'ACT' => 'T', 'ACC' => 'T', 'ACA' => 'T', 'ACG' => 'T', 'GTT' => 'V', 'GTC' => 'V', 'GTA' => 'V', 'GTG' => 'V', 'TGG' => 'W', 'TAT' => 'Y', 'TAC' => 'Y', 'TAA' => ':', 'TAG' => ':', 'TGA' => ':'); # # program will open FASTA files end with *.fa # print "Enter your file name with .fa extension\n"; my $file=<STDIN>; chomp($file); my $seq = ""; my $chr = $file; $chr =~ s/\.fa//; $chr =~ s/\.\///; open (FILE, $file) || die "cannot open for reading $file: $!\n"; # # reading FASTA formated files, read each line and append # it to the previous. # # ignore the def line # # this assumes that each chromosome is in a file by itself # while (<FILE>) { chop; if ($_ !~ /^>/) { $seq .= $_; } } print STDERR "length of DNA is " . length($seq) . "\n"; close (FILE); # # Make reverse complement # my $revseq = ""; my $revtmp = reverse $seq; for (my $j = 0; $j < length($revtmp); $j++) { $revseq .= $compnuc{ substr($revtmp, $j, 1) }; } # # Make translations # my $pept = ""; my $start = 0; my $stop = 0; open (FILE, ">$chr.peptides.fa") || die "cannot open file $!\n"; # # $i loop designates which strand, 0 = Watson and 1 = Crick # for (my $i = 0; $i < 2; $i++) { if ($i == 1) { $seq = $revseq; } # # $j is for reading frame, 1, 2 or 3 # for (my $j = 0; $j < 3; $j++) { print STDERR "FRAME " . (($j + 1) + ($i * 3)) . " \n"; if (DEBUG) { print STDERR "\n*"; } # # translation loop # $x loop is for walking throught the framing frame looking for a peptide # for (my $x = $j; $x < length($seq); $x += 3) { if (DEBUG) { print STDERR "= $x "; } # # Beginning of translation loop # Only find peptides that start with ATG (methonine) # if ( $DNAtoAA{ substr($seq, $x, 3) } eq "M" ) { $start = $x; $stop = $x + 3; # # Translate until a STOP is found (':') or the end of the sequence is # reached $y loop is used after a start has been found, now we # translate. The loop starts with a stop is found ':' or $y is larger # than the length of the sequence minus 3. This is so we always have # a full codon. # for (my $y = $x; ($DNAtoAA{ substr($seq, $y, 3) } ne ":") && ($y < (length($seq) - 3)); $y += 3) { $pept .= $DNAtoAA{ substr($seq, $y, 3) }; $stop = $y + 3; if (DEBUG) { print STDERR "\n+ " . (length($seq) - $start) . " -> " . (length($seq) - ($stop + 2)) . " = $pept"; } } $x = $stop; # # if the peptide is 20 amino acids or longer write it to a FASTA file with 80 char lines # if (length($pept) > (MINSIZE - 1)) { my $peptcoord = $chr; $peptcoord =~ s/chr//; if ($i == 0) { $peptcoord .= ":" . ($start + 1) . ":" . ($stop + 3); } else { $peptcoord .= ":" . (length($seq) - $start) . ":" . (length($seq) - ($stop + 2)); } print FILE ">ORF|" . $peptcoord . "| frame " . (($j + 1) + ($i * 3)). "\n"; # # output sequence in 80 char lines, while processes all sequences larger than 80 characters # in length # while (length($pept) > 80) { print FILE substr($pept, 0, 80) . "\n"; $pept = substr($pept, 80, length($pept)); if (DEBUG) { print STDERR "-"; } } # # print last bit of $pept # print FILE $pept . "\n"; if (DEBUG) { print STDERR "."; } } $pept = ""; } } } } # # Close chromosome sequence file # close (FILE); print STDERR "\n\n"; exit;

Thursday, February 27, 2014

Confused About Distribution....

If you are confused when, how and which distribution one should use for one's analysis then you  must go through below links... Very interactive and informative way they have explained... enjoy

Diagram of distribution relationships

Univariate Distribution Relationships

Tuesday, January 28, 2014

pbc wrap command to put protein in centre of the box in VMD

If protein moves to the corner or side of the box and you want to put it back to the centre use wrap command:

pbc wrap -centersel "protein" -center com -compound residue -all