Score:1

ทำซ้ำทุก ๆ สองบรรทัดในจำนวนตัวแปร

ธง do
LML

ฉันมีไฟล์ .fasta หลายไฟล์ (ที่ชื่อ barcode*_consensus.fasta) ที่มีลักษณะดังนี้:

>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT

ฉันต้องการทำซ้ำ/ทำซ้ำทุก ๆ สองบรรทัด n จำนวนครั้ง ตามที่ระบุไว้หลัง 'total support reads' ตัวอย่างเช่น ฉันต้องการทำซ้ำสองบรรทัดแรก 12 ครั้ง สองบรรทัดที่สอง 6 ครั้ง เป็นต้น

ด้วย awk ฉันจัดการเพื่อเลือกทุกบรรทัดที่ขึ้นต้นด้วย '>' และบรรทัดถัดไป:

awk '/>/{nr[NR]; nr[NR+1]} NR ใน nr' barcode01_consensus.fasta

แต่ฉันไม่สามารถหาวิธีพิมพ์จำนวนครั้งที่ n นี้ด้วยตัวแปรได้

ความช่วยเหลือใด ๆ ที่ชื่นชมมาก

อัปเดต: ดังนั้นฉันต้องการให้ไฟล์สุดท้ายมีลักษณะดังนี้:

|>consensus_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000 TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTT

|>consensus_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000 TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTT

|>consensus_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000 TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTT

....x 12 ครั้ง....

Score:1
ธง cn

ฉันจะใช้ช่องว่างหรือขีดล่างเป็นตัวคั่นฟิลด์ จากนั้นนับเป็นฟิลด์ที่ 8:

awk -F'[ _]' ​​'
    $1 ~ /[>|]+ฉันทามติ$/ {n = $8; พิมพ์; ต่อไป}
    {ในขณะที่ (--n >= 0) พิมพ์}
' ไฟล์

เอาต์พุต

>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT

ในการพิมพ์แต่ละคู่ของบรรทัด เวลาต้องการการเปลี่ยนแปลงเล็กน้อย:

awk -F'[ _]' ​​'
    $1 ~ /[>|]+ฉันทามติ$/ {บรรทัดแรก = $0; n = 8 ดอลลาร์; ต่อไป}
    {ในขณะที่ (--n >= 0) พิมพ์บรรทัดแรก ORS $0}
' ไฟล์

เอาต์พุต

>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
>|>ฉันทามติ_cl_id_1018_total_supporting_reads_12 LN:i:1369 RC:i:12 XC:f:1.000000
TCATTAACCACAAAGTGGTGAGCGTTCTCCCGAAGGTTAAACTACCCACTTCTTTTGCAGCCCAACTCCCATGGTGTGTGGGGG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_107_total_supporting_reads_6 LN:i:1440 RC:i:6 XC:f:1.000000
GACTTCAGCCCAGTCATTAGTCCTACCATGGACCCCCATATTACTTAGAGGAGCTTCCGATATATACTAACTCCCATGCCGTGGAGGGGCG
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
|>consensus_cl_id_116_total_supporting_reads_5 LN:i:1314 RC:i:558 XC:f:1.000000
AGAACGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGCTACCTTCGGGGGAGCGCGCGCGGGTTTAGTAACCGTGGGAATAT
LML avatar
do flag
LML
ขอขอบคุณ! สิ่งนี้ใช้ได้กับส่วนใหญ่ อย่างไรก็ตาม ฉันต้องการพิมพ์ทั้งบรรทัด 1+2 n จำนวนครั้ง และจะพิมพ์เฉพาะบรรทัดที่สอง n จำนวนครั้ง ฉันได้อัปเดตคำถามของฉันเพื่อชี้แจงสิ่งนี้ในทางที่ดีขึ้น
Score:0
ธง hr

ฉันสงสัยว่ามีชุดเครื่องมือชีวสารสนเทศที่เหมาะสมที่จะทำสิ่งที่คุณต้องการอย่างมีประสิทธิภาพมากขึ้น แต่ด้วย GNU awk คุณสามารถจับคู่และจับหมายเลขซ้ำเช่น

จ้อง '
  /^>?[|]>/ {
    if((getline seq) > 0) $0 = $0 ORS seq
  } 
  ตรงกัน($0,/total_supporting_reads_([0-9]+)/,a) {
    ในขณะที่ (a[1]--) พิมพ์
  }
' ไฟล์. fasta

คุณสามารถทำเช่นเดียวกันกับ awk ที่ไม่ใช่ GNU ยกเว้นว่าคุณจะต้องแยกส่วนที่เป็นตัวเลขของการจับคู่เป็นสตริงย่อยโดยใช้ RSTART และ อาร์มแมตช์ ค่าแทนที่จะจับมันในอาร์เรย์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา