Biology Stack Exchange is a question and answer site for biology researchers, academics, and students. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've parsed out a very large TCGA cancer ssm (single mutation file) file to give me the essential information.

The ssm is in the following format:

['Gene name', 'Ensembl Gene ID', 'Chromosome', 'Chromosome start', 'Cancer Type']
['NTRK1', 'ENSG00000198400', '1','156849827', 'Prostate Adenocarcinoma (TCGA, US)']

From there I would like to grab each mutation and :

  1. Map the chromosomal position to a known SNP (rs something output).
  2. See if this snp is found in a 3'UTR
  3. See if this snp is found in a miRNA
  4. Missense or sense mutation
  5. Any relevant genbank etc.. ids

I'd like to do this Python (I think BioPython is suited for this) for downstream applications.

share|improve this question
What is the question? It would also help if you gave the format of the file you would like to process. – dd3 May 21 '13 at 21:50
I've already parse the format for this: code ['Gene name', 'Ensembl Gene ID', 'Chromosome', 'Chromosome start', 'Cancer Type'] ['NTRK1', 'ENSG00000198400','1', '156849827', 'Prostate Adenocarcinoma (TCGA, US)'] code First line is features, second is an example of what's in it. aka. gene name, ensemble gene id, chromosome position and cancer type.. I would like to use this information (any or all) to locate if these SNPs occur in any miRNAs or any 3'UTRs predominantly. – prussiap May 21 '13 at 22:18
You can also post on for bioinformatics related questions. – raygozag Jun 22 '13 at 18:24

In order:

  1. Unfortunately, there's no easy way to batch query with only location. You could look up SNPs within genes here. (You could find the gene a SNP is located in by searching an annotated human genome file for the position.)
  2. You can figure out whether it's in 3'UTR by comparing to a list of human 3' UTRs. The UCSC genome browser page here will help: change the region to "genome", output format to "BED", click "get output", and then filter for 3' UTRs.
  3. You can figure out if it's in a miRNA by comparing chr/start positions to the database available here.
  4. You could use the chromosomal locations and compare to the human genome sequence. There is probably a better way to do this, but the FASTA for each chromosome is available here.
  5. You could use the SNP IDs to map to Genbank accessions, as per the instructions here.

You don't need BioPython for the first three steps, since it's just parsing each line and comparing values. BioPython is useful for working with FASTA files (so part 4). All in all, this is mostly reduced to a programming question with all of these resources (basically, you need split each string to get the appropriate numbers/IDs and then compare).

share|improve this answer
So I've managed to wrangle mutations and their corresponding 3'UTRs . I still don't see a way to determine if that mutation in the UTR is in a miRNA target site ? Are there any thoughts on this? – prussiap May 29 '13 at 23:11
@prussiap: your original question asked to find if a mutation was in miR -- to find if a mutation is a target of a miR, the best I know is DIANA. Unfortunately, the lookup goes the other way: if you look up a miR, you can find predicted target sites: – dd3 Jun 24 '13 at 0:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.