On 04/10/11 21:00, Anna Olofsson wrote:
The table looks something like this, but with many more columns and rows:
# chr Pos ID REF ALT . . . . . . . . . . .
1 13645 - C T
. . . . .
I want to extract certain data from this table above and make it to a
sentence looking something like this: chr1:13645 C/T
import OS
open vcf_file.vcf
for each line
words = split(line) # words[0] = 1 , words[1]=Pos , words[3]=REF ,
words[4]=ALT
if(words[0] not "#"): #Sometimes the word starts with a hash and I don't
str="chr" + words[0] + ":" + words[1] + "\t" + words[3] + "/" + words[4]
score = OS.system(str)
So basically you are trying to construct an OS command from the file
data and then execute it and store the result?
You are pretty close. Some things to note when you try to convert it to
real code:
1) the module is os not OS (but see below...).
2) you can say
for line in open(filename):
3) Python uses the object.method style so split(line)
become line.split()
4) use != rather than not in the if test
5) str is a builtin type so to avoid hiding it use another
name (command maybe?)
6) os.system only returns the error code, to capture the output
you should look at the subprocess module(see the documentation
for examples)
Other than that the translation should be pretty close to what you have.
Try it and come back if you get stuck.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor