Ich habe Code, der unten angegeben wird:Verkettung Ersetzen mit beitreten
for pileupcolumn in samfile.pileup(max_depth = 1000000) :
X.append(pileupcolumn.n)
for pileupread in pileupcolumn.pileups:
if (pileupread.alignment.mapping_quality <= 15):
continue
if not pileupread.is_del and not pileupread.is_refskip:
if pileupread.alignment.query_qualities[pileupread.query_position] < 30:
# Skip entries with base phred scores < 10
continue
if pileupread.alignment.is_reverse: #negative
ReverseList[pileupcolumn.pos] += pileupread.alignment.query_sequence[pileupread.query_position]
else:
ForwardList[pileupcolumn.pos] += pileupread.alignment.query_sequence[pileupread.query_position]
Der obige Code viel Zeit nimmt und ich möchte Verkettung in der 11. und 13. Zeile ersetzen verbinden. Gibt es einen Weg dazu?
Gibt es einen Grund zu der Annahme, dass die Verkettung im Vergleich zu allem anderen eine merkliche Menge an Zeit benötigt? Die Verwendung von 'Join' wird nicht einfach sein. –
@MarkRansom Da dies Bioinformatik ist, sind die Strings wahrscheinlich sehr lang (DNA-Sequenzen), und wiederholte Verkettung ist sehr wahrscheinlich ein Engpass, da es O (n^2) ist. – Barmar
'Join' ist O (n), weil es die Endergebniszeichenfolge einmal zuweisen und dann alle Eingaben in es kopieren kann. – Barmar