GSE44591 Processing Pipeline

RNA-Seq code_examples 1 step

Publication

Genome-wide analysis reveals SR protein cooperation and competition in regulated splicing.

Molecular cell (2013) — PMID 23562324

Dataset

GSE44591

Genome-wide Analysis Reveals SR Protein Cooperation and Competition in Regulated Splicing

Warning: Pipeline descriptions and code snippets may be inferred or AI-generated. Use them only as a starting point to guide analysis, and validate before use.
  1. 1

    Density files on two different strands were generated by using bedItemOverlapCount and wigToBigWig programs from UCSC kent source package.

    UCSC tools vLatest available from UCSC Kent Source GitHub
    $ Bash example
    # This script assumes the input 'aligned_reads.bed' is a BED6+ file (e.g., from `bedtools bamtobed` on a BAM file), where the 6th column contains strand information ('+' or '-').
    # It also assumes a reference genome (e.g., hg38) and its corresponding .chrom.sizes file.
    # The generation of 'genomic_bins_100bp.bed' is shown as an example, but typically this file would be pre-generated.
    
    # --- Configuration Variables ---
    GENOME_ASSEMBLY="hg38" # Placeholder: Replace with your actual genome assembly (e.g., hg19, mm10)
    INPUT_BED="aligned_reads.bed" # Placeholder: Replace with your input BED file of aligned reads
    BIN_SIZE=100 # Placeholder: Define the size of genomic bins for density calculation
    
    # --- Installation (if not already installed) ---
    # UCSC tools are typically downloaded as binaries or compiled from source.
    # They are often available via bioconda:
    # conda install -c bioconda ucsc-beditemoverlapcount ucsc-wigToBigWig ucsc-fetchchromsizes
    # conda install -c bioconda bedtools # For bedtools makewindows
    
    # --- Step 1: Fetch chromosome sizes for the genome assembly ---
    # This file is required by wigToBigWig and bedtools makewindows
    fetchChromSizes "${GENOME_ASSEMBLY}" > "${GENOME_ASSEMBLY}.chrom.sizes"
    
    # --- Step 2: Generate fixed-size genomic bins ---
    # This step uses bedtools, which is not part of UCSC tools, but is commonly used for this purpose.
    # If you have a pre-existing bins file, you can skip this.
    # The 'otherFile' for bedItemOverlapCount needs to be a BED file of regions to count overlaps against.
    bedtools makewindows -g "${GENOME_ASSEMBLY}.chrom.sizes" -w "${BIN_SIZE}" > genomic_bins_${BIN_SIZE}bp.bed
    
    # --- Step 3: Separate aligned reads by strand ---
    awk -v OFS='\t' '$6 == "+"' "${INPUT_BED}" > "${INPUT_BED%.bed}_plus.bed"
    awk -v OFS='\t' '$6 == "-"' "${INPUT_BED}" > "${INPUT_BED%.bed}_minus.bed"
    
    # --- Step 4: Use bedItemOverlapCount to count reads in each genomic bin ---
    # bedItemOverlapCount outputs a BED file with an additional score column (the count).
    # Output format: chrom start end name score strand count
    # We are interested in the 'count' column (7th column) as the density score.
    bedItemOverlapCount "${GENOME_ASSEMBLY}" "${INPUT_BED%.bed}_plus.bed" genomic_bins_${BIN_SIZE}bp.bed "${INPUT_BED%.bed}_plus_counts.bed"
    bedItemOverlapCount "${GENOME_ASSEMBLY}" "${INPUT_BED%.bed}_minus.bed" genomic_bins_${BIN_SIZE}bp.bed "${INPUT_BED%.bed}_minus_counts.bed"
    
    # --- Step 5: Convert the BED file with counts to WIG format ---
    # This is an inferred step, as bedItemOverlapCount does not directly output WIG, and no direct UCSC tool converts BED+score to WIG.
    # We extract chrom, start, end, and the count (7th column) and format it as a fixedStep WIG file.
    # WIG 'start' is 1-based, so we use $2+1 from 0-based BED start.
    # WIG 'step' and 'span' are the bin size.
    
    # For positive strand
    echo "track type=wiggle_0 name=\"${INPUT_BED%.bed}_plus_density\" description=\"Plus strand read density (bin size: ${BIN_SIZE}bp)\"" > "${INPUT_BED%.bed}_plus.wig"
    awk -v OFS='\t' -v BIN_SIZE="${BIN_SIZE}" 'BEGIN {prev_chrom = ""} {
        if ($1 != prev_chrom) {
            print "fixedStep chrom="$1" start="($2+1)" step="BIN_SIZE" span="BIN_SIZE;
            prev_chrom = $1;
        }
        print $7
    }' "${INPUT_BED%.bed}_plus_counts.bed" >> "${INPUT_BED%.bed}_plus.wig"
    
    # For negative strand
    echo "track type=wiggle_0 name=\"${INPUT_BED%.bed}_minus_density\" description=\"Minus strand read density (bin size: ${BIN_SIZE}bp)\"" > "${INPUT_BED%.bed}_minus.wig"
    awk -v OFS='\t' -v BIN_SIZE="${BIN_SIZE}" 'BEGIN {prev_chrom = ""} {
        if ($1 != prev_chrom) {
            print "fixedStep chrom="$1" start="($2+1)" step="BIN_SIZE" span="BIN_SIZE;
            prev_chrom = $1;
        }
        print $7
    }' "${INPUT_BED%.bed}_minus_counts.bed" >> "${INPUT_BED%.bed}_minus.wig"
    
    # --- Step 6: Convert WIG files to BigWig format ---
    wigToBigWig "${INPUT_BED%.bed}_plus.wig" "${GENOME_ASSEMBLY}.chrom.sizes" "${INPUT_BED%.bed}_plus.bw"
    wigToBigWig "${INPUT_BED%.bed}_minus.wig" "${GENOME_ASSEMBLY}.chrom.sizes" "${INPUT_BED%.bed}_minus.bw"
    
    # --- Cleanup (optional) ---
    # rm "${INPUT_BED%.bed}_plus.bed" "${INPUT_BED%.bed}_minus.bed"
    # rm "${INPUT_BED%.bed}_plus_counts.bed" "${INPUT_BED%.bed}_minus_counts.bed"
    # rm "${INPUT_BED%.bed}_plus.wig" "${INPUT_BED%.bed}_minus.wig"
    # rm genomic_bins_${BIN_SIZE}bp.bed
    # rm "${GENOME_ASSEMBLY}.chrom.sizes"

Tools Used

Raw Source Text
Density files on two different strands were generated by using bedItemOverlapCount and wigToBigWig programs from UCSC kent source package.
genome build: mm9
← Back to Analysis