aboutsummaryrefslogtreecommitdiff
path: root/topGene_step2_cnt_sentences.py
diff options
context:
space:
mode:
Diffstat (limited to 'topGene_step2_cnt_sentences.py')
-rwxr-xr-xtopGene_step2_cnt_sentences.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/topGene_step2_cnt_sentences.py b/topGene_step2_cnt_sentences.py
deleted file mode 100755
index b05aa7a..0000000
--- a/topGene_step2_cnt_sentences.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/env python3
-import os, sys
-import re
-import time
-from nltk.tokenize import sent_tokenize
-from ratspub_keywords import *
-
-def undic(dic):
- return "|".join(dic.values())
-
-def findWholeWord(w):
- return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search
-
-def getSentences(query, genes):
- abstracts = os.popen("esearch -db pubmed -query " + query + " | efetch -format uid |fetch-pubmed -path /run/media/hao/PubMed/Archive/ | xtract -pattern PubmedArticle -element MedlineCitation/PMID,ArticleTitle,AbstractText|sed \"s/-/ /g\"").read()
- gene_syno=genes.split("|")
- symb=gene_syno[0]
- out=str()
- for row in abstracts.split("\n"):
- tiab=row.split("\t")
- pmid = tiab.pop(0)
- tiab= " ".join(tiab)
- sentences = sent_tokenize(tiab)
- ## keep the sentence only if it contains the gene
- for sent in sentences:
- for gene in gene_syno:
- if findWholeWord(gene)(sent):
- sent=re.sub(r'\b(%s)\b' % gene, r'<strong>\1</strong>', sent, flags=re.I)
- for drug0 in drug_d:
- if findWholeWord(drug_d[drug0])(sent) :
- sent=sent.replace("<b>","").replace("</b>","")
- sent=re.sub(r'\b(%s)\b' % drug_d[drug0], r'<b>\1</b>', sent, flags=re.I)
- out+=symb+"\t"+"drug\t" + drug0+"\t"+pmid+"\t"+sent+"\n"
- for add0 in addiction_d:
- if findWholeWord(addiction_d[add0])(sent) :
- sent=sent.replace("<b>","").replace("</b>","")
- sent=re.sub(r'\b(%s)\b' % addiction_d[add0], r'<b>\1</b>', sent, flags=re.I)
- out+=symb+"\t"+"addiction\t"+add0+"\t"+pmid+"\t"+sent+"\n"
- return(out)
-
-addiction=undic(addiction_d)
-drug=undic(drug_d)
-
-
-out=open("topGene_addiction_sentences.tab", "w+")
-cnt=0
-
-if len(sys.argv) != 2:
- print ("Please provide a sorted gene count file at the command line")
- sys.exit()
-
-sorted_file=sys.argv[1] # ncbi_gene_symb_syno_name_txid9606_absCnt_sorted_absCnt_sorted_absCnt_sorted_absCnt_sorted.txt
-with open (sorted_file, "r") as f:
- for line in f:
- (genes, abstractCount)=line.strip().split("\t")
- genes=genes.replace("-","\ ")
- if int(abstractCount)>20:
- symb=genes.split("|")[0]
- print(symb+"-->"+genes)
- q="\'(\"" + addiction.replace("|", "\"[tiab] OR \"") + "\") AND (\"" + drug.replace("|", "\"[tiab] OR \"", ) + "\") AND (\"" + genes.replace("|", "\"[tiab] OR \"", ) + "\")\'"
- sentences=getSentences(q,genes)
- out.write(sentences)
-out.close()
-
-os.system("cut -f 1,4 topGene_addiction_sentences.tab |uniq |cut -f 1 |sort |uniq -c |sort -rn > topGeneAbstractCount.tab")