我有一个包含如下数据的 .txt:
Header:ensembl gene ID|Ensembl Transcript ID|CDS start|CDS end|5'UTR start|5'UTR end|3'UTR start|3'UTR end|Transcripts start|Transcripts end
>ENSMUSG00000002477|ENSMUST00000002551|*some junk information*...etc.|
TCGCGCGTCCGCAGGCCTCCGCGCGCTTTTCCG....etc.
>ENSMUSG00000002835|ENSMUST00000002914|...etc.|
GCAGAAGTGACACCGGTGGGAGGCG...etc.
我写了一些代码来让我明白我的名字 ENSMUSG0000000xxxx
我想从 .txt 中挑选出我的名字,下一行例如“TACGTACG”以三重形式读取,例如“TAC”“GTA”
然后我想做同样的事情,但不是从第一个字母开始阅读,而是从第二个字母开始,使用上面的例子,它将阅读“ACG”和“TAG”
和同样的事情,但跳过前 2 个字母
我真的不知道我该怎么做,尤其是阅读 3 个字母的部分。有人可以帮帮我吗?
这些是我到目前为止的代码:
import csv
import os.path
#open files + readlines
with open("C:/Users/Ivan Wong/Desktop/Placement/Lists of targets/Mouse/UCSC to Ensembl.csv", "r") as f:
reader = csv.reader(f, delimiter = ',')
#find files with the name in 1st row
for row in reader:
graph_filename = os.path.join("C:/Users/Ivan Wong/Desktop/Placement/Interesting reading/3'ORF",row[0]+"_nt_counts.txt.png")
if os.path.exists(graph_filename):
y = row[0]+'_nt_counts.txt'
r = open('C:/Users/Ivan Wong/Desktop/Placement/fp_mesc_nochx/'+y, 'r')
k = r.readlines()
r.close
del k[:1]
k = map(lambda s: s.strip(), k)
interger = map(int, k)
import itertools
#adding the numbers for every 3 rows
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return itertools.izip_longest(*args, fillvalue=fillvalue)
result = map(sum, grouper(3, interger, 0))
e = row[1]
cDNA = open('C:/Users/Ivan Wong/Desktop/Placement/Downloaded seq/Mouse/cDNA.txt', 'r')
q = cDNA.readlines()
cDNA.close
#To delete the 1st line that I do not want at all
del q[:1]
现在我只有一个想法,我想逐步分解它们
第一个:我想从我的 .txt(命名为 q)中找出列表中的名称(我将其命名为 e)
第二:我想让它读取下一行,直到它到达另一个名字(e)
第三:将我读到的那些行分成一个字符串,例如“A”、“T”、“C”、“G”、“A”、“A”等。
第四:读3个字母——“ATC”、“GAA”
第 5 步:将它们写入文件,然后返回第 4 步,但这次要从第 2 个字母开始
第 6 步:基本上是第 5 步,但这次从第 3 个字母开始
虽然我有这个想法,但我没有这样做的编程知识,有人可以帮助我吗