Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • peterawe
    replied
    Hi! Here is a suggestion using R/Bioconductor. Good luck

    Code:
    require(rtracklayer)
    require(BSgenome.Hsapiens.UCSC.hg19)
    require(ShortRead)
    mirTrack = import('ftp://mirbase.org/pub/mirbase/20/genomes/hsa.gff3')
    
    # split into hairpin, 5arm and 3arm
    hp = mirTrack[mirTrack$type != "miRNA"]
    arm5 = mirTrack[grepl("-5p", mirTrack$Name)]
    arm3 = mirTrack[grepl("-3p", mirTrack$Name)]
    
    # make key for matching hairpin with arm5 and arm3
    hp$arm5 = match(hp$ID, arm5$Derives_from)
    hp$arm3 = match(hp$ID, arm3$Derives_from)
    
    # discard hairpins without annotated 5p and 3p arms
    hp = hp[!is.na(hp$arm3) & !is.na(hp$arm5)]
    
    # prepare
    hp$loopStart = 0
    hp$loopEnd = 0
    
    # miRNAs on pos and neg strand have to be parsed separately
    ## posStrand
    isPos = as.vector(strand(hp) =="+")
    hp$loopStart[isPos] = end(arm5[hp$arm5[isPos]])
    hp$loopEnd[isPos] = start(arm3[hp$arm3[isPos]])
    ## negStrand
    hp$loopEnd[!isPos] = start(arm5[hp$arm5[!isPos]])
    hp$loopStart[!isPos] = end(arm3[hp$arm3[!isPos]])
    # GRanges for miRNA loops
    loops = GRanges(seqnames = seqnames(hp),
    IRanges(hp$loopStart, hp$loopEnd),strand = strand(hp),
    MI = hp$ID, Name = hp$Name)
    # sanity check
    hist(width(loops), breaks = 50)
    # we dont want th efirst/last nt of bounding mature miRs
    loops = loops-1
    loops$seq = getSeq(Hsapiens, loops)
    # export
    loops
    loopsFasta = loops$seq
    names(loopsFasta) = paste("loop", loops$MI, loops$Name, sep = "_")
    writeFasta(loopsFasta, file = "mirbase20loops.fa")
    readLines("mirbase20loops.fa")

    Leave a comment:


  • peterawe
    replied
    Here is another suggestion using R/Bioconductor. Good luck!

    Code:
    require(rtracklayer)
    require(BSgenome.Hsapiens.UCSC.hg19)
    require(ShortRead)
    
    mirTrack = import('ftp://mirbase.org/pub/mirbase/20/genomes/hsa.gff3')
    
    # split into hairpin, 5arm and 3arm
    hp = mirTrack[mirTrack$type != "miRNA"]
    arm5 = mirTrack[grepl("-5p", mirTrack$Name)]
    arm3 = mirTrack[grepl("-3p", mirTrack$Name)]
    
    # make key for matching hairpin with arm5 and arm3
    hp$arm5 = match(hp$ID, arm5$Derives_from)
    hp$arm3 = match(hp$ID, arm3$Derives_from)
    
    # discard hairpins lacking annotated 5p and 3p arms (loops not defined)
    hp = hp[!is.na(hp$arm3) & !is.na(hp$arm5)]
    
    # prepare 
    hp$loopStart = 0
    hp$loopEnd = 0
    
    # miRNAs on pos and neg strand have to be parsed separately
    ## posStrand
    isPos = as.vector(strand(hp) =="+")
    hp$loopStart[isPos] = end(arm5[hp$arm5[isPos]])
    hp$loopEnd[isPos] = start(arm3[hp$arm3[isPos]])
    
    ## negStrand
    hp$loopEnd[!isPos] = start(arm5[hp$arm5[!isPos]])
    hp$loopStart[!isPos] = end(arm3[hp$arm3[!isPos]])
    
    # GRanges for miRNA loops
    loops = GRanges(seqnames = seqnames(hp), 
      IRanges(hp$loopStart, hp$loopEnd),strand = strand(hp), 
      MI = hp$ID, Name = hp$Name)
    
    # sanity check
    hist(width(loops))
    
    # we don't want the first/last nt of bounding mature miRs
    loops = loops-1
    loops$seq = getSeq(Hsapiens, loops) 
    loops
    
    # export as fastaFile
    loopsFasta = loops$seq
    names(loopsFasta) = paste("loopSeq", loops$MI, loops$Name, sep = "_")
    writeFasta(loopsFasta, file = "mirbase20loops.fa")

    Leave a comment:


  • dpryan
    replied
    I would expect that either biopython or bioperl should make this relatively straight forward. The idea is to either use base python string matching or the pairwise2 module and global alignment.

    Leave a comment:


  • Palgrave
    replied
    Originally posted by dpryan View Post
    Just align the 5p and 3p sequences to the hairpin sequence and take the bit between them.
    I have tried, but struggle to find a command that works.

    Leave a comment:


  • dpryan
    replied
    Just align the 5p and 3p sequences to the hairpin sequence and take the bit between them.

    Leave a comment:


  • Palgrave
    started a topic Get loop sequence from miRBase

    Get loop sequence from miRBase

    Does anyone know a way to extract the loop sequence from the miRNA hairpin. Basically I need to extract the part that is between the 3p- and 5p part of the hairpin.

Latest Articles

Collapse

  • seqadmin
    Multiomics Techniques Advancing Disease Research
    by seqadmin


    New and advanced multiomics tools and technologies have opened new avenues of research and markedly enhanced various disciplines such as disease research and precision medicine1. The practice of merging diverse data from various ‘omes increasingly provides a more holistic understanding of biological systems. As Maddison Masaeli, Co-Founder and CEO at Deepcell, aptly noted, “You can't explain biology in its complex form with one modality.”

    A major leap in the field has
    ...
    02-08-2024, 06:33 AM

ad_right_rmr

Collapse

News

Collapse

Topics Statistics Last Post
Started by seqadmin, Yesterday, 04:11 PM
1 response
20 views
0 likes
Last Post kim897
by kim897
 
Started by seqadmin, 02-21-2024, 08:52 AM
0 responses
35 views
0 likes
Last Post seqadmin  
Started by seqadmin, 02-20-2024, 08:57 AM
0 responses
25 views
0 likes
Last Post seqadmin  
Started by seqadmin, 02-14-2024, 09:19 AM
0 responses
57 views
0 likes
Last Post seqadmin  
Working...
X