[Tutor] Substitution problem

Srinivas Iyyer srini_iyyer_bio at yahoo.com
Tue Feb 21 23:04:42 CET 2006


Dear group, 
 I am trying to automate a process in statistical
language R. 

There for 1 operation 50 lines of code is written.
This process query postgres database and does some
processing on the resulting data and writes back a
file. 


I want to replicate the 50 line code, 90 times, by
substituting with postgres.table_id and file name at 2
places. 


File_A:
1 \t molA
2 \t molB
3 \t molC
........
90 \t molABC

File_B: (R-code) (50 lines)

library(Rdbi)
library(RdbiPgSQL)
library(Biobase)
library(multtest)
conn <- dbConnect(PgSQL(),dbname = 'mol-test')
mq = "SELECT DISTINCT target.target_name, go_term from
target, comb, moltab,gos,sequence,go_seq where
target.target_id = comb.target_id AND comb.mol_id =
$MOL_ID AND target.target_name = sequence.seq_name AND
sequence.seq_id = go_seq.seq_id AND go_seq.gos_id =
gos.gos_id AND gos.go_cat = 'F';"
...........
...........
write.table(mol_towrite,"$MOL_NAME_adj_pval",sep='t',quote=F,col.names=F)


###
Here there are two varialbes, $MOL_ID and $MOL_NAME in
select statement and write.table statement
respectively.


I want to read File_A, loop through it and substitute
$MOL_ID = 1 and $MOL_NAME = A

I want to reproduce 50 lines * 90 times substituting
ID and NAME by looping through File_A.


I tried using re module, I do not know if this correct
or wrong. 


for m in file_A:
    cols = m.split('\t')
    molid = cols[0].strip()
    molname = cols[1].strip()
    for k in file_B:
         pat1 = '$MOL_ID'
         pat2 = '$MOL_NAME'
         if re.search(pat1,k):
               s = Template(k)
               s.substitute($MOL_ID,molid)
               if re.search(pat2,k):
                      t = Template(k)
                      t.substitute($MOL_NAME,molname)


However, this is not working, somehow.

Can any one help me please. If more simple methods are
available please show a new way. 

Thanks
Sri






__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Tutor mailing list